Skip to content

Commit 0c0ae7c

Browse files
committed
Add Kosovo (XK) holidays
Add public holidays for Kosovo based on Law No. 03/L-064. Includes Catholic, Orthodox, and Islamic holidays with localizations for Albanian (sq), English (en_US), and Serbian (sr). Resolves #3129
1 parent dbcff93 commit 0c0ae7c

File tree

10 files changed

+1098
-1
lines changed

10 files changed

+1098
-1
lines changed

CONTRIBUTORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Ben Collerson
2929
Ben Letham
3030
Benjamin Lucas Wacha
3131
Bernhard M. Wiedemann
32+
Blend Halilaj
3233
Carlos Rocha
3334
Chanran Kim
3435
Chris McKeague

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ and detailed information.
9999

100100
## Available Countries
101101

102-
We currently support 249 country codes and are fully compatible with [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html).
102+
We currently support 250 country codes and are fully compatible with [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html).
103103
The standard way to refer to a country is by using its [ISO 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes),
104104
the same used for domain names, and for a subdivision its [ISO 3166-2
105105
code](https://en.wikipedia.org/wiki/ISO_3166-2). Some countries have common or foreign names or
@@ -967,6 +967,13 @@ any) in brackets, available languages and additional holiday categories. All cou
967967
<td></td>
968968
</tr>
969969
<tr>
970+
<td>Kosovo</td>
971+
<td>XK</td>
972+
<td></td>
973+
<td>en_US, <strong>sq</strong>, sr</td>
974+
<td></td>
975+
</tr>
976+
<tr>
970977
<td>Kuwait</td>
971978
<td>KW</td>
972979
<td></td>

holidays/countries/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@
137137
from holidays.countries.kazakhstan import Kazakhstan, KZ, KAZ
138138
from holidays.countries.kenya import Kenya, KE, KEN
139139
from holidays.countries.kiribati import Kiribati, KI, KIR
140+
from holidays.countries.kosovo import Kosovo, XK, XKK
140141
from holidays.countries.kuwait import Kuwait, KW, KWT
141142
from holidays.countries.kyrgyzstan import Kyrgyzstan, KG, KGZ
142143
from holidays.countries.laos import Laos, LA, LAO

