Public Holiday Lookup
Look up public holidays for a supported country and year. Returns holiday names and dates, with the next upcoming holiday.
public-holiday-lookup Example
{
"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
| Field | Type | Required | What it is |
|---|---|---|---|
year | number | No | — |
country_code | string | Yes | — |
Output fields
How reliably each field appears in a successful answer.
| Field | Type | Appears |
|---|---|---|
holidays | array | Always (present in every successful answer) |
next_upcoming | object | Always (present in every successful answer) |
total_holidays | number | Always (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
}' {
"tool": "strale_execute",
"arguments": {
"slug": "public-holiday-lookup",
"inputs": {
"year": 2027,
"country_code": "SE"
},
"max_price_cents": 3
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "public-holiday-lookup",
inputs: {
"year": 2027,
"country_code": "SE"
},
max_price_cents: 3,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="public-holiday-lookup",
inputs={
"year": 2027,
"country_code": "SE",
},
max_price_cents=3,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i 'https://api.strale.io/x402/v2/public-holiday-lookup?year=2027&country_code=SE' 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
Related tools
- Address Geocoding €0.02
- Barcode Lookup €0.05
- Container Tracking €0.05
- Country Lookup €0.02
- Country Tax Rates €0.02
- Country Trade Data €0.20