holidays

Generate and work with holidays in Python


Keywords
holidays, calendar, l10n, holiday, holiday-api, holiday-calculation, python
License
Other
Install
pip install holidays==0.47

Documentation

holidays

A fast, efficient Python library for generating country- and subdivision- (e.g. state or province) specific sets of government-designated holidays on the fly. It aims to make determining whether a specific date is a holiday as fast and flexible as possible.

PyPI PyPI downloads PyPI version PyPI release date
CI/CD Documentation status
Code License Python supported versions Code style Code coverage
GitHub GitHub stars GitHub forks GitHub contributors GitHub last commit

Install

The latest stable version can always be installed or updated via pip:

$ pip install --upgrade holidays

The latest development (dev) version can be installed directly from GitHub:

$ pip install --upgrade https://github.com/vacanza/python-holidays/tarball/dev

All new features are always first pushed to dev branch, then released on main branch upon official version upgrades.

Documentation

The documentation is hosted on Read the Docs.

Quick Start

The HolidayBase dict-like class will also recognize date strings and Unix timestamps:

Some holidays may be only present in parts of a country:

Please see the python-holidays documentation for additional examples and detailed information.

Available Countries

We currently support 146 country codes. The standard way to refer to a country is by using its ISO 3166-1 alpha-2 code, the same used for domain names, and for a subdivision its ISO 3166-2 code. Some countries have common or foreign names or abbreviations as aliases for their subdivisions. These are defined in the (optional) subdivisions_aliases attribute. Some of the countries support more than one language for holiday names output. A default language is defined by default_language (optional) attribute for each entity and is used as a fallback when neither user specified language nor user locale language available. The default language code is a ISO 639-1 code. A list of all languages supported by country is defined by supported_languages (optional) attribute. If there is no designated ISO 639-1 code then ISO 639-2 code can be used.

Many countries have other categories of holidays in addition to common (national-wide) holidays: bank holidays, school holidays, additional (paid or non-paid) holidays, holidays of state or public employees, religious holidays (valid only for these religions followers). A list of all categories supported by country is defined by supported_categories (optional) attribute.

The following is a list of supported countries, their subdivisions followed by their aliases (if any) in brackets, available languages and additional holiday categories. All countries support PUBLIC holidays category by default. All other default values are highlighted with bold:

Country Code Subdivisions Supported Languages Supported Categories
Albania AL
Algeria DZ ar, en_US, fr
American Samoa AS Can also be loaded as country US, subdivision AS UNOFFICIAL
Andorra AD Parishes: 02, 03, 04, 05, 06, 07, 08
Angola AO en_US, pt_AO, uk
Argentina AR en_US, es, uk
Armenia AM en_US, hy
Aruba AW en_US, nl, pap, uk
Australia AU States and territories: ACT (Australian Capital Territory), NSW (New South Wales), NT (Northern Territory), QLD (Queensland), SA (South Australia), TAS (Tasmania), VIC (Victoria), WA (Western Australia) BANK, HALF_DAY
Austria AT States: 1 (Burgenland, Bgld, B), 2 (Kärnten, Ktn, K), 3 (Niederösterreich, NÖ, N), 4 (Oberösterreich, OÖ, O), 5 (Salzburg, Sbg, S), 6 (Steiermark, Stmk, St), 7 (Tirol, T), 8 (Vorarlberg, Vbg, V), 9 (Wien, W) de, en_US, uk BANK
Azerbaijan AZ az, en_US, uk WORKDAY
Bahamas BS
Bahrain BH ar, en_US
Bangladesh BD
Barbados BB
Belarus BY be, en_US
Belgium BE de, en_US, fr, nl, uk BANK
Belize BZ
Bolivia BO Departments: B, C, H, L, N, O, P, S, T en_US, es, uk
Bosnia and Herzegovina BA Entities and district: BIH, BRC, SRP bs, en_US, sr, uk
Botswana BW
Brazil BR States: AC, AL, AM, AP, BA, CE, DF, ES, GO, MA, MG, MS, MT, PA, PB, PE, PI, PR, RJ, RN, RO, RR, RS, SC, SE, SP, TO OPTIONAL
Brunei BN en_US, ms, th
Bulgaria BG bg, en_US, uk SCHOOL
Burkina Faso BF
Burundi BI
Cambodia KH en_US, km, th
Cameroon CM
Canada CA Provinces and territories: AB, BC, MB, NB, NL, NS, NT, NU, ON, PE, QC, SK, YT ar, en_CA, en_US, fr, th GOVERNMENT, OPTIONAL
Chad TD
Chile CL Regions: AI, AN, AP, AR, AT, BI, CO, LI, LL, LR, MA, ML, NB, RM, TA, VS en_US, es, uk
China CN en_US, th, zh_CN, zh_TW HALF_DAY
Colombia CO en_US, es, uk
Costa Rica CR en_US, es, uk OPTIONAL
Croatia HR en_US, hr, uk
Cuba CU en_US, es, uk
Curacao CW en_US, nl, pap, uk
Cyprus CY el, en_CY, en_US, uk BANK, OPTIONAL
Czechia CZ cs, en_US, sk, uk
Denmark DK da, en_US, uk OPTIONAL
Djibouti DJ ar, en_US, fr
Dominican Republic DO en_US, es, uk
Ecuador EC en_US, es, uk
Egypt EG ar, en_US
El Salvador SV Departments: AH, CA, CH, CU, LI, MO, PA, SA, SM, SO, SS, SV, UN, US
Estonia EE en_US, et, uk
Eswatini SZ
Ethiopia ET am, ar, en_US
Finland FI en_US, fi, sv, uk
France FR Départements: BL, GES, GP, GY, MF, MQ, NC, PF, RE, WF, YT en_US, fr, uk
Gabon GA
Georgia GE en_US, ka, uk
Germany DE States: BB, BE, BW, BY, BYP, HB, HE, HH, MV, NI, NW, RP, SH, SL, SN, ST, TH de, en_US, uk
Ghana GH
Greece GR el, en_US, uk HALF_DAY
Guam GU Can also be loaded as country US, subdivision GU UNOFFICIAL
Guatemala GT en_US, es
Honduras HN en_US, es, uk
Hong Kong HK
Hungary HU en_US, hu, uk
Iceland IS en_US, is, uk
India IN States: AN, AP, AR, AS, BR, CG, CH, DD, DH, DL, GA, GJ, HP, HR, JH, JK, KA, KL, LA, LD, MH, ML, MN, MP, MZ, NL, OR, PB, PY, RJ, SK, TN, TR, TS, UK, UP, WB
Indonesia ID en_US, id, uk GOVERNMENT
Iran IR en_US, fa
Ireland IE
Isle of Man IM
Israel IL en_US, he, uk OPTIONAL, SCHOOL
Italy IT Provinces: AG, AL, AN, AO, AP, AQ, AR, AT, AV, BA, BG, BI, BL, BN, BO, BR, BS, BT, BZ, CA, CB, CE, CH, CL, CN, CO, CR, CS, CT, CZ, EN, FC, FE, FG, FI, FM, FR, GE, GO, GR, IM, IS, KR, LC, LE, LI, LO, LT, LU, MB, MC, ME, MI, MN, MO, MS, MT, NA, NO, NU, OR, PA, PC, PD, PE, PG, PI, PN, PO, PR, PT, PU, PV, PZ, RA, RC, RE, RG, RI, RM, RN, RO, SA, SI, SO, SP, SR, SS, SU, SV, TA, TE, TN, TO, TP, TR, TS, TV, UD, VA, VB, VC, VE, VI, VR, VT, VV. Cities: Andria, Barletta, Cesena, Forli, Pesaro, Trani, Urbino
Jamaica JM
Japan JP en_US, ja, th BANK
Jersey JE
Jordan JO ar, en_US
Kazakhstan KZ
Kenya KE
Kuwait KW ar, en_US
Kyrgyzstan KG
Laos LA en_US, lo, th BANK, SCHOOL, WORKDAY
Latvia LV en_US, lv, uk
Lesotho LS
Liechtenstein LI de, en_US, uk BANK
Lithuania LT en_US, lt, uk
Luxembourg LU de, en_US, fr, lb, uk
Madagascar MG en_US, mg, uk
Malawi MW
Malaysia MY States: JHR, KDH, KTN, KUL, LBN, MLK, NSN, PHG, PJY, PLS, PNG, PRK, SBH, SGR, SWK, TRG
Maldives MV
Malta MT en_US, mt
Marshall Islands (the) MH
Mexico MX en_US, es, uk
Moldova MD en_US, ro, uk
Monaco MC en_US, fr, uk
Montenegro ME
Morocco MA ar, en_US, fr
Mozambique MZ en_US, pt_MZ, uk
Namibia NA
Netherlands NL en_US, nl, uk OPTIONAL
New Zealand NZ Regions: AUK, BOP, CAN, CIT, GIS, HKB, MBH, MWT, NSN, NTL, OTA, STL, TAS, TKI, WGN, WKO, WTC
Nicaragua NI Departments: AN, AS, BO, CA, CI, CO, ES, GR, JI, LE, MD, MN, MS, MT, NS, RI, SJ en_US, es, uk
Nigeria NG
Northern Mariana Islands (the) MP Can also be loaded as country US, subdivision MP UNOFFICIAL
North Macedonia MK
Norway NO en_US, no, uk
Pakistan PK
Panama PA
Papua New Guinea PG
Paraguay PY en_US, es, uk GOVERNMENT
Peru PE en_US, es, uk
Philippines PH
Poland PL en_US, pl, uk
Portugal PT Districts: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 30 en_US, pt_PT, uk OPTIONAL
Puerto Rico PR Can also be loaded as country US, subdivision PR UNOFFICIAL
Romania RO en_US, ro, uk
Russia RU en_US, ru
San Marino SM
Saudi Arabia SA ar, en_US
Serbia RS en_US, sr
Seychelles SC en_SC, en_US
Singapore SG
Slovakia SK en_US, sk, uk WORKDAY
Slovenia SI en_US, sl, uk
South Africa ZA
South Korea KR en_US, ko, th BANK
Spain ES Autonomous communities: AN, AR, AS, CB, CE, CL, CM, CN, CT, EX, GA, IB, MC, MD, ML, NC, PV, RI, VC en_US, es, uk
Sweden SE en_US, sv, uk
Switzerland CH Cantons: AG, AI, AR, BL, BS, BE, FR, GE, GL, GR, JU, LU, NE, NW, OW, SG, SH, SZ, SO, TG, TI, UR, VD, VS, ZG, ZH de, en_US, fr, it, uk HALF_DAY, OPTIONAL
Taiwan TW en_US, th, zh_CN, zh_TW
Tanzania TZ en_US, sw BANK
Thailand TH en_US, th ARMED_FORCES, BANK, GOVERNMENT, SCHOOL, WORKDAY
Timor Leste TL en_US, pt_TL, tet GOVERNMENT, WORKDAY
Tonga TO en_US, to
Tunisia TN ar, en_US
Turkey TR en_US, tr, uk HALF_DAY
Ukraine UA ar, en_US, uk
United Arab Emirates AE ar, en_US
United Kingdom GB Subdivisions: ENG, NIR, SCT, WLS
United States Minor Outlying Islands UM Can also be loaded as country US, subdivision UM UNOFFICIAL
United States of America (the) US States and territories: AK, AL, AR, AS, AZ, CA, CO, CT, DC, DE, FL, GA, GU, HI, IA, ID, IL, IN, KS, KY, LA, MA, MD, ME, MI, MN, MO, MP, MS, MT, NC, ND, NE, NH, NJ, NM, NV, NY, OH, OK, OR, PA, PR, RI, SC, SD, TN, TX, UM, UT, VA, VI, VT, WA, WI, WV, WY UNOFFICIAL
United States Virgin Islands (the) See Virgin Islands (U.S.) UNOFFICIAL
Uruguay UY en_US, es, uk BANK
Uzbekistan UZ en_US, uk, uz
Vanuatu VU
Vatican City VA
Venezuela VE en_US, es, uk
Vietnam VN
Virgin Islands (U.S.) VI Can also be loaded as country US, subdivision VI UNOFFICIAL
Zambia ZM
Zimbabwe ZW

Available Financial Markets

The standard way to refer to a financial market is to use its ISO 10383 MIC (Market Identifier Code) as a "country" code when available. The following financial markets are available:

Entity Code Info
European Central Bank ECB Trans-European Automated Real-time Gross Settlement (TARGET2)
New York Stock Exchange XNYS NYSE market holidays (used by all other US-exchanges, including NASDAQ, etc.)

Contributions

Issues and pull requests are always welcome. Please see here for more information.

License

Code and documentation are available according to the MIT License (see LICENSE).