holidays/countries/kosovo.py

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# holidays
2+
# --------
3+
# A fast, efficient Python library for generating country, province and state
4+
# specific sets of holidays on the fly. It aims to make determining whether a
5+
# specific date is a holiday as fast and flexible as possible.
6+
#
7+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8+
# dr-prodigy <[email protected]> (c) 2017-2023
9+
# ryanss <[email protected]> (c) 2014-2017
10+
# Website: https://github.com/vacanza/holidays
11+
# License: MIT (see LICENSE file)
12+
13+
from gettext import gettext as tr
14+
15+
from holidays.calendars.julian import JULIAN_CALENDAR
16+
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
17+
from holidays.holiday_base import HolidayBase
18+
19+
20+
class Kosovo(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
21+
"""Kosovo holidays.
22+
23+
References:
24+
* <https://bqk-kos.org/kalendari-i-festave/>
25+
* Law No. 03/L-064 on Public Holidays in the Republic of Kosovo.
26+
"""
27+
28+
country = "XK"
29+
default_language = "sq"
30+
# %s (estimated).
31+
estimated_label = tr("%s (e vlerësuar)")
32+
supported_languages = ("en_US", "sq", "sr")
33+
# Independence declared on 2008-02-17.
34+
start_year = 2008
35+
36+
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
37+
"""
38+
Args:
39+
islamic_show_estimated:
40+
Whether to add "estimated" label to Islamic holidays name
41+
if holiday date is estimated.
42+
"""
43+
ChristianHolidays.__init__(self)
44+
InternationalHolidays.__init__(self)
45+
IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
46+
super().__init__(*args, **kwargs)
47+
48+
def _populate_public_holidays(self):
49+
# New Year's Day.
50+
name = tr("Viti i Ri")
51+
self._add_new_years_day(name)
52+
self._add_new_years_day_two(name)
53+
54+
# Orthodox Christmas Day.
55+
self._add_christmas_day(tr("Krishtlindjet Ortodokse"), JULIAN_CALENDAR)
56+
57+
# Independence Day.
58+
self._add_holiday_feb_17(tr("Dita e Pavarësisë së Republikës së Kosovës"))
59+
60+
# Constitution Day.
61+
self._add_holiday_apr_9(tr("Dita e Kushtetutës së Republikës së Kosovës"))
62+
63+
# International Workers' Day.
64+
self._add_labor_day(tr("Dita Ndërkombëtare e Punës"))
65+
66+
# Europe Day.
67+
self._add_europe_day(tr("Dita e Evropës"))
68+
69+
# Catholic Easter.
70+
name = tr("Pashkët Katolike")
71+
self._add_easter_sunday(name)
72+
self._add_easter_monday(name)
73+
74+
# Orthodox Easter.
75+
name = tr("Pashkët Ortodokse")
76+
self._add_easter_sunday(name, JULIAN_CALENDAR)
77+
self._add_easter_monday(name, JULIAN_CALENDAR)
78+
79+
# Eid al-Fitr.
80+
self._add_eid_al_fitr_day(tr("Bajrami i Madh, dita e parë"))
81+
82+
# Eid al-Adha.
83+
self._add_eid_al_adha_day(tr("Bajrami i Vogël, dita e parë"))
84+
85+
# Catholic Christmas Day.
86+
self._add_christmas_day(tr("Krishtlindjet Katolike"))
87+
88+
89+
class XK(Kosovo):
90+
pass
91+
92+
93+
class XKK(Kosovo):
94+
pass
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# holidays
2+
# --------
3+
# A fast, efficient Python library for generating country, province and state
4+
# specific sets of holidays on the fly. It aims to make determining whether a
5+
# specific date is a holiday as fast and flexible as possible.
6+
#
7+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8+
# dr-prodigy <[email protected]> (c) 2017-2023
9+
# ryanss <[email protected]> (c) 2014-2017
10+
# Website: https://github.com/vacanza/holidays
11+
# License: MIT (see LICENSE file)
12+
#
13+
# Kosovo holidays en_US localization.
14+
#
15+
msgid ""
16+
msgstr ""
17+
"Project-Id-Version: Holidays 0.82\n"
18+
"Report-Msgid-Bugs-To: [email protected]\n"
19+
"POT-Creation-Date: 2026-03-12 12:00+0000\n"
20+
"PO-Revision-Date: 2026-03-12 12:00+0000\n"
21+
"Last-Translator: \n"
22+
"Language-Team: Holidays Localization Team\n"
23+
"Language: en_US\n"
24+
"MIME-Version: 1.0\n"
25+
"Content-Type: text/plain; charset=UTF-8\n"
26+
"Content-Transfer-Encoding: 8bit\n"
27+
"X-Source-Language: sq\n"
28+
29+
#. %s (estimated).
30+
#, c-format
31+
msgid "%s (e vlerësuar)"
32+
msgstr "%s (estimated)"
33+
34+
#. New Year's Day.
35+
msgid "Viti i Ri"
36+
msgstr "New Year's Day"
37+
38+
#. Orthodox Christmas Day.
39+
msgid "Krishtlindjet Ortodokse"
40+
msgstr "Orthodox Christmas Day"
41+
42+
#. Independence Day.
43+
msgid "Dita e Pavarësisë së Republikës së Kosovës"
44+
msgstr "Independence Day"
45+
46+
#. Constitution Day.
47+
msgid "Dita e Kushtetutës së Republikës së Kosovës"
48+
msgstr "Constitution Day"
49+
50+
#. International Workers' Day.
51+
msgid "Dita Ndërkombëtare e Punës"
52+
msgstr "International Workers' Day"
53+
54+
#. Europe Day.
55+
msgid "Dita e Evropës"
56+
msgstr "Europe Day"
57+
58+
#. Catholic Easter.
59+
msgid "Pashkët Katolike"
60+
msgstr "Catholic Easter"
61+
62+
#. Orthodox Easter.
63+
msgid "Pashkët Ortodokse"
64+
msgstr "Orthodox Easter"
65+
66+
#. Eid al-Fitr.
67+
msgid "Bajrami i Madh, dita e parë"
68+
msgstr "Eid al-Fitr"
69+
70+
#. Eid al-Adha.
71+
msgid "Bajrami i Vogël, dita e parë"
72+
msgstr "Eid al-Adha"
73+
74+
#. Catholic Christmas Day.
75+
msgid "Krishtlindjet Katolike"
76+
msgstr "Catholic Christmas Day"
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# holidays
2+
# --------
3+
# A fast, efficient Python library for generating country, province and state
4+
# specific sets of holidays on the fly. It aims to make determining whether a
5+
# specific date is a holiday as fast and flexible as possible.
6+
#
7+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8+
# dr-prodigy <[email protected]> (c) 2017-2023
9+
# ryanss <[email protected]> (c) 2014-2017
10+
# Website: https://github.com/vacanza/holidays
11+
# License: MIT (see LICENSE file)
12+
#
13+
# Kosovo holidays.
14+
#
15+
msgid ""
16+
msgstr ""
17+
"Project-Id-Version: Holidays 0.82\n"
18+
"Report-Msgid-Bugs-To: [email protected]\n"
19+
"POT-Creation-Date: 2026-03-12 12:00+0000\n"
20+
"PO-Revision-Date: 2026-03-12 12:00+0000\n"
21+
"Last-Translator: \n"
22+
"Language-Team: Holidays Localization Team\n"
23+
"Language: sq\n"
24+
"MIME-Version: 1.0\n"
25+
"Content-Type: text/plain; charset=UTF-8\n"
26+
"Content-Transfer-Encoding: 8bit\n"
27+
"X-Source-Language: sq\n"
28+
29+
#. %s (estimated).
30+
#, c-format
31+
msgid "%s (e vlerësuar)"
32+
msgstr ""
33+
34+
#. New Year's Day.
35+
msgid "Viti i Ri"
36+
msgstr ""
37+
38+
#. Orthodox Christmas Day.
39+
msgid "Krishtlindjet Ortodokse"
40+
msgstr ""
41+
42+
#. Independence Day.
43+
msgid "Dita e Pavarësisë së Republikës së Kosovës"
44+
msgstr ""
45+
46+
#. Constitution Day.
47+
msgid "Dita e Kushtetutës së Republikës së Kosovës"
48+
msgstr ""
49+
50+
#. International Workers' Day.
51+
msgid "Dita Ndërkombëtare e Punës"
52+
msgstr ""
53+
54+
#. Europe Day.
55+
msgid "Dita e Evropës"
56+
msgstr ""
57+
58+
#. Catholic Easter.
59+
msgid "Pashkët Katolike"
60+
msgstr ""
61+
62+
#. Orthodox Easter.
63+
msgid "Pashkët Ortodokse"
64+
msgstr ""
65+
66+
#. Eid al-Fitr.
67+
msgid "Bajrami i Madh, dita e parë"
68+
msgstr ""
69+
70+
#. Eid al-Adha.
71+
msgid "Bajrami i Vogël, dita e parë"
72+
msgstr ""
73+
74+
#. Catholic Christmas Day.
75+
msgid "Krishtlindjet Katolike"
76+
msgstr ""
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# holidays
2+
# --------
3+
# A fast, efficient Python library for generating country, province and state
4+
# specific sets of holidays on the fly. It aims to make determining whether a
5+
# specific date is a holiday as fast and flexible as possible.
6+
#
7+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8+
# dr-prodigy <[email protected]> (c) 2017-2023
9+
# ryanss <[email protected]> (c) 2014-2017
10+
# Website: https://github.com/vacanza/holidays
11+
# License: MIT (see LICENSE file)
12+
#
13+
# Kosovo holidays sr localization.
14+
#
15+
msgid ""
16+
msgstr ""
17+
"Project-Id-Version: Holidays 0.82\n"
18+
"Report-Msgid-Bugs-To: [email protected]\n"
19+
"POT-Creation-Date: 2026-03-12 12:00+0000\n"
20+
"PO-Revision-Date: 2026-03-12 12:00+0000\n"
21+
"Last-Translator: \n"
22+
"Language-Team: Holidays Localization Team\n"
23+
"Language: sr\n"
24+
"MIME-Version: 1.0\n"
25+
"Content-Type: text/plain; charset=UTF-8\n"
26+
"Content-Transfer-Encoding: 8bit\n"
27+
"X-Source-Language: sq\n"
28+
29+
#. %s (estimated).
30+
#, c-format
31+
msgid "%s (e vlerësuar)"
32+
msgstr "%s (procenjeno)"
33+
34+
#. New Year's Day.
35+
msgid "Viti i Ri"
36+
msgstr "Nova godina"
37+
38+
#. Orthodox Christmas Day.
39+
msgid "Krishtlindjet Ortodokse"
40+
msgstr "Pravoslavni Božić"
41+
42+
#. Independence Day.
43+
msgid "Dita e Pavarësisë së Republikës së Kosovës"
44+
msgstr "Dan Nezavisnosti Republike Kosova"
45+
46+
#. Constitution Day.
47+
msgid "Dita e Kushtetutës së Republikës së Kosovës"
48+
msgstr "Dan Ustava Republike Kosova"
49+
50+
#. International Workers' Day.
51+
msgid "Dita Ndërkombëtare e Punës"
52+
msgstr "Međunarodni Dan Rada"
53+
54+
#. Europe Day.
55+
msgid "Dita e Evropës"
56+
msgstr "Dan Evrope"
57+
58+
#. Catholic Easter.
59+
msgid "Pashkët Katolike"
60+
msgstr "Katolički Uskrs"
61+
62+
#. Orthodox Easter.
63+
msgid "Pashkët Ortodokse"
64+
msgstr "Pravoslavni Uskrs"
65+
66+
#. Eid al-Fitr.
67+
msgid "Bajrami i Madh, dita e parë"
68+
msgstr "Fiter Bajram, prvi dan"
69+
70+
#. Eid al-Adha.
71+
msgid "Bajrami i Vogël, dita e parë"
72+
msgstr "Kurban Bajram, prvi dan"
73+
74+
#. Catholic Christmas Day.
75+
msgid "Krishtlindjet Katolike"
76+
msgstr "Katolički Božić"

holidays/registry.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@
138138
"kazakhstan": ("Kazakhstan", "KZ", "KAZ"),
139139
"kenya": ("Kenya", "KE", "KEN"),
140140
"kiribati": ("Kiribati", "KI", "KIR"),
141+
"kosovo": ("Kosovo", "XK", "XKK"),
141142
"kuwait": ("Kuwait", "KW", "KWT"),
142143
"kyrgyzstan": ("Kyrgyzstan", "KG", "KGZ"),
143144
"laos": ("Laos", "LA", "LAO"),

0 commit comments

Comments
 (0)