Open public holiday data: JSON and ICS

Public holidays for 131 countries (2025–2030), free to download or fetch directly – no sign-up, no API key, open CORS. We only publish data that passed our cross-check against independent sources.

Endpoints (stable, version 1)

All files are static and cached for one day. Country code = ISO 3166-1 alpha-2 in lower case, region codes = ISO 3166-2 without the country prefix.

https://toolboxday.com/data/v1/holidays/index.json
https://toolboxday.com/data/v1/holidays/{country}/{year}.json
https://toolboxday.com/data/v1/holidays/{country}/{year}.ics

index.json · /data/v1/holidays/de/2027.json · /data/v1/holidays/fr/2027.ics

{
  "date": "2027-01-06",
  "id": "heiligeDreiKoenige",
  "name": "Epiphany",
  "localName": "Heilige Drei Könige",
  "nationwide": false,
  "regions": [
    "BW",
    "BY",
    "ST"
  ]
}

Code examples

JavaScript

const res = await fetch('https://toolboxday.com/data/v1/holidays/de/2027.json');
const data = await res.json();
// nationwide holidays + holidays of one state (e.g. Bavaria = "BY")
const byState = data.holidays.filter(
  (h) => h.nationwide || h.regions?.includes('BY')
);
console.log(byState.map((h) => `${h.date} ${h.name}`));

Python

import json, urllib.request

url = "https://toolboxday.com/data/v1/holidays/de/2027.json"
data = json.load(urllib.request.urlopen(url))
for h in data["holidays"]:
    where = "nationwide" if h["nationwide"] else ", ".join(h["regions"])
    print(h["date"], h["name"], "-", where)

curl + jq

curl -s https://toolboxday.com/data/v1/holidays/de/2027.json | jq '.holidays[] | select(.nationwide) | .date'

Subscribe in your calendar

The ICS files contain the nationwide public holidays. Google Calendar: “Other calendars → From URL”; Outlook: “Add calendar → Subscribe from web”; iPhone: “Settings → Calendar → Accounts → Add Subscribed Calendar”.

https://toolboxday.com/data/v1/holidays/fr/2027.ics

Licence

Our compilation is licensed under CC BY 4.0: you may use, share and adapt it, also commercially, with attribution. Data for countries other than Germany is based on python-holidays (MIT licence); the licence notice is linked and listed as a source in every JSON file. CC BY 4.0 · python-holidays (MIT)

Please credit us with a link

If you use the data on a website, in an app or in documentation, we appreciate a visible source link – it helps us keep the data maintained. A suggestion (change the wording as you like, nofollow is fine):

Holiday data: <a href="https://toolboxday.com/">ToolboxDay</a> (CC BY 4.0)

How the data is checked

School holidays

The JSON files for Germany also contain the school holidays of all 16 states (source: KMK and state ministries of education), as far as officially published.

School holidays of further countries (from the OpenHolidays API) are available as a separate file under the Open Database License (ODbL 1.0): /data/schulferien-welt.json

All countries and years

CountryISOFiles
Afghanistanaf2026: JSON ICS · 2027: JSON ICS
Algeriadz2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Andorraad2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Angolaao2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Armeniaam2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Arubaaw2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Australiaau2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Austriaat2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Bahrainbh2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Barbadosbb2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Belarusby2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Belgiumbe2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Belizebz2026: JSON ICS · 2027: JSON ICS
Beninbj2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Bermudabm2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Boliviabo2026: JSON ICS · 2027: JSON ICS
Burundibi2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Cambodiakh2026: JSON ICS · 2027: JSON ICS
Caribbean Netherlandsbq2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Central African Republiccf2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Chadtd2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Colombiaco2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Congo - Brazzavillecg2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Cook Islandsck2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Côte d’Ivoireci2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Croatiahr2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Curaçaocw2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Cypruscy2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Czechiacz2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Denmarkdk2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Djiboutidj2026: JSON ICS · 2027: JSON ICS
Dominicadm2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
El Salvadorsv2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Estoniaee2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Ethiopiaet2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Faroe Islandsfo2026: JSON ICS · 2027: JSON ICS
Finlandfi2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Francefr2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
French Guianagf2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
French Polynesiapf2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Gabonga2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Georgiage2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Germanyde2025: JSON ICS · 2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS · 2029: JSON ICS · 2030: JSON ICS
Ghanagh2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Gibraltargi2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Grenadagd2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Guatemalagt2026: JSON ICS · 2027: JSON ICS
Guernseygg2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Guineagn2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Haitiht2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Hungaryhu2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Icelandis2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Indonesiaid2026: JSON ICS · 2027: JSON ICS
Iraqiq2026: JSON ICS · 2027: JSON ICS
Irelandie2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Israelil2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Italyit2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Japanjp2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Jerseyje2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Kazakhstankz2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Kenyake2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Lebanonlb2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Lesothols2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Liberialr2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Liechtensteinli2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Lithuanialt2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Luxembourglu2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Macao SAR Chinamo2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Malawimw2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Maldivesmv2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Maliml2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Maltamt2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Mauritaniamr2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Mayotteyt2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Mexicomx2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Micronesiafm2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Moldovamd2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Monacomc2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Montenegrome2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Mozambiquemz2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Naurunr2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Netherlandsnl2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
New Caledonianc2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
New Zealandnz2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Nicaraguani2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
North Macedoniamk2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Norwayno2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Palaupw2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Paraguaypy2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Perupe2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Philippinesph2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Polandpl2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Portugalpt2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Qatarqa2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Réunionre2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Romaniaro2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Russiaru2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Rwandarw2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Samoaws2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
San Marinosm2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
São Tomé & Príncipest2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Senegalsn2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Seychellessc2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Singaporesg2026: JSON ICS · 2027: JSON ICS
Sint Maartensx2026: JSON ICS · 2027: JSON ICS
Slovakiask2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Sloveniasi2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Somaliaso2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
South Africaza2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
South Koreakr2026: JSON ICS · 2027: JSON ICS
Spaines2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Sri Lankalk2026: JSON ICS
St Barthélemybl2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
St Lucialc2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
St Pierre & Miquelonpm2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Sudansd2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Surinamesr2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Svalbard & Jan Mayensj2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Switzerlandch2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Tajikistantj2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Tanzaniatz2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Timor-Lestetl2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Tokelautk2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Türkiyetr2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Ugandaug2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
United Kingdomgb2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
United Statesus2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Venezuelave2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Wallis & Futunawf2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Zambiazm2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS
Zimbabwezw2026: JSON ICS · 2027: JSON ICS · 2028: JSON ICS

Found an error or missing a country? Write to us: info@saracai.de