world-wide holidays in gregorian calender
This module provides dates of holidays for various countries, states and regions by type while considering the applicable timezone.
The features are:
- calculation of public, bank and observance holidays for different countries, state, region, following ISO 3166-2
- consideration of timezones for holiday checks
- consideration of start and end time dependent on timezone
- substitute days
- multi-language support for all holiday names
- setting of custom holidays
- uses own grammar for calculation of days
- support for islamic calendar from 1970 to 2080 (*islamic dates might not be correct as they are subject to the sighting of the moon)
- support for hebrew calendar from 1970 to 2100
- support for chinese calendar
- for generation of iCal calendar check out date-holidays-ical
Happy holidays!
- Supported Countries, States, Regions
- Usage
- Holiday object
- API
- Browser
- Data
- Custom builds of
holidays.json
- Bundling with webpack
- Contribution and License Agreement
- License
- References
If you are missing holidays from your country, state, region please consider contributing.
Countries: 133
โโโ AD: Andorra
โ โโโ 07: Andorra la Vella
โโโ AG: Antigua & Barbuda
โ โโโ 10: Barbuda
โโโ AI: Anguilla
โโโ AL: Shqipรซri
โโโ AM: ีีกีตีกีฝีฟีกีถ
โโโ AO: Angola
โโโ AR: Argentina
โโโ AS: American Samoa
โโโ AT: รsterreich
โ โโโ 1: Burgenland
โ โโโ 2: Kรคrnten
โ โโโ 3: Niederรถsterreich
โ โโโ 4: Oberรถsterreich
โ โโโ 5: Land Salzburg
โ โโโ 6: Steiermark
โ โโโ 7: Tirol
โ โโโ 8: Vorarlberg
โ โโโ 9: Wien
โโโ AU: Australia
โ โโโ ACT: Australian Capital Territory
โ โโโ NSW: New South Wales
โ โโโ NT: Northern Territory
โ โโโ QLD: Queensland
โ โโโ SA: South Australia
โ โโโ TAS: Tasmania
โ โ โโโ H: Hobart
โ โ โโโ NH: Non-Hobart
โ โโโ VIC: Victoria
โ โ โโโ M: Melbourne
โ โโโ WA: Western Australia
โโโ AW: Aruba
โโโ AX: Landskapet ร
land
โโโ AZ: Azษrbaycan Respublikasฤฑ
โโโ BA: Bosna i Hercegovina
โ โโโ BIH: Federation of Bosnia and Herzegovina
โ โ โโโ W: Western Herzegovina
โ โโโ BRC: Brฤko District
โ โโโ SRP: Republika Srpska
โโโ BB: Barbados
โโโ BE: Belgique
โ โโโ BRU: Bruxelles
โ โโโ DE: Deutschsprachige Gemeinschaft
โ โโโ VLG: Vlaamse Gemeenschap
โ โโโ WAL: Communautรฉ franรงaise
โโโ BG: ะัะปะณะฐัะธั
โโโ BI: Rรฉpublique du Burundi
โโโ BL: St. Barthรฉlemy
โโโ BO: Bolivia
โโโ BQ: Caribisch Nederland
โ โโโ BO: Bonaire
โ โโโ SA: Saba
โ โโโ SE: Sint Eustatius
โโโ BR: Brasil
โ โโโ AC: Acre
โ โโโ AL: Alagoas
โ โโโ AM: Amazonas
โ โโโ AP: Amapรก
โ โโโ BA: Bahia
โ โโโ CE: Cearรก
โ โโโ DF: Distrito Federal
โ โโโ MA: Maranhรฃo
โ โโโ MG: Minas Gerais
โ โ โโโ BH: Belo Horizonte
โ โโโ MS: Mato Grosso do Sul
โ โโโ MT: Mato Grosso
โ โโโ PA: Parรก
โ โโโ PB: Paraรญba
โ โโโ PE: Pernambuco
โ โ โโโ RE: Recife
โ โโโ PI: Piauรญ
โ โโโ PR: Paranรก
โ โ โโโ CU: Curitiba
โ โโโ RJ: Rio de Janeiro
โ โโโ RN: Rio Grande do Norte
โ โโโ RO: Rondรดnia
โ โโโ RR: Roraima
โ โโโ RS: Rio Grande do Sul
โ โโโ SC: Santa Catarina
โ โโโ SE: Sergipe
โ โโโ SP: Sรฃo Paulo
โ โ โโโ SP: Sรฃo Paulo
โ โโโ TO: Tocantins
โโโ BS: Bahamas
โโโ BW: Botswana
โโโ BY: ะ ััะฟัะฑะปัะบะฐ ะะตะปะฐัััั
โโโ BZ: Belize
โโโ CA: Canada
โ โโโ AB: Alberta
โ โโโ BC: British Columbia
โ โโโ MB: Manitoba
โ โโโ NB: New Brunswick
โ โโโ NL: Newfoundland and Labrador
โ โโโ NS: Nova Scotia
โ โโโ NT: Northwest Territories
โ โโโ NU: Nunavut
โ โโโ ON: Ontario
โ โโโ PE: Prince Edward Island
โ โโโ QC: Quebec
โ โโโ SK: Saskatchewan
โ โโโ YT: Yukon
โโโ CC: Cocos (Keeling) Islands
โโโ CD: Rรฉpublique dรฉmocratique du Congo
โโโ CF: Rรฉpublique centrafricaine
โโโ CG: Rรฉpublique du Congo
โโโ CH: Schweiz
โ โโโ ZH: Kanton Zรผrich
โ โโโ BE: Kanton Bern
โ โโโ LU: Kanton Luzern
โ โโโ UR: Kanton Uri
โ โโโ SZ: Kanton Schwyz
โ โโโ OW: Kanton Obwalden
โ โโโ NW: Kanton Nidwalden
โ โโโ GL: Kanton Glarus
โ โโโ ZG: Kanton Zug
โ โโโ FR: Kanton Freiburg
โ โโโ SO: Kanton Solothurn
โ โโโ BS: Kanton Basel-Stadt
โ โโโ BL: Kanton Basel-Landschaft
โ โโโ SH: Kanton Schaffhausen
โ โโโ AR: Kanton Appenzell Ausserrhoden
โ โโโ AI: Kanton Appenzell Innerrhoden
โ โโโ SG: Kanton St. Gallen
โ โโโ GR: Kanton Graubรผnden
โ โโโ AG: Kanton Aargau
โ โโโ TG: Kanton Thurgau
โ โโโ TI: Kanton Tessin
โ โโโ VD: Kanton Waadt
โ โโโ VS: Kanton Wallis
โ โโโ NE: Kanton Neuenburg
โ โโโ GE: Kanton Genf
โ โโโ JU: Kanton Jura
โโโ CL: Chile
โ โโโ AP: Arica y Parinacota
โ โโโ BI: Biobรญo
โ โ โโโ CH: Chillรกn y Chillรกn Viejo
โ โโโ TA: Tarapacรก
โโโ CM: Cameroun
โโโ CN: ไธญๅไบบๆฐๅ
ฑๅๅฝ
โโโ CO: Colombia
โโโ CR: Costa Rica
โโโ CU: Cuba
โโโ CW: Curaรงao
โโโ CY: ฮฯฯฯฮฟฯ
โโโ CZ: ฤeskรก republika
โโโ DE: Deutschland
โ โโโ BB: Brandenburg
โ โโโ BE: Berlin
โ โโโ BW: Baden Wรผrtemberg
โ โโโ BY: Bayern
โ โ โโโ A: Stadt Augsburg
โ โ โโโ EVANG: รberwiegend evangelische Gemeinden
โ โโโ HB: Hansestadt Bremen
โ โโโ HE: Hessen
โ โโโ HH: Hansestadt Hamburg
โ โโโ MV: Mecklenburg Vorpommern
โ โโโ NI: Niedersachsen
โ โโโ NW: Nordrhein-Westfalen
โ โโโ RP: Rheinland-Pfalz
โ โโโ SH: Schleswig-Holstein
โ โโโ SL: Saarland
โ โโโ SN: Sachsen
โ โ โโโ BZ: Landkreis Bautzen
โ โโโ ST: Sachsen-Anhalt
โ โโโ TH: Thรผringen
โ โโโ EIC: Landkreis Eichfeld
โ โโโ UH: Unstrut-Hainich-Kreis
โ โโโ WAK: Wartburgkreis
โโโ DK: Danmark
โโโ DM: Dominica
โโโ DO: Repรบblica Dominicana
โโโ EC: Ecuador
โ โโโ P: Pichincha
โ โโโ QU: Quito
โโโ EE: Eesti
โโโ ES: Espaรฑa
โ โโโ MD: Comunidad de Madrid
โ โโโ AN: Andalucรญa
โ โโโ AR: Aragรณn
โโโ ET: แขแตแฎแตแซ
โโโ FI: Suomi
โโโ FO: Fรธroyar
โโโ FR: France
โ โโโ 57: Dรฉpartement Moselle
โ โโโ 67: Dรฉpartement Bas-Rhin
โ โโโ 68: Dรฉpartement Haut-Rhin
โ โโโ YT: Dรฉpartement et rรฉgion d'outre-mer Mayotte
โ โโโ MQ: Dรฉpartement et rรฉgion d'outre-mer Martinique
โ โโโ GP: Dรฉpartement et rรฉgion d'outre-mer Guadeloupe
โ โโโ GF: Dรฉpartement et rรฉgion d'outre-mer Guyane
โ โโโ RE: Dรฉpartement et rรฉgion d'outre-mer La Rรฉunion
โโโ GA: Gabon
โโโ GB: United Kingdom
โ โโโ ALD: Alderney
โ โโโ ENG: England
โ โโโ NIR: Northern Ireland
โ โโโ SCT: Scottland
โ โโโ WLS: Wales
โโโ GD: Grenada
โโโ GF: Guyane
โโโ GG: Guernsey
โโโ GI: Gibraltar
โโโ GL: Kalaallit Nunaat
โโโ GP: Guadeloupe
โโโ GQ: Repรบblica de Guinea Ecuatorial
โโโ GR: ฮฮปฮปฮฌฮดฮฑ
โโโ GT: Guatemala
โโโ GU: Guam
โโโ GY: Guyana
โโโ HN: Honduras
โโโ HR: Hrvatska
โ โโโ 17: Split-Dalmatia
โ โโโ 19: Dubrovnik-Neretva
โโโ HT: Haรฏti
โโโ HU: Magyarorszรกg
โโโ IE: Ireland
โโโ IM: Isle of Man
โโโ IS: รsland
โโโ IT: Italia
โ โโโ 32: Sรผdtirol, Alto Adige
โโโ JE: Jersey
โโโ JM: Jamaica
โโโ JP: ๆฅๆฌ
โโโ KE: Kenia
โโโ KR: ๋ํ๋ฏผ๊ตญ
โโโ LI: Lichtenstein
โโโ LS: \'Muso oa Lesotho
โโโ LT: Lietuva
โโโ LU: Luxembourg
โโโ LV: Latvija
โโโ MC: Monaco
โโโ MD: Republica Moldova
โ โโโ CA: Cahul
โ โโโ CU: Chiศinฤu
โโโ ME: Crna Gora
โโโ MG: Repoblikan'i Madagasikara
โโโ MK: ะ ะตะฟัะฑะปะธะบะฐ ะะฐะบะตะดะพะฝะธัะฐ
โโโ MQ: Martinique
โโโ MT: Malta
โโโ MW: Malawi
โโโ MX: Mรฉxico
โโโ MZ: Moรงambique
โโโ NA: Namibia
โโโ NI: Nicaragua
โโโ NL: Nederland
โโโ NO: Norge
โโโ NZ: New Zealand
โ โโโ AUK: Auckland Province
โ โโโ CAN: Canterbury
โ โ โโโ S: South Canterbury
โ โโโ CIT: Chatham Islands
โ โโโ HKB: Hawke's Bay
โ โโโ MBH: Marlborough
โ โโโ NSN: Nelson
โ โโโ NTL: Northland
โ โโโ OTA: Otago Province
โ โโโ STL: Southland
โ โโโ TKI: Taranaki
โ โโโ WGN: Wellington Province
โ โโโ WTC: Westland
โโโ PA: Panamรก
โโโ PE: Perรบ
โ โโโ CUS: Cuzco
โโโ PL: Polska
โโโ PT: Portugal
โโโ PY: Paraguay
โโโ RE: Rรฉunion
โโโ RO: Romania
โโโ RS: ะ ะตะฟัะฑะปะธะบะฐ ะกัะฑะธัะฐ
โโโ RU: ะ ะพััะธั
โโโ RW: Repubulika y'u Rwanda
โโโ SE: Sverige
โโโ SH: St. Helena
โ โโโ AC: Ascension Island
โ โโโ HL: Saint Helena
โ โโโ TA: Tristan da Cunha
โโโ SI: Republika Slovenija
โโโ SJ: Svalbard & Jan Mayen
โโโ SK: Slovenskรก republika
โโโ SM: San Marino
โโโ SO: Jamhuuriyadda Federaalka Soomaaliya
โ โโโ AW: Awdal
โ โโโ SA: Sanaag
โ โโโ SO: Sool
โ โโโ TO: Togdheer
โ โโโ WO: Woqooyi Galbeed
โโโ SS: South Sudan
โโโ SV: El Salvador
โ โโโ SS: San Salvador
โโโ TG: Rรฉpublique togolaise
โโโ TO: Puleสปanga Fakatuสปi สปo Tonga
โโโ TR: Tรผrkiye
โโโ TZ: Tanzania
โโโ UA: ะฃะบัะฐัะฝะฐ
โโโ UG: Uganda
โโโ US: United States of America
โ โโโ AL: Alabama
โ โโโ AK: Alaska
โ โโโ AZ: Arizona
โ โโโ AR: Arkansas
โ โโโ CA: California
โ โ โโโ LA: Los Angeles
โ โโโ CO: Colorado
โ โโโ CT: Connecticut
โ โโโ DE: Delaware
โ โโโ DC: District of Columbia
โ โโโ FL: Florida
โ โโโ GA: Georgia
โ โโโ HI: Hawaii
โ โโโ ID: Idaho
โ โโโ IL: Illinois
โ โโโ IN: Indiana
โ โโโ IA: Iowa
โ โโโ KS: Kansas
โ โโโ KY: Kentucky
โ โโโ LA: Louisiana
โ โ โโโ NO: New Orleans
โ โโโ ME: Maine
โ โโโ MD: Maryland
โ โโโ MA: Massachusetts
โ โโโ MI: Michigan
โ โโโ MN: Minnesota
โ โโโ MS: Mississippi
โ โโโ MO: Missouri
โ โโโ MT: Montana
โ โโโ NE: Nebraska
โ โโโ NV: Nevada
โ โโโ NH: New Hampshire
โ โโโ NJ: New Jersey
โ โโโ NM: New Mexico
โ โโโ NY: New York
โ โโโ NC: North Carolina
โ โโโ ND: North Dakota
โ โโโ OH: Ohio
โ โโโ OK: Oklahoma
โ โโโ OR: Oregon
โ โโโ PA: Pennsylvania
โ โโโ RI: Rhode Island
โ โโโ SC: South Carolina
โ โโโ SD: South Dakota
โ โโโ TN: Tennessee
โ โโโ TX: Texas
โ โโโ UT: Utah
โ โโโ VT: Vermont
โ โโโ VA: Virginia
โ โโโ WA: Washington
โ โโโ WV: West Virginia
โ โโโ WI: Wisconsin
โ โโโ WY: Wyoming
โโโ UY: Uruguay
โโโ VA: Stato della Cittร del Vaticano
โโโ VE: Venezuela
โ โโโ B: Anzoรกtegui
โ โโโ G: Carabobo
โ โโโ K: Lara
โ โ โโโ BA: Barquisimeto
โ โโโ M: Miranda
โ โโโ N: Monagas
โ โโโ S: Tรกchira
โ โโโ V: Zulia
โโโ VN: Cแปng hรฒa Xรฃ hแปi chแปง nghฤฉa Viแปt Nam
โโโ XK: Republika e Kosovรซs
โโโ YT: Mayotte
โโโ ZA: South Africa
โโโ ZM: Zambia
โโโ ZW: Zimbabwe
var Holidays = require('date-holidays')
var hd = new Holidays()
// get supported countries
hd.getCountries()
/*>
{ AD: 'Andorra',
...
US: 'United States' }
*/
// get supported states e.g. for US
hd.getStates('US')
/*>
{ al: 'Alabama',
...
wy: 'Wyoming' }
*/
// get supported regions e.g. for US, Lousiana
hd.getRegions('US', 'la')
/*>
{ no: 'New Orleans' }
*/
// initialize holidays for US, Lousiana, New Orleans
hd.init('US', 'la', 'no')
// or using a new instance
hd = new Holidays('US', 'la', 'no')
// get all holidays for the year 2016
hd.getHolidays(2016)
/*>
[ { date: '2016-01-01 00:00:00',
start: Fri Jan 01 2016 00:00:00 GMT-0600 (CST),
end: Sat Jan 02 2016 00:00:00 GMT-0600 (CST),
name: 'New Year\'s Day',
type: 'public' },
...
{ date: '2016-11-24 00:00:00',
start: Thu Nov 24 2016 00:00:00 GMT-0600 (CST),
end: Fri Nov 25 2016 00:00:00 GMT-0600 (CST),
name: 'Thanksgiving Day',
type: 'public' },
...
{ date: '2016-12-26 00:00:00',
start: Mon Dec 26 2016 00:00:00 GMT-0600 (CST),
end: Tue Dec 27 2016 00:00:00 GMT-0600 (CST),
substitute: true,
name: 'Christmas Day (substitute day)',
type: 'public' } ]
*/
// check if date is a holiday while respecting timezones
hd.isHoliday(new Date('2016-02-09 00:00:00 GMT+0000'))
//> false
hd.isHoliday(new Date('2016-02-09 10:00:00 GMT-0600'))
/*>
{ date: '2016-02-09 00:00:00',
start: Tue Feb 09 2016 00:00:00 GMT-0600 (CST),
end: Wed Feb 10 2016 00:00:00 GMT-0600 (CST),
name: 'Mardi Gras',
type: 'public' }
*/
getHolidays()
as well as a matching isHoliday()
call return either a list or
a single holiday object which consists of:
- {String} date - ISO Date String of (start)-date in local format
- {Date} start - start date of holiday
- {Date} end - end date of holiday
- {String} name - name of holiday using
language
(if available) - {String} type - type of holiday
public|bank|school|optional|observance
- {Boolean} substitute - (optional) if true holiday substitutes another holiday`
- {String} note - (optional) note`
The date
String represents the start date of the holiday in ISO format without
timezone. This string it intended for information only.
start
and end
are the start/end date of the holiday within the selected
timezone of the country, state, region.
The name
names the holiday in the local language of the selected country,
state, region. The applied language(s) can be requested using getLanguages()
.
The language can be changed using the setLanguages()
method. In case that not
translation is available a fall-back to the next given language will be made.
E.g. local language is "fr", setLanguages('nl')
was called. For all holidays
where no dutch translation is available the French version will be used instead.
All holiday names should support an English translation.
Currently the following type with their meaning are supported
type | meaning |
---|---|
public | public holiday |
bank | bank holiday, banks and offices are closed |
school | school holiday, schools are closed |
optional | majority of people take a day off |
observance | optional festivity, no paid day off |
Additionally a note
field is sometimes available for further clarification.
See Holidays API for further information.
This project also runs in all modern browsers. See ./examples/browser
Browser | Version | Notes |
---|---|---|
Chrome | >=45 | |
Firefox | >=45 | |
Safari | >=10 | |
Edge | >=13 | |
IE | >=10 | needs polyfill core-js/es6 |
Please do not forget to set the correct charset!
<html>
<head>
<!-- set page-wide -->
<meta charset="UTF-8">
...
</head>
<body>
...
<!-- or per script -->
<script src="your-bundle.js" charset="UTF-8"></script>
Testing is done with zuul
. For local browser tests run npm run zuul -- --local 3000
and open http://localhost:3000/__zuul.
All data for the holidays of the different countries is contained in
./data/holidays.json
. For changing holiday data edit the appropriate country in ./data/countries
.
Any details on structure and
available grammar for holiday attribution is described in
holidays.yaml specification.
If only selected countries are required in data/holidays.json
you can add the
following script to your npm scripts section. E.g. for picking just US, Canada,
Mexico do the following:
"scripts": {
"build": "holidays2json --pick US,CA,MX --min"
},
The --min
switch removes dependencies which are not required for the countries selected. You may not be able to use the full set of rules in case you want to add custom rules.
Alternatively you may use the --omit
option.
Manually use
$(npm bin)/holidays2json --pick US,CA,MX
NOTE: There are some countries which depend on data of others which might render the file useless. e.g. "GU" requires "US", so try to pick or omit both.
To minimize bundle sizes consider adding the following lines in your webpack config.
Please take a look at ./webpack.config.js
. To further reduce size consider custom builds by only selecting required countries.
...
plugins: [
// ---- do not bundle moment locales
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
// ---- do not bundle astronomia vsop planet data
new webpack.IgnorePlugin(/^\.\/vsop87B.*$/)
...
You like to contribute please read CONTRIBUTING.md.
If you contribute code to this project, you are implicitly allowing your code to be distributed under the ISC license. You are also implicitly verifying that all code is your original work or correctly attributed with the source of its origin and license.
Copyright (c) 2016- commenthol (ISC License)
The data contained in holidays.json
and ./data/countries/*.yaml
is available under CC BY-SA 3.0
as the majority of data obtained relies on wikipedia articles. The required
attribution can be found inside the files ./data/countries/*.yaml
.
See LICENSE for more information.