The Jewish holidays, as JSON.
A free, no-authentication REST API for Jewish holiday dates and workday-off calculations — built for HR systems, absence calendars, and anything that plans around the Hebrew calendar. Dates are computed locally from @hebcal/core; no upstream calls.
Overview
Seven read-only endpoints. Responses are cached for one hour
(Cache-Control: public, max-age=3600) — holiday dates do not change.
| Endpoint | Returns |
|---|---|
GET /holidays | Every holiday in a Gregorian year |
GET /holidays/next | Upcoming holidays with countdown |
GET /workdays | Which holidays require a day off work |
GET /workdays/compare | Days-off totals across a span of years |
GET /calendar.ics | iCalendar feed (Workday, Outlook, Google) |
GET /about | Reference data and holiday descriptions |
GET /health | Liveness probe |
Quickstart
# How many workdays off does 2026 require? $ curl 'https://whenarethejewishholidays.com/api/v1/workdays?year=2026' { "year": 2026, "israel": false, "weekend": ["Saturday", "Sunday"], "included": ["yomtov"], "daysOffRequired": 6, "totalObserved": 13, "weekdayHolidays": [ { "title": "Pesach I", "hebrew": "פֶּסַח א׳", "date": "2026-04-02", "hebrewDate": "15 Nisan 5786", "weekday": "Thursday", "category": "yomtov", "yomTov": true, "about": "Passover, the eight-day festival of freedom…" } ], "weekendHolidays": [ … ] }
Concepts
Always counted: Yom Tov
Days when work is traditionally prohibited are always part of the workday
calculation: Rosh Hashana (2 days), Yom Kippur, Sukkot I–II, Shmini Atzeret,
Simchat Torah, Pesach I–II and VII–VIII, and Shavuot I–II.
With il=true the one-day Israeli scheme is used.
Optional groups: include
Observance varies by community, so everything else is opt-in via the
include parameter:
| Token | Adds |
|---|---|
cholhamoed | Intermediate days of Pesach and Sukkot (incl. Hoshana Raba) |
tisha-bav | Tish'a B'Av (major fast) |
minor-fasts | Tzom Gedaliah, Asara B'Tevet, Ta'anit Esther, Tzom Tammuz, Ta'anit Bechorot |
purim | Purim |
shushan-purim | Shushan Purim (walled cities, e.g. Jerusalem) |
chanukah | All eight days of Chanukah |
modern | Modern Israeli holidays (Yom HaAtzmaut, Yom Yerushalayim…) |
Weekends
The weekend parameter controls which days don't cost a vacation day:
sat-sun (default), fri-sat (Israeli work week),
sun, none, or comma-separated day names.
Holidays
Every holiday in a Gregorian year, sorted by date.
| Param | Type | Description |
|---|---|---|
year | integer | 1900–2200. Default: current year. |
il | boolean | Israel scheme. Default false. |
categories | string | Filter: yomtov,cholhamoed,major-fast,minor-fast,minor,modern,rosh-chodesh,erev |
$ curl '…/api/v1/holidays?year=2026&categories=yomtov'
The next holidays on or after a date, each with daysUntil.
Rosh Chodesh and erev days are excluded. Ideal for dashboards and Slack bots.
| Param | Type | Description |
|---|---|---|
after | date | ISO date. Default: today. |
count | integer | 1–50. Default 5. |
il | boolean | Israel scheme. |
$ curl '…/api/v1/holidays/next?after=2026-09-01&count=3'
Workdays
The core HR endpoint: observed holidays split into
weekdayHolidays (time off required) and weekendHolidays,
with a daysOffRequired total.
| Param | Type | Description |
|---|---|---|
year | integer | 1900–2200. Default: current year. |
include | string | Optional observance tokens (see Concepts). |
weekend | string | sat-sun · fri-sat · sun · none |
il | boolean | Israel scheme. |
$ curl '…/api/v1/workdays?year=2026&include=cholhamoed,tisha-bav&weekend=fri-sat&il=true'
Days-off totals for each year in a range (max 100 years) — useful for long-range absence forecasting.
| Param | Type | Description |
|---|---|---|
from | integer | Required. |
to | integer | Required, ≥ from. |
Plus include, weekend, il as above. | ||
$ curl '…/api/v1/workdays/compare?from=2026&to=2036' { "series": [ { "year": 2026, "daysOffRequired": 6, … }, … ] }
Calendar feed
An RFC 5545 iCalendar document of all observed holidays as all-day
events, including Hebrew dates and descriptions. Subscribe to it or import it —
the same include/weekend/il filters apply.
| Param | Type | Description |
|---|---|---|
from | integer | First year. Default: current year (year is an alias). |
to | integer | Last year, max span 25 years. Default: same as from. |
$ curl -o jewish-holidays.ics '…/api/v1/calendar.ics?from=2026&to=2028&include=cholhamoed'
Reference
Valid include tokens plus one-paragraph descriptions of
each holiday — handy for tooltips and absence-request notes.
Liveness probe: { "status": "ok" }.
Integrating with Workday
Two patterns, depending on how much control you have:
1 · Holiday calendar import (recommended)
- Download the feed for your policy, e.g.
/api/v1/calendar.ics?from=2026&to=2028&include=cholhamoed. - In Workday, open Maintain Holiday Calendars and create (or edit) a holiday calendar for the relevant worker population.
- Add the dates from the feed — each VEVENT is a single all-day holiday with
the English name, Hebrew date, and a work-permitted note in the description.
(Workday admins typically load these via EIB: export the JSON from
/workdays, mapdate→ Holiday Date andtitle→ Holiday Name in the spreadsheet template.) - Re-run annually — dates shift against the civil calendar every year.
2 · Absence forecasting via JSON
For staffing models and PTO accrual planning, call
/workdays/compare from Workday Studio / Prism (or any middleware)
and join daysOffRequired per year against your workforce data.
The series is stable and cacheable — fetch it once per year.
include token, so the calendar your HRIS imports matches the
policy your people team wrote.
Outlook, Google & Apple Calendar
Subscribe (auto-updating): in Google Calendar choose
Other calendars → From URL; in Outlook, Add calendar →
Subscribe from web; on macOS/iOS, File → New Calendar Subscription.
Paste the /calendar.ics URL with your preferred filters.
Import (one-time): download the same URL and import the file.
Errors
Errors are JSON with an error code and human-readable
message:
HTTP/1.1 400 Bad Request
{
"error": "bad_request",
"message": "Unrecognized include token(s): foo. Valid tokens: cholhamoed, tisha-bav, …"
}
| Status | Meaning |
|---|---|
400 | Invalid or out-of-range parameter. |
404 | Unknown endpoint. |
500 | Unexpected server error. |