Good Friday date calculator
Enter a year and get the date of Good Friday: in 2026 it is Friday 3 April, two days before Gregorian Easter Sunday. Useful for holiday calendars, payroll, school closures and delivery cutoffs around the long weekend. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Year
- 2,026
- Date
- 2026-04-03
- Month
- 4
- Day
- 3
Good Friday moves every year because its date is tied to Easter Sunday rather than to a fixed day of the Gregorian calendar. This calculator accepts one year, determines Gregorian Easter with established computus arithmetic, and returns the Friday immediately before it as a stable ISO calendar date with separate year, month, and day fields. It uses no system clock, time zone, network service, or random value, so identical input always produces identical output for calendars, planning systems, tests, and records.
How the Good Friday date is determined
Good Friday is observed on the Friday before Easter Sunday, which means it is always exactly two calendar days earlier than the Gregorian Easter date. Easter itself is movable: Western calendar practice determines it from an ecclesiastical rule involving the first Sunday after the paschal full moon associated with the March equinox. This capability applies the Anonymous Gregorian algorithm, commonly known as the Meeus, Jones, or Butcher computus, to turn the supplied year into Easter's month and day.
It then subtracts two days to obtain Good Friday. Gregorian Easter can occur only from March 22 through April 25, so this subtraction remains safely within the same month and year. The entire calculation uses bounded integer arithmetic and does not ask an astronomical service, inspect a regional holiday table, or depend on the machine's current date.
The returned value represents a Gregorian calendar date, not a timestamp or a moment in a particular time zone.
Using the result in schedules and software
A direct Good Friday result is useful when the business question is about that observance rather than Easter Sunday. Payroll and leave systems can place the date into annual holiday tables; schools and community organizations can schedule closures or events; logistics teams can adjust collection, delivery, and customer-support cutoffs around the long weekend. Treat the returned date as a calendar label until your application deliberately associates it with a jurisdiction and time zone.
Whether Good Friday is a statutory public holiday, a bank holiday, a market closure, or an ordinary working day varies by location and organization, and this calculator does not make that legal or policy determination. It only answers the calendar question accurately. For multi-year planning, call the capability once for each year and store the returned ISO-like string alongside your own jurisdiction rules, labels, and working-day behavior.
Because there is no external holiday database, later runs remain reproducible and are not affected by vendor revisions.
What you can do with it
Build annual holiday calendars
Insert the calculated Good Friday date into a payroll, leave, school, or operations calendar, then apply the relevant local holiday policy separately.
Plan Easter weekend operations
Set staffing, support, delivery, and publishing cutoffs around the correct Friday before Gregorian Easter for a chosen year.
FAQ
What is the relationship between Good Friday and Easter Sunday?
Good Friday is the Friday immediately before Easter Sunday, so its Gregorian calendar date is exactly two days earlier.
Does this calculate Orthodox Good Friday?
No. It uses Gregorian Easter computus for the Western calendar. Traditions based on the Julian or another ecclesiastical calendar can produce a different date.
Does the result depend on my time zone?
No. The result is a calendar date computed from the input year with integer arithmetic; no clock, UTC offset, or local time-zone conversion is involved.
Does this tell me whether Good Friday is a public holiday?
No. Holiday status varies by jurisdiction and organization. The capability computes the date only, leaving legal and workplace policy to your application.
In which months can Good Friday fall?
Only in March or April. Gregorian Easter Sunday falls between 22 March and 25 April, and Good Friday is always two days earlier, so it never leaves those two months.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/date/good-friday \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"year":2026}'const res = await fetch("https://api.kit.forhosting.com/date/good-friday", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"year": 2026
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/good-friday",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"year": 2026
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/good-friday", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"year":2026}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"year":2026}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/good-friday", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"year": 2026
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.good_friday",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
How the Good Friday date is determined
Consequently, a year has one reproducible result regardless of where or when the request runs.
Supplying a year and reading the result
Send an object containing the required year field, such as a request for 2026. The value may be an integer or a string that converts exactly to a safe integer, but it must be at least 1. Years below 1000 are padded to four digits in the date string for a consistent shape. Missing values, fractional numbers, nonnumeric text, values below 1, and numbers outside JavaScript's safe integer range are rejected with an invalid_input error rather than rounded or guessed. A successful response contains date in a year-month-day string, together with numeric year, month, and day properties. This endpoint deliberately has no locale, time-zone, country, or denomination switch: it computes the Friday before Gregorian Easter Sunday. Each successful API request is priced at $0.002 per item, while the browser experience supports quick interactive checks.
Integration use cases
Create deterministic test fixtures
Generate reproducible Good Friday values for calendar software without relying on a clock, time zone, network API, or mutable holiday database.
Technical questions
How much does the Good Friday date API cost?
A successful API request costs $0.002 per item. The browser tool is available for interactive calculations.