Skip to content
whathappen.today

Date and holiday API for programs and AI agents

Free JSON endpoints and an MCP server that tell a program — or a language model — today's date in any time zone, the week number and whether it is a public holiday. No key, no sign-up, any origin.

Why this exists

Language models do not know what day it is unless someone tells them, and when an app does pass a date it is often the server's UTC date, a day off for users east or west of Greenwich. Ask this API for the user's time zone and you get the local date, the weekday and ISO week, and — for 20 countries — whether today is a holiday, with substitute days and lunar-calendar uncertainty spelled out instead of guessed.

Quick start

curl "https://whathappen.today/api/today?tz=America/New_York&country=US"

Example response (for 9 October 2026, 06:51 UTC):

{
  "date": "2026-10-09",
  "year": 2026,
  "month": 10,
  "monthName": "October",
  "day": 9,
  "weekday": "Friday",
  "isoWeekday": 5,
  "isoWeek": 41,
  "isoWeekYear": 2026,
  "isoWeekLabel": "2026-W41",
  "dayOfYear": 282,
  "daysInYear": 365,
  "daysLeftInYear": 83,
  "isLeapYear": false,
  "quarter": 4,
  "isWeekend": false,
  "timezone": "America/New_York",
  "utcOffset": "-04:00",
  "moon": {
    "phase": "Waning Crescent",
    "emoji": "🌘",
    "illumination": 0.011,
    "ageDays": 28.5
  },
  "country": {
    "code": "US",
    "name": "United States",
    "isPublicHoliday": false,
    "holidays": [],
    "isMakeupWorkday": false,
    "isWorkingDay": true,
    "nextHoliday": {
      "date": "2026-10-12",
      "name": "Columbus Day",
      "weekday": "Monday",
      "observed": false,
      "estimated": false,
      "daysUntil": 3
    },
    "provisional": false,
    "scope": "The 11 federal holidays set by 5 U.S.C. 6103.",
    "official": "https://www.opm.gov/policy-data-oversight/pay-leave/federal-holidays/"
  },
  "localTime": "2026-10-09T02:51:38-04:00",
  "utc": "2026-10-09T06:51:38Z",
  "statement": "Today is Friday, 9 October 2026 in America/New_York (UTC-04:00) — ISO week 41, the 282nd day of 2026 with 83 days left. It is not a public holiday in United States. The next public holiday is Columbus Day on Monday, 12 October 2026 (in 3 days).",
  "timezoneSource": "parameter",
  "disclaimer": "Holiday dates are for reference only. Governments can add, move or cancel holidays; confirm with the official source before relying on them.",
  "holidaySource": {
    "data": "python holidays 0.106 (MIT, https://github.com/vacanza/holidays)",
    "note": "Generated at build time and checked against official calendars for 2026; each country lists an official page to confirm dates."
  }
}

Endpoints

GETParametersReturns
/api/todaytz, countryToday's date in a time zone: weekday, ISO week, day of year, days left, moon phase, UTC offset, and with country whether today is a public holiday there plus the next one. Includes statement, one sentence to quote.
/api/datedate (required), tz, countryThe same facts for any date from 0001-01-01 to 9999-12-31, plus daysFromToday.
/api/holidayscountry (required), yearEvery public holiday of a year (2020–2030), with observed for substitute days off and estimated for moon-sighting dates; for China also makeupWorkdays.
/api/next-holidaycountry (required), tz, count (1–20)The next holidays after today, each with daysUntil.
/api/countries—The 20 supported countries, their default time zone and what each list covers.
/api/on-this-daydate (MM-DD or YYYY-MM-DD), type, limit, tzEvents, births, deaths and observances for a date, with the Wikipedia attribution (CC BY-SA 4.0) you must show if you display them.

The machine-readable description is openapi.json (OpenAPI 3.1).

A year of holidays

curl "https://whathappen.today/api/holidays?country=GB&year=2026"
{
  "country": {
    "code": "GB",
    "name": "United Kingdom",
    "scope": "Bank holidays in England and Wales.",
    "official": "https://www.gov.uk/bank-holidays"
  },
  "year": 2026,
  "count": 9,
  "holidays": [
    {
      "date": "2026-01-01",
      "name": "New Year's Day",
      "weekday": "Thursday",
      "observed": false,
      "estimated": false
    },
    {
      "date": "2026-04-03",
      "name": "Good Friday",
      "weekday": "Friday",
      "observed": false,
      "estimated": false
    },
    "…"
  ],
  "provisional": false,
  "disclaimer": "Holiday dates are for reference only. Governments can add, move or cancel holidays; confirm with the official source before relying on them.",
  "holidaySource": {
    "data": "python holidays 0.106 (MIT, https://github.com/vacanza/holidays)",
    "note": "Generated at build time and checked against official calendars for 2026; each country lists an official page to confirm dates."
  }
}

MCP server

The same answers are available as tools over the Model Context Protocol (Streamable HTTP, stateless, no authentication) at:

https://whathappen.today/mcp

Claude Code: claude mcp add --transport http whathappen https://whathappen.today/mcp. Other clients: add a remote server with that URL. The server card is at /mcp/server-card and /.well-known/mcp/server-card.json; llms.txt summarises the site for models.

ToolWhat it doesInputs
todayToday's date in a time zone: weekday, ISO week, day of the year, days left in the year, moon phase and UTC offset. With a country, also whether today is a public holiday there and the next holiday. Call this whenever the current date matters — models do not know it reliably.timezone (IANA name, e.g. Asia/Tokyo), country (ISO code, e.g. JP)
date_infoWeekday, ISO week, day of the year, moon phase and (with a country) holiday status for any date from 0001-01-01 to 9999-12-31, plus how many days it is from today.date (YYYY-MM-DD), timezone, country
holidaysAll public holidays of one country for a year (2020–2030), including substitute days off, dates that depend on a moon sighting, and China's make-up working days.country, year
next_holidayThe next public holidays of a country after today (in the country's or the given time zone), with the number of days until each.country, timezone, count (1–20)
on_this_dayNotable events, births, deaths and observances for a calendar day, from Wikipedia (CC BY-SA 4.0; the result carries the attribution to show).date (MM-DD or YYYY-MM-DD; default today), kind (events, births, deaths, observances or all), limit (1–30), timezone
list_countriesThe 20 countries with holiday data, their default time zone and what each list covers.none

Limits and good manners

Found a wrong date? Write to hello@whathappen.today with a link to the official announcement.