Orthodox Easter date calculator
Orthodox Easter 2024 fell on 5 May: the Julian tables give 22 April, and the 13-day gap between the calendars moves it into May. Enter any year to get the Pascha date as an everyday Gregorian date. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Year
- 2,024
- Date
- 2024-05-05
- Year gregorian
- 2,024
- Month
- 5
- Day
- 5
Eastern Orthodox Easter, also called Pascha, is the central movable feast of the Orthodox Christian year. Unlike Western Easter, which follows the Gregorian computus adopted after 1582, most Orthodox jurisdictions still determine the date of Pascha with the ancient Julian tables of the lunar epact and the Sunday after the full moon that falls on or after the Julian spring equinox. The resulting Julian March or April Sunday is then converted to the civil Gregorian calendar so that planners, schools, and apps can show a familiar ISO date.
How the Julian computus and Gregorian conversion work
Start with an integer calendar year Y that is at least one. The Julian Easter algorithm uses five modular residues that encode the solar cycle of four years, the seven day week, and the nineteen year Metonic lunar cycle. Set a equal to Y modulo four, b equal to Y modulo seven, and c equal to Y modulo nineteen.
The lunar epact term d is nineteen times c plus fifteen, all modulo thirty. The weekday correction e is two times a plus four times b minus d plus thirty four, all modulo seven, with a positive remainder so that JavaScript style negative modular results never appear. The combined quantity d plus e plus one hundred fourteen is then split: its integer division by thirty one yields the Julian month, three for March or four for April, and the remainder plus one yields the Julian day of the month.
That Julian date is still not what most civil software expects. The Gregorian calendar runs ahead of the Julian calendar by a century dependent offset equal to the floor of Y divided by one hundred, minus the floor of Y divided by four hundred, minus two. Adding that offset with pure integer month and day carry produces the Gregorian Pascha date.
For the twentieth and early twenty first centuries the offset is thirteen days, so Julian April twenty two becomes Gregorian May five in 2024. Years below one are rejected because the historical calendar and year numbering conventions are out of scope for this contract.
Where Orthodox Easter calculators show up in real work
Parish offices, diocesan secretariats, and monastery guesthouses publish annual liturgical calendars that must list Pascha and every feast that depends on it; a trusted deterministic oracle prevents spreadsheet drift between clerks. Schools and universities in countries with large Orthodox populations schedule spring breaks and examination periods around the local civil date of Easter and need multi year look ahead without manual table lookup.
Travel, hospitality, and event platforms mark high demand weekends when Pascha falls in April or early May and must distinguish Orthodox dates from Western Easter when those dates diverge. Curriculum authors teaching computus history want the intermediate Julian date and modular residues exposed so students can verify each step of the classical tables.
If you later need Western Gregorian Easter, fixed Orthodox Christmas on the Julian calendar, day of year ordinals, or day of week for arbitrary ISO dates, treat those as separate search intents and landings rather than overloading this Orthodox Pascha page.
What you can do with it
Parish and diocesan liturgical calendars
Generate Gregorian Pascha dates for multi-year service books and website widgets that must match published Orthodox almanacs.
School and holiday planning
Project spring breaks and public holidays in regions that follow Orthodox Easter without mixing Western computus tables.
FAQ
How is Orthodox Easter different from Western Easter?
Most Orthodox jurisdictions compute Pascha with the Julian computus (Metonic lunar cycle and Julian equinox tables), then convert the resulting Sunday to the Gregorian civil calendar. Western Easter uses the Gregorian computus directly, so the two dates often diverge by one or more weeks.
What algorithm does this calculator use?
The classical Julian Easter formula with residues a=Y%4, b=Y%7, c=Y%19, d=(19c+15)%30, e=(2a+4b−d+34)%7, then month and day from d+e+114, then Gregorian conversion with offset floor(Y/100)−floor(Y/400)−2.
What years are supported?
Any integer year greater than or equal to 1. Modern published tables (for example 2024–2026) are reproduced exactly.
What does it cost?
The browser tool is free and runs locally.
Why can Orthodox Easter fall in May?
The Julian calendar runs behind the Gregorian one, by 13 days in the twentieth and early twenty-first centuries. A late Julian April Sunday, such as 22 April in 2024, therefore becomes 5 May on everyday calendars.
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/easter-orthodox \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"year":2024}'const res = await fetch("https://api.kit.forhosting.com/date/easter-orthodox", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"year": 2024
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/easter-orthodox",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"year": 2024
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/easter-orthodox", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"year":2024}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"year":2024}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/easter-orthodox", 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": 2024
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.easter_orthodox",
"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 Julian computus and Gregorian conversion work
The entire path is closed form integer arithmetic: no network calls, no random seeds, no host timezone, and no floating point ambiguity, so identical years always yield identical JSON.
What you send and what you get back
Send a single required field named year as an integer greater than or equal to one. The example value two thousand twenty four is a useful modern check. Classic verification years include two thousand twenty four for May five, two thousand twenty five for April twenty, two thousand twenty for April nineteen, and two thousand sixteen for May first. Missing year, non numeric strings, fractional numbers such as two thousand twenty four point five, and any year less than one fail with invalid_input and are not charged. On success the response includes the input year, the Gregorian ISO date string, the Gregorian year month and day as separate integers, a month_name in English, a nested julian object with the intermediate Julian year month day and ISO date, the offset_days applied in the conversion, a computus object listing residues a through e for audit and teaching, calendar set to gregorian, rite set to eastern_orthodox, and a compact formula string describing the full pipeline. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.
Where Orthodox Easter calculators show up in real work
Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.
Integration use cases
Calendar apps and regression fixtures
Seed unit tests and bulk year tables from a deterministic API that returns ISO dates plus Julian intermediate steps.
Technical questions
Does it use the computer clock or Date?
No. The implementation is pure integer arithmetic with no Date object, no network, and no randomness, so results are stable across hosts and timezones.