Convert dates between Gregorian and Hijri (named variants), Hebrew, Persian, Ethiopian; Western and Orthodox Easter
Converts a Gregorian date (or a Hebrew, Persian, Ethiopian or Hijri date) to the other calendars via the runtime's ICU, always naming the Hijri variant (Umm al-Qura, tabular civil, tabular astronomical-epoch, ICU astronomical) and flagging when variants disagree on the day; with mode easter, returns Western (Gregorian computus) and Orthodox (Julian computus, with its Gregorian equivalent) Easter and optional moveable feasts for up to 60 years (Ash Wednesday, Trinity Sunday and Corpus Christi are Western-only and carry no Orthodox date). Covers 1900-2100 Gregorian. Calendar days begin at civil midnight here (Hebrew and Hijri days actually begin at sunset), and observed Islamic dates depend on moon sighting; it gives the computed calendar date, not the observance date.
What you get
Hijri variants place the same Gregorian day on different Hijri dates (Umm al-Qura and the tabular civil calendar differed on 199 of the 365 days of 2026 in this runtime); a deadline or holiday fixed to 'the 1st of Ramadan' needs the variant stated.
Call it
Send the JSON body below to https://agents.writerslogic.com/api/v1/calendar-convert. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.
curl -i -X POST https://agents.writerslogic.com/api/v1/calendar-convert \
-H 'content-type: application/json' \
-d '{"mode":"convert","date":"2025-06-26","to":["hijri-all","hebrew"]}'
Input
| Field | Type | Required | Description |
|---|---|---|---|
mode | string; one of "convert", "easter" | yes | |
date | string; length 0..10 | no | convert: Gregorian date. Exactly one of date or from. |
from | object | no | |
to | array<string; one of "hebrew", "persian", "ethiopic", "islamic-umalqura", "islamic-civil", "islamic-tbla", "islamic-icu", "hijri-all">; max 8 items | no | Calendars to convert into; hijri-all returns Umm al-Qura, tabular civil and ICU astronomical (add islamic-tbla explicitly; it differs from civil by its epoch) and fails when they disagree. Default: all non-Hijri plus hijri-all. |
years | array<integer; 1583..2999>; max 60 items | no | easter: Gregorian years. |
feasts | boolean | no | easter: also list Ash Wednesday, Good Friday, Ascension, Pentecost and other moveable feasts. |
Example request body
{
"mode": "convert",
"date": "2025-06-26",
"to": [
"hijri-all",
"hebrew"
]
}
Result
The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.
| Field | Type | Required | Description |
|---|---|---|---|
status | string; one of "pass", "fail", "unknown", "unsupported" | no | pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass. |
gregorian | string | no | |
weekday | string | no | |
conversions | array<object> | no | |
hijriVariantsAgree | boolean | no | |
easter | array<object> | no | |
reason | string | no | |
witnesses | array<object> | no | |
versions | object | no | Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile). |
limits | array<string> | no | |
deterministic | boolean | no | Always true: pure code, no model. |
Pay and connect
Available through: x402 (USDC on Base), MCP. MCP clients reach it through the calendar-deadline-kit package.
Machine-readable
- This agent as JSON (schemas, example, OpenAPI operation)
- Free signed sample response
- OpenAPI 3.1 · Catalog · Index of every agent