Public Holiday Lookup

Look up public holidays for a supported country and year. Returns holiday names and dates, with the next upcoming holiday.

Pay by wallet (x402) public-holiday-lookup

Example

Example answer
{
  "year": 2025,
  "holidays": [
    {
      "date": "2025-01-01",
      "name": "New Year's Day",
      "type": "Public",
      "fixed": false,
      "global": true,
      "local_name": "New Year's Day"
    },
    {
      "date": "2025-01-20",
      "name": "Martin Luther King, Jr. Day",
      "type": "Public",
      "fixed": false,
      "global": true,
      "local_name": "Martin Luther King, Jr. Day"
    },
    {
      "date": "2025-02-12",
      "name": "Lincoln's Birthday",
      "type": "Observance",
      "fixed": false,
      "global": false,
      "local_name": "Lincoln's Birthday"
    },
    {
      "date": "2025-02-17",
      "name": "Presidents Day",
      "type": "Public",
      "fixed": false,
      "global": true,
      "local_name": "Washington's Birthday"
    },
    {
      "date": "2025-04-18",
      "name": "Good Friday",
      "type": "Public",
      "fixed": false,
      "global": false,
      "local_name": "Good Friday"
    },
    {
      "date": "2025-04-18",
      "name": "Good Friday",
      "type": "Optional",
      "fixed": false,
      "global": false,
      "local_name": "Good Friday"
    },
    {
      "date": "2025-05-08",
      "name": "Truman Day",
      "type": "School, Authorities",
      "fixed": false,
      "global": false,
      "local_name": "Truman Day"
    },
    {
      "date": "2025-05-26",
      "name": "Memorial Day",
      "type": "Public",
      "fixed": false,
      "global": true,
      "local_name": "Memorial Day"
    },
    {
      "date": "2025-06-19",
      "name": "Juneteenth National Independence Day",
      "type": "Public",
      "fixed": false,
      "global": true,
      "local_name": "Juneteenth National Independence Day"
    },
    {
      "date": "2025-07-04",
      "name": "Independence Day",
      "type": "Public",
      "fixed": false,
      "global": true,
      "local_name": "Independence Day"
    },
    {
      "date": "2025-09-01",
      "name": "Labour Day",
      "type": "Public",
      "fixed": false,
      "global": true,
      "local_name": "Labor Day"
    },
    {
      "date": "2025-10-13",
      "name": "Columbus Day",
      "type": "Public",
      "fixed": false,
      "global": false,
      "local_name": "Columbus Day"
    },
    {
      "date": "2025-10-13",
      "name": "Indigenous Peoples' Day",
      "type": "Public",
      "fixed": false,
      "global": false,
      "local_name": "Indigenous Peoples' Day"
    },
    {
      "date": "2025-11-11",
      "name": "Veterans Day",
      "type": "Public",
      "fixed": false,
      "global": true,
      "local_name": "Veterans Day"
    },
    {
      "date": "2025-11-27",
      "name": "Thanksgiving Day",
      "type": "Public",
      "fixed": false,
      "global": true,
      "local_name": "Thanksgiving Day"
    },
    {
      "date": "2025-12-25",
      "name": "Christmas Day",
      "type": "Public",
      "fixed": false,
      "global": true,
      "local_name": "Christmas Day"
    }
  ],
  "country_code": "US",
  "next_upcoming": null,
  "total_holidays": 16
}

Inputs

FieldTypeRequiredWhat it is
yearnumberNo—
country_codestringYes—

Output fields

How reliably each field appears in a successful answer.

FieldTypeAppears
holidaysarrayAlways (present in every successful answer)
next_upcomingobjectAlways (present in every successful answer)
total_holidaysnumberAlways (present in every successful answer)

How to call it

The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.

# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
  -H "Authorization: Bearer $STRALE_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "capability_slug": "public-holiday-lookup",
    "inputs": {
      "year": 2027,
      "country_code": "SE"
    },
    "max_price_cents": 3
  }'

Limitations

  • Regional and bank holidays may be missing

    Covers national public holidays via Nager.Date API — regional/state holidays and bank holidays may not be included

    What to do instead: For regional holidays (e.g., German Bundesländer), check the specific state's official holiday calendar

  • Not all countries are covered

    Nager.Date covers 200+ countries but has notable gaps, including Thailand, India, Malaysia, Pakistan, the UAE, and Saudi Arabia (verified 2026-08-20). Uncovered countries return a structured "not covered" error. Machine-readable coverage list: https://date.nager.at/api/v3/AvailableCountries