Tools · data
Public holidays by country (and is this date one?)
A country's holidays for a year (1976-2076): date, local and English name, nationwide or regional, type; plus whether a given date is a nationwide public holiday and the next one. Covers the ~200 countries Nager.Date lists (not e.g. SA, AE, IN - 404). {country, year?, date?}; send {} for the published example. Not charged for an answer it cannot produce. Pay-per-call via x402.
$0.001 per call, paid in USDC on Base or Solana with x402 — no account, no API key. POST https://fiatdock.com/v1/calendar/holidays (or GET with the same fields as query parameters) · MCP tool public_holidays. An answer the tool cannot produce is refused with 4xx/5xx and is not charged.
Inputs
| Field | Type | Description | Example |
|---|---|---|---|
country | string | Country, ISO 3166-1 alpha-2 (US, DE, GB, BR, JP …). The covered list is https://date.nager.at/api/v3/AvailableCountries. An empty body answers for DE | "DE" |
year | integer | Year, 1976-2076 (default: the year of `date`, else the current UTC year) | 2026 |
date | string | A date (YYYY-MM-DD) to check: is it a holiday, and which is the next one after it. Default: today (UTC) when the year is the current one | "2026-10-31" |
Example
Request body
{"country":"DE","date":"2026-10-31"}
Answer (the published example)
{"country":"DE","year":2026,"count":19,"holidays":[{"date":"2026-01-01","localName":"Neujahr","name":"New Year's Day","global":true,"regions":[],"types":["Public"]},{"date":"2026-01-06","localName":"Heilige Drei Könige","name":"Epiphany","global":false,"regions":["DE-BW","DE-BY","DE-ST"],"types":["Public"]},{"date":"2026-03-08","localName":"Internationaler Frauentag","name":"International Women's Day","global":false,"regions":["DE-BE","DE-MV"],"types":["Public"]},{"date":"2026-04-03","localName":"Karfreitag","name":"Good Friday","global":true,"regions":[],"types":["Public"]},{"date":"2026-04-05","localName":"Ostersonntag","name":"Easter Sunday","global":false,"regions":["DE-BB"],"types":["Public"]},{"date":"2026-04-06","localName":"Ostermontag","name":"Easter Monday","global":true,"regions":[],"types":["Public"]},{"date":"2026-05-01","localName":"Tag der Arbeit","name":"Labour Day","global":true,"regions":[],"types":["Public"]},{"date":"2026-05-14","localName":"Christi Himmelfahrt","name":"Ascension Day","global":true,"regions":[],"types":["Public"]},{"date":"2026-05-24","localName":"Pfingstsonntag","name":"Pentecost","global":false,"regions":["DE-BB"],"types":["Public"]},{"date":"2026-05-25","localName":"Pfingstmontag","name":"Whit Monday","global":true,"regions":[],"types":["Public"]},{"date":"2026-06-04","localName":"Fronleichnam","name":"Corpus Christi","global":false,"regions":["DE-BW","DE-BY","DE-HE","DE-NW","DE-RP","DE-SL"],"types":["Public"]},{"date":"2026-08-15","localName":"Mariä Himmelfahrt","name":"Assumption Day","global":false,"regions":["DE-SL"],"types":["Public"]},{"date":"2026-09-20","localName":"Weltkindertag","name":"World Children's Day","global":false,"regions":["DE-TH"],"types":["Public"]},{"date":"2026-10-03","localName":"Tag der Deutschen Einheit","name":"German Unity Day","global":true,"regions":[],"types":["Public"]},{"date":"2026-10-31","localName":"Reformationstag","name":"Reformation Day","global":false,"regions":["DE-BB","DE-MV","DE-SN","DE-ST","DE-TH","DE-HB","DE-HH","DE-NI","DE-SH"],"types":["Public"]},{"date":"2026-11-01","localName":"Allerheiligen","name":"All Saints' Day","global":false,"regions":["DE-BW","DE-BY","DE-NW","DE-RP","DE-SL"],"types":["Public"]},{"date":"2026-11-18","localName":"Buß- und Bettag","name":"Repentance and Prayer Day","global":false,"regions":["DE-SN"],"types":["Public"]},{"date":"2026-12-25","localName":"Erster Weihnachtstag","name":"Christmas Day","global":true,"regions":[],"types":["Public"]},{"date":"2026-12-26","localName":"Zweiter Weihnachtstag","name":"St. Stephen's Day","global":true,"regions":[],"types":["Public"]}],"dateChecked":"2026-10-31","isHoliday":false,"holidaysOnDate":[],"regionalHolidaysOnDate":[{"date":"2026-10-31","localName":"Reformationstag","name":"Reformation Day","global":false,"regions":["DE-BB","DE-MV","DE-SN","DE-ST","DE-TH","DE-HB","DE-HH","DE-NI","DE-SH"],"types":["Public"]}],"nextHoliday":{"date":"2026-12-25","localName":"Erster Weihnachtstag","name":"Christmas Day","global":true,"regions":[],"types":["Public"]},"source":"Nager.Date public holiday API (date.nager.at, open source)","asOf":"2026-10-08T12:00:00.000Z","note":"isHoliday is true only for a nationwide holiday the source types as Public; regional holidays are in regionalHolidaysOnDate."}
Call it
curl
# 1) ask: an unpaid call answers 402 with the exact price (free)
curl -i -X POST https://fiatdock.com/v1/calendar/holidays -H 'content-type: application/json' -d '{"country":"DE","date":"2026-10-31"}'
# 2) pay: any x402 client signs that 402 and resends — see Node or Python below
Node
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";
const pay = wrapFetchWithPaymentFromConfig(fetch, {
schemes: [{ network: "eip155:*", client: new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_PRIVATE_KEY)) }],
});
const r = await pay("https://fiatdock.com/v1/calendar/holidays", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({"country":"DE","date":"2026-10-31"}),
});
console.log(r.status, await r.json());
Python
# pip install "x402[httpx,evm]"
import asyncio, json, os
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm.exact import register_exact_evm_client
async def main():
client = register_exact_evm_client(x402Client(), Account.from_key(os.environ["AGENT_PRIVATE_KEY"]))
async with x402HttpxClient(client) as http:
r = await http.post("https://fiatdock.com/v1/calendar/holidays", json=json.loads("{\"country\":\"DE\",\"date\":\"2026-10-31\"}"))
print(r.status_code, r.json())
asyncio.run(main())
MCP (Claude, Cursor, any MCP client)
{"mcpServers":{"fiatdock":{"command":"npx","args":["-y","fiatdock-mcp"],"env":{"AGENT_PRIVATE_KEY":"0x<your agent wallet key>"}}}}
// then call the tool "public_holidays" — the package pays each call from that wallet
The wallet needs USDC on Base. Prefer no install? The remote server https://fiatdock.com/mcp answers the 402 as tool output for an agent that signs its own payments.
Related tools
- Address intelligence on Base — $0.0045
- Base gas price — $0.001
- Base latest block — $0.001
- ETH balance on Base — $0.001
- USDC balance on Base — $0.001
- ERC-20 token metadata — $0.002
Machine-readable: OpenAPI · tools.json · llms.txt · /.well-known/x402