Repository: vacanza/holidays
Pull request #2316 (2025-02-27 19:46:25)

Update Kenya holidays, add l10n support
<!--
  Thanks for contributing to holidays!
-->

## Proposed change

<!--
  Describe the big picture of your changes.
  Don't forget to link your PR to an existing issue if any.
-->

Update Kenya holidays, add l10n support (**en_KE**, en_US, sw).

## Type of change

<!--
  Type of change you want to introduce. Please, check one (1) box only!
  If your PR requires multiple boxes to be checked, most likely it needs to
  be split into multiple PRs.
-->

- [ ] New country/market holidays support (thank you!)
- [x] Supported country/market holidays update (calendar discrepancy fix, localization)
- [ ] Existing code/documentation/test/process quality improvement (best practice, cleanup, refactoring, optimization)
- [ ] Dependency update (version deprecation/pin/upgrade)
- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] Breaking change (a code change causing existing functionality to break)
- [ ] New feature (new `holidays` functionality in general)

## Checklist

<!--
  Put an `x` in the boxes that apply. You can change them after PR is created.
-->

- [x] I've followed the [contributing guidelines][contributing-guidelines]
- [x] I've successfully run `make check`, all checks and tests are green

<!--
  Thanks again for your contribution!
-->

[contributing-guidelines]: https://github.com/vacanza/holidays/blob/dev/CONTRIBUTING.rst
[docs]: https://github.com/vacanza/holidays/tree/dev/docs/source


sonarqubecloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2316) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2316&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2316&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=vacanza_python-holidays&pullRequest=2316&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2316&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2316&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2316)


codecov[bot]: ## [Codecov](https://app.codecov.io/gh/vacanza/holidays/pull/2316?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Project coverage is 100.00%. Comparing base [(`e57c52e`)](https://app.codecov.io/gh/vacanza/holidays/commit/e57c52e8009e11e31a13151bb82d1f626a739054?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza) to head [(`ad3ee19`)](https://app.codecov.io/gh/vacanza/holidays/commit/ad3ee19810645455be2cf91f3d6c43e731ca2bab?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).

<details><summary>Additional details and impacted files</summary>


```diff
@@            Coverage Diff            @@
##               dev     #2316   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          201       201           
  Lines        12340     12374   +34     
  Branches      1771      1775    +4     
=========================================
+ Hits         12340     12374   +34     
```

</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/vacanza/holidays/pull/2316?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).   
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).


Patch:
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index dbc0bfdb..ec838e5a 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -24,7 +24,7 @@ repos:
           - --py39-plus
 
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.9.7
+    rev: v0.9.8
     hooks:
       - id: ruff
       - id: ruff-format
diff --git a/README.rst b/README.rst
index 4188096f..67b7edf6 100644
--- a/README.rst
+++ b/README.rst
@@ -59,8 +59,8 @@ flexible as possible.
     :target: https://github.com/vacanza/holidays/commits/dev
     :alt: GitHub last commit
 
-.. |doi| image:: https://img.shields.io/badge/DOI-10.5281/zenodo.14847397-41B5BE?style=flat
-    :target: https://doi.org/10.5281/zenodo.14847397
+.. |doi| image:: https://img.shields.io/badge/DOI-10.5281/zenodo.14884702-41B5BE?style=flat
+    :target: https://doi.org/10.5281/zenodo.14884702
     :alt: Open World Holidays Franework DOI
 
 +----------+------------------------------------------------+
@@ -584,8 +584,8 @@ All other default values are highlighted with bold:
    * - Kenya
      - KE
      -
-     -
-     -
+     - **en_KE**, en_US, sw
+     - HINDU, ISLAMIC
    * - Kuwait
      - KW
      -
diff --git a/holidays/countries/kenya.py b/holidays/countries/kenya.py
index 972d1350..c914f5a8 100644
--- a/holidays/countries/kenya.py
+++ b/holidays/countries/kenya.py
@@ -10,65 +10,134 @@
 #  Website: https://github.com/vacanza/holidays
 #  License: MIT (see LICENSE file)
 
-from holidays.calendars.gregorian import FEB, APR, AUG, SEP
-from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
-from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON, SUN_TO_NEXT_TUE
-
-
-class Kenya(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
+from gettext import gettext as tr
+
+from holidays.calendars import _CustomHinduHolidays, _CustomIslamicHolidays
+from holidays.calendars.gregorian import FEB, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV
+from holidays.constants import HINDU, ISLAMIC, PUBLIC
+from holidays.groups import (
+    ChristianHolidays,
+    HinduCalendarHolidays,
+    InternationalHolidays,
+    IslamicHolidays,
+    StaticHolidays,
+)
+from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_WORKDAY
+
+
+class Kenya(
+    ObservedHolidayBase,
+    ChristianHolidays,
+    HinduCalendarHolidays,
+    InternationalHolidays,
+    IslamicHolidays,
+    StaticHolidays,
+):
     """
-    https://en.wikipedia.org/wiki/Public_holidays_in_Kenya
-    http://kenyaembassyberlin.de/Public-Holidays-in-Kenya.48.0.html
-    https://www.officeholidays.com/holidays/kenya/moi-day
+    References:
+        - https://en.wikipedia.org/wiki/Public_holidays_in_Kenya
+        - `Public Holidays Act Cap. 110 <https://new.kenyalaw.org/akn/ke/act/1912/21/eng@2024-04-26>`_
+        - `Constitution of Kenya (Art. 9) <https://new.kenyalaw.org/akn/ke/act/2010/constitution/eng@2010-09-03#chp_Two__sec_9>`_
     """
 
     country = "KE"
-    observed_label = "%s (observed)"
-    start_year = 1963
+    default_language = "en_KE"
+    # %s (estimated).
+    estimated_label = tr("%s (estimated)")
+    # %s (observed).
+    observed_label = tr("%s (observed)")
+    # %s (observed, estimated).
+    observed_estimated_label = tr("%s (observed, estimated)")
+    supported_categories = (HINDU, ISLAMIC, PUBLIC)
+    supported_languages = ("en_KE", "en_US", "sw")
+    # Kenya gained independence on December 12, 1963.
+    start_year = 1964
 
     def __init__(self, *args, **kwargs):
         ChristianHolidays.__init__(self)
+        HinduCalendarHolidays.__init__(self, cls=KenyaHinduHolidays)
         InternationalHolidays.__init__(self)
+        IslamicHolidays.__init__(self, cls=KenyaIslamicHolidays)
         StaticHolidays.__init__(self, cls=KenyaStaticHolidays)
-        kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON)
+        kwargs.setdefault("observed_rule", SUN_TO_NEXT_WORKDAY)
+        kwargs.setdefault("observed_since", 1985)
         super().__init__(*args, **kwargs)
 
     def _populate_public_holidays(self):
-        # New Year's Day
-        self._add_observed(self._add_new_years_day("New Year's Day"))
+        dts_observed = set()
+
+        # New Year's Day.
+        dts_observed.add(self._add_new_years_day(tr("New Year's Day")))
+
+        # Good Friday.
+        self._add_good_friday(tr("Good Friday"))
+
+        # Easter Monday.
+        self._add_easter_monday(tr("Easter Monday"))
+
+        # Labor Day.
+        dts_observed.add(self._add_labor_day(tr("Labour Day")))
+
+        if self._year >= 2011:
+            # Madaraka Day.
+            dts_observed.add(self._add_holiday_jun_1(tr("Madaraka Day")))
+
+        if 1990 <= self._year <= 2009 or self._year >= 2018:
+            if self._year >= 2025:
+                # Mazingira Day.
+                name = tr("Mazingira Day")
+            elif self._year >= 2021:
+                # Utamaduni Day.
+                name = tr("Utamaduni Day")
+            else:
+                # Moi Day.
+                name = tr("Moi Day")
+            dts_observed.add(self._add_holiday_oct_10(name))
+
+        dts_observed.add(
+            self._add_holiday_oct_20(
+                # Mashujaa Day.
+                tr("Mashujaa Day")
+                if self._year >= 2011
+                # Kenyatta Day.
+                else tr("Kenyatta Day")
+            )
+        )
 
-        # Good Friday
-        self._add_good_friday("Good Friday")
+        dts_observed.add(
+            self._add_holiday_dec_12(
+                # Jamhuri Day.
+                tr("Jamhuri Day")
+                if self._year >= 2011
+                # Independence Day.
+                else tr("Independence Day")
+            )
+        )
 
-        # Easter Monday
-        self._add_easter_monday("Easter Monday")
+        # Christmas Day.
+        dts_observed.add(self._add_christmas_day(tr("Christmas Day")))
 
-        # Labour Day
-        self._add_observed(self._add_labor_day("Labour Day"))
+        # Boxing Day.
+        dts_observed.add(self._add_christmas_day_two(tr("Boxing Day")))
 
-        if self._year >= 2010:
-            # Mandaraka Day
-            self._add_observed(self._add_holiday_jun_1("Madaraka Day"))
+        # Eid-al-Fitr.
+        dts_observed.update(self._add_eid_al_fitr_day(tr("Idd-ul-Fitr")))
 
-        if 2002 <= self._year <= 2009 or self._year >= 2018:
-            self._add_observed(
-                # Utamaduni/Moi Day
-                self._add_holiday_oct_10("Utamaduni Day" if self._year >= 2021 else "Moi Day")
-            )
+        if self.observed:
+            self._populate_observed(dts_observed)
 
-        self._add_observed(
-            # Mashuja/Kenyatta Day
-            self._add_holiday_oct_20("Mashujaa Day" if self._year >= 2010 else "Kenyatta Day")
-        )
+    def _populate_hindu_holidays(self):
+        """Additional Hindu public holidays."""
 
-        # Jamhuri Day
-        self._add_observed(self._add_holiday_dec_12("Jamhuri Day"))
+        if self._year >= 1984:
+            # Diwali.
+            self._add_diwali(tr("Diwali"))
 
-        # Christmas Day
-        self._add_observed(self._add_christmas_day("Christmas Day"), rule=SUN_TO_NEXT_TUE)
+    def _populate_islamic_holidays(self):
+        """Additional Islamic public holidays."""
 
-        # Boxing Day
-        self._add_observed(self._add_christmas_day_two("Boxing Day"))
+        # Eid-al-Adha.
+        self._add_eid_al_adha_day(tr("Idd-ul-Azha"))
 
 
 class KE(Kenya):
@@ -79,15 +148,102 @@ class KEN(Kenya):
     pass
 
 
+class KenyaHinduHolidays(_CustomHinduHolidays):
+    DIWALI_DATES = {
+        2014: (OCT, 22),
+        2015: (NOV, 10),
+        2016: (OCT, 29),
+        2017: (OCT, 18),
+        2018: (NOV, 6),
+        2019: (OCT, 28),
+        2020: (NOV, 14),
+        2021: (NOV, 4),
+        2022: (OCT, 24),
+        2023: (NOV, 12),
+        2024: (OCT, 31),
+    }
+
+
+class KenyaIslamicHolidays(_CustomIslamicHolidays):
+    EID_AL_ADHA_DATES = {
+        2014: (OCT, 6),
+        2015: (SEP, 24),
+        2016: (SEP, 12),
+        2017: (SEP, 1),
+        2018: (AUG, 21),
+        2019: (AUG, 12),
+        2020: (JUL, 31),
+        2021: (JUL, 20),
+        2022: (JUL, 11),
+        2023: (JUN, 28),
+        2024: (JUN, 17),
+    }
+
+    EID_AL_FITR_DATES = {
+        2014: (JUL, 29),
+        2015: (JUL, 18),
+        2016: (JUL, 7),
+        2017: (JUN, 26),
+        2018: (JUN, 15),
+        2019: (JUN, 5),
+        2020: (MAY, 25),
+        2021: (MAY, 14),
+        2022: (MAY, 3),
+        2023: (APR, 21),
+        2024: (APR, 10),
+    }
+
+
 class KenyaStaticHolidays:
+    """
+    References:
+        - https://new.kenyalaw.org/akn/ke/officialGazette/2015-11-24/129/eng@2015-11-24
+        - https://new.kenyalaw.org/akn/ke/officialGazette/2017-08-01/107/eng@2017-08-01
+        - https://new.kenyalaw.org/akn/ke/officialGazette/2017-10-19/156/eng@2017-10-19
+        - https://new.kenyalaw.org/akn/ke/officialGazette/2017-10-24/159/eng@2017-10-24
+        - https://new.kenyalaw.org/akn/ke/officialGazette/2017-11-23/174/eng@2017-11-23
+        - https://new.kenyalaw.org/akn/ke/officialGazette/gazette/2022-07-29/147/eng@2022-07-29
+        - https://new.kenyalaw.org/akn/ke/officialGazette/gazette/2022-09-08/182/eng@2022-09-08
+        - https://new.kenyalaw.org/akn/ke/officialGazette/gazette/2023-11-06/238/eng@2023-11-06
+        - https://new.kenyalaw.org/akn/ke/officialGazette/gazette/2024-05-08/61/eng@2024-05-08
+        - https://new.kenyalaw.org/akn/ke/officialGazette/2024-10-31/184/eng@2024-10-31
+    """
+
+    # Election Day.
+    election_day = tr("Election Day")
+
+    # Inauguration Day.
+    inauguration_day = tr("Inauguration Day")
+
+    # Day of Mourning for Queen Elizabeth II.
+    mourning_for_queen_elizabeth = tr("Day of Mourning for Queen Elizabeth II")
+
+    # National Tree Growing Day.
+    national_tree_growing_day = tr("National Tree Growing Day")
+
     special_public_holidays = {
-        2020: (FEB, 11, "President Moi Celebration of Life Day"),
+        # Visit of Pope Francis to Kenya.
+        2015: (NOV, 26, tr("Visit of Pope Francis to Kenya")),
+        2017: (
+            (AUG, 8, election_day),
+            (OCT, 25, election_day),
+            (OCT, 26, election_day),
+            (NOV, 28, inauguration_day),
+        ),
+        # President Moi Memorial Day.
+        2020: (FEB, 11, tr("President Moi Memorial Day")),
         2022: (
-            (APR, 29, "State Funeral for Former President Mwai Kibaki"),
-            (AUG, 9, "Election Day"),
-            (SEP, 10, "Day of Mourning for Queen Elizabeth II"),
-            (SEP, 11, "Day of Mourning for Queen Elizabeth II"),
-            (SEP, 12, "Day of Mourning for Queen Elizabeth II"),
-            (SEP, 13, "Inauguration Day"),
+            # State Funeral for Former President Mwai Kibaki.
+            (APR, 29, tr("State Funeral for Former President Mwai Kibaki")),
+            (AUG, 9, election_day),
+            (SEP, 10, mourning_for_queen_elizabeth),
+            (SEP, 11, mourning_for_queen_elizabeth),
+            (SEP, 12, mourning_for_queen_elizabeth),
+            (SEP, 13, inauguration_day),
+        ),
+        2023: (NOV, 13, national_tree_growing_day),
+        2024: (
+            (MAY, 10, national_tree_growing_day),
+            (NOV, 1, inauguration_day),
         ),
     }
diff --git a/holidays/locale/en_KE/LC_MESSAGES/KE.po b/holidays/locale/en_KE/LC_MESSAGES/KE.po
new file mode 100644
index 00000000..1d8cb8e7
--- /dev/null
+++ b/holidays/locale/en_KE/LC_MESSAGES/KE.po
@@ -0,0 +1,139 @@
+#  holidays
+#  --------
+#  A fast, efficient Python library for generating country, province and state
+#  specific sets of holidays on the fly. It aims to make determining whether a
+#  specific date is a holiday as fast and flexible as possible.
+#
+#  Authors: Vacanza Team and individual contributors (see AUTHORS file)
+#           dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
+#           ryanss <ryanssdev@icloud.com> (c) 2014-2017
+#  Website: https://github.com/vacanza/holidays
+#  License: MIT (see LICENSE file)
+#
+# Kenya holidays.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Holidays 0.68\n"
+"POT-Creation-Date: 2025-02-26 23:09+0200\n"
+"PO-Revision-Date: 2025-02-26 23:11+0200\n"
+"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
+"Language-Team: Holidays Localization Team\n"
+"Language: en_KE\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Lingva 5.0.5\n"
+"X-Source-Language: en_KE\n"
+"X-Generator: Poedit 3.5\n"
+
+#. %s (estimated).
+#, c-format
+msgid "%s (estimated)"
+msgstr ""
+
+#. %s (observed).
+#, c-format
+msgid "%s (observed)"
+msgstr ""
+
+#. %s (observed, estimated).
+#, c-format
+msgid "%s (observed, estimated)"
+msgstr ""
+
+#. New Year's Day.
+msgid "New Year's Day"
+msgstr ""
+
+#. Good Friday.
+msgid "Good Friday"
+msgstr ""
+
+#. Easter Monday.
+msgid "Easter Monday"
+msgstr ""
+
+#. Labor Day.
+msgid "Labour Day"
+msgstr ""
+
+#. Madaraka Day.
+msgid "Madaraka Day"
+msgstr ""
+
+#. Mazingira Day.
+msgid "Mazingira Day"
+msgstr ""
+
+#. Utamaduni Day.
+msgid "Utamaduni Day"
+msgstr ""
+
+#. Moi Day.
+msgid "Moi Day"
+msgstr ""
+
+#. Mashujaa Day.
+msgid "Mashujaa Day"
+msgstr ""
+
+#. Kenyatta Day.
+msgid "Kenyatta Day"
+msgstr ""
+
+#. Jamhuri Day.
+msgid "Jamhuri Day"
+msgstr ""
+
+#. Independence Day.
+msgid "Independence Day"
+msgstr ""
+
+#. Christmas Day.
+msgid "Christmas Day"
+msgstr ""
+
+#. Boxing Day.
+msgid "Boxing Day"
+msgstr ""
+
+#. Eid-al-Fitr.
+msgid "Idd-ul-Fitr"
+msgstr ""
+
+#. Diwali.
+msgid "Diwali"
+msgstr ""
+
+#. Eid-al-Adha.
+msgid "Idd-ul-Azha"
+msgstr ""
+
+#. Election Day.
+msgid "Election Day"
+msgstr ""
+
+#. Inauguration Day.
+msgid "Inauguration Day"
+msgstr ""
+
+#. Day of Mourning for Queen Elizabeth II.
+msgid "Day of Mourning for Queen Elizabeth II"
+msgstr ""
+
+#. National Tree Growing Day.
+msgid "National Tree Growing Day"
+msgstr ""
+
+#. Visit of Pope Francis to Kenya.
+msgid "Visit of Pope Francis to Kenya"
+msgstr ""
+
+#. President Moi Memorial Day.
+msgid "President Moi Memorial Day"
+msgstr ""
+
+#. State Funeral for Former President Mwai Kibaki.
+msgid "State Funeral for Former President Mwai Kibaki"
+msgstr ""
diff --git a/holidays/locale/en_US/LC_MESSAGES/KE.po b/holidays/locale/en_US/LC_MESSAGES/KE.po
new file mode 100644
index 00000000..95d8cd55
--- /dev/null
+++ b/holidays/locale/en_US/LC_MESSAGES/KE.po
@@ -0,0 +1,139 @@
+#  holidays
+#  --------
+#  A fast, efficient Python library for generating country, province and state
+#  specific sets of holidays on the fly. It aims to make determining whether a
+#  specific date is a holiday as fast and flexible as possible.
+#
+#  Authors: Vacanza Team and individual contributors (see AUTHORS file)
+#           dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
+#           ryanss <ryanssdev@icloud.com> (c) 2014-2017
+#  Website: https://github.com/vacanza/holidays
+#  License: MIT (see LICENSE file)
+#
+# Kenya holidays en_US localization.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Holidays 0.68\n"
+"POT-Creation-Date: 2025-02-26 23:09+0200\n"
+"PO-Revision-Date: 2025-02-27 00:21+0200\n"
+"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
+"Language-Team: Holidays Localization Team\n"
+"Language: en_US\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Lingva 5.0.5\n"
+"X-Source-Language: en_KE\n"
+"X-Generator: Poedit 3.5\n"
+
+#. %s (estimated).
+#, c-format
+msgid "%s (estimated)"
+msgstr "%s (estimated)"
+
+#. %s (observed).
+#, c-format
+msgid "%s (observed)"
+msgstr "%s (observed)"
+
+#. %s (observed, estimated).
+#, c-format
+msgid "%s (observed, estimated)"
+msgstr "%s (observed, estimated)"
+
+#. New Year's Day.
+msgid "New Year's Day"
+msgstr "New Year's Day"
+
+#. Good Friday.
+msgid "Good Friday"
+msgstr "Good Friday"
+
+#. Easter Monday.
+msgid "Easter Monday"
+msgstr "Easter Monday"
+
+#. Labor Day.
+msgid "Labour Day"
+msgstr "Labor Day"
+
+#. Madaraka Day.
+msgid "Madaraka Day"
+msgstr "Madaraka Day"
+
+#. Mazingira Day.
+msgid "Mazingira Day"
+msgstr "Mazingira Day"
+
+#. Utamaduni Day.
+msgid "Utamaduni Day"
+msgstr "Utamaduni Day"
+
+#. Moi Day.
+msgid "Moi Day"
+msgstr "Moi Day"
+
+#. Mashujaa Day.
+msgid "Mashujaa Day"
+msgstr "Mashujaa Day"
+
+#. Kenyatta Day.
+msgid "Kenyatta Day"
+msgstr "Kenyatta Day"
+
+#. Jamhuri Day.
+msgid "Jamhuri Day"
+msgstr "Jamhuri Day"
+
+#. Independence Day.
+msgid "Independence Day"
+msgstr "Independence Day"
+
+#. Christmas Day.
+msgid "Christmas Day"
+msgstr "Christmas Day"
+
+#. Boxing Day.
+msgid "Boxing Day"
+msgstr "Boxing Day"
+
+#. Eid-al-Fitr.
+msgid "Idd-ul-Fitr"
+msgstr "Eid-al-Fitr"
+
+#. Diwali.
+msgid "Diwali"
+msgstr "Diwali"
+
+#. Eid-al-Adha.
+msgid "Idd-ul-Azha"
+msgstr "Eid-al-Adha"
+
+#. Election Day.
+msgid "Election Day"
+msgstr "Election Day"
+
+#. Inauguration Day.
+msgid "Inauguration Day"
+msgstr "Inauguration Day"
+
+#. Day of Mourning for Queen Elizabeth II.
+msgid "Day of Mourning for Queen Elizabeth II"
+msgstr "Day of Mourning for Queen Elizabeth II"
+
+#. National Tree Growing Day.
+msgid "National Tree Growing Day"
+msgstr "National Tree Growing Day"
+
+#. Visit of Pope Francis to Kenya.
+msgid "Visit of Pope Francis to Kenya"
+msgstr "Visit of Pope Francis to Kenya"
+
+#. President Moi Memorial Day.
+msgid "President Moi Memorial Day"
+msgstr "President Moi Memorial Day"
+
+#. State Funeral for Former President Mwai Kibaki.
+msgid "State Funeral for Former President Mwai Kibaki"
+msgstr "State Funeral for Former President Mwai Kibaki"
diff --git a/holidays/locale/sw/LC_MESSAGES/KE.po b/holidays/locale/sw/LC_MESSAGES/KE.po
new file mode 100644
index 00000000..eb157943
--- /dev/null
+++ b/holidays/locale/sw/LC_MESSAGES/KE.po
@@ -0,0 +1,139 @@
+#  holidays
+#  --------
+#  A fast, efficient Python library for generating country, province and state
+#  specific sets of holidays on the fly. It aims to make determining whether a
+#  specific date is a holiday as fast and flexible as possible.
+#
+#  Authors: Vacanza Team and individual contributors (see AUTHORS file)
+#           dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
+#           ryanss <ryanssdev@icloud.com> (c) 2014-2017
+#  Website: https://github.com/vacanza/holidays
+#  License: MIT (see LICENSE file)
+#
+# Kenya holidays sw localization.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Holidays 0.68\n"
+"POT-Creation-Date: 2025-02-26 23:09+0200\n"
+"PO-Revision-Date: 2025-02-27 00:39+0200\n"
+"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
+"Language-Team: Holidays Localization Team\n"
+"Language: sw\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Lingva 5.0.5\n"
+"X-Source-Language: en_KE\n"
+"X-Generator: Poedit 3.5\n"
+
+#. %s (estimated).
+#, c-format
+msgid "%s (estimated)"
+msgstr "%s (inakadiriwa)"
+
+#. %s (observed).
+#, c-format
+msgid "%s (observed)"
+msgstr "%s (imezingatiwa)"
+
+#. %s (observed, estimated).
+#, c-format
+msgid "%s (observed, estimated)"
+msgstr "%s (inazingatiwa, inakadiriwa)"
+
+#. New Year's Day.
+msgid "New Year's Day"
+msgstr "Siku ya Mwaka Mpya"
+
+#. Good Friday.
+msgid "Good Friday"
+msgstr "Ijumaa Kuu"
+
+#. Easter Monday.
+msgid "Easter Monday"
+msgstr "Jumatatu ya Pasaka"
+
+#. Labor Day.
+msgid "Labour Day"
+msgstr "Siku ya Kazi"
+
+#. Madaraka Day.
+msgid "Madaraka Day"
+msgstr "Siku ya Madaraka"
+
+#. Mazingira Day.
+msgid "Mazingira Day"
+msgstr "Siku ya Mazingira"
+
+#. Utamaduni Day.
+msgid "Utamaduni Day"
+msgstr "Siku ya Utamaduni"
+
+#. Moi Day.
+msgid "Moi Day"
+msgstr "Siku ya Moi"
+
+#. Mashujaa Day.
+msgid "Mashujaa Day"
+msgstr "Siku ya Mashujaa"
+
+#. Kenyatta Day.
+msgid "Kenyatta Day"
+msgstr "Siku ya Kenyatta"
+
+#. Jamhuri Day.
+msgid "Jamhuri Day"
+msgstr "Siku ya Jamhuri"
+
+#. Independence Day.
+msgid "Independence Day"
+msgstr "Siku ya Uhuru"
+
+#. Christmas Day.
+msgid "Christmas Day"
+msgstr "Siku ya Krismasi"
+
+#. Boxing Day.
+msgid "Boxing Day"
+msgstr "Siku ya Ndondi"
+
+#. Eid-al-Fitr.
+msgid "Idd-ul-Fitr"
+msgstr "Sikukuu ya Idd-ul-Fitr"
+
+#. Diwali.
+msgid "Diwali"
+msgstr "Diwali"
+
+#. Eid-al-Adha.
+msgid "Idd-ul-Azha"
+msgstr "Sikukuu ya Idd-ul-Azha"
+
+#. Election Day.
+msgid "Election Day"
+msgstr "Siku ya Uchaguzi"
+
+#. Inauguration Day.
+msgid "Inauguration Day"
+msgstr "Siku ya Uzinduzi"
+
+#. Day of Mourning for Queen Elizabeth II.
+msgid "Day of Mourning for Queen Elizabeth II"
+msgstr "Siku ya Maombolezo kwa Malkia Elizabeth II"
+
+#. National Tree Growing Day.
+msgid "National Tree Growing Day"
+msgstr "Siku ya Kitaifa ya Kupanda Miti"
+
+#. Visit of Pope Francis to Kenya.
+msgid "Visit of Pope Francis to Kenya"
+msgstr "Ziara ya Papa Francis nchini Kenya"
+
+#. President Moi Memorial Day.
+msgid "President Moi Memorial Day"
+msgstr "Siku ya Kumbukumbu ya Rais Moi"
+
+#. State Funeral for Former President Mwai Kibaki.
+msgid "State Funeral for Former President Mwai Kibaki"
+msgstr "Mazishi ya Kiserikali ya Aliyekuwa Rais Mwai Kibaki"
diff --git a/scripts/l10n/generate_mo_files.py b/scripts/l10n/generate_mo_files.py
index 93ae1e6e..92eabc6c 100755
--- a/scripts/l10n/generate_mo_files.py
+++ b/scripts/l10n/generate_mo_files.py
@@ -23,11 +23,12 @@ class MOGenerator:
     @staticmethod
     def run():
         """Runs the .mo files generation process."""
-        for po_path in Path("holidays/locale").rglob("*.po"):
-            mo_path = po_path.with_suffix(".mo")
-            if mo_path.exists():
-                mo_path.unlink()
-            pofile(po_path).save_as_mofile(mo_path)
+        locale_path = Path("holidays/locale")
+
+        for mo_path in locale_path.rglob("*.mo"):
+            mo_path.unlink()
+        for po_path in locale_path.rglob("*.po"):
+            pofile(po_path).save_as_mofile(po_path.with_suffix(".mo"))
 
 
 if __name__ == "__main__":
diff --git a/scripts/l10n/generate_po_files.py b/scripts/l10n/generate_po_files.py
index a845a245..16e6064e 100755
--- a/scripts/l10n/generate_po_files.py
+++ b/scripts/l10n/generate_po_files.py
@@ -91,8 +91,10 @@ class POGenerator:
             pot_file = pofile(pot_file_path)
             pot_file.metadata.update(
                 {
+                    "Language": default_language,
                     "Language-Team": "Holidays Localization Team",
                     "PO-Revision-Date": pot_file.metadata["POT-Creation-Date"],
+                    "X-Source-Language": default_language,
                 }
             )
             pot_file.save()
@@ -102,9 +104,7 @@ class POGenerator:
             po_directory.mkdir(parents=True, exist_ok=True)
             po_file_path = po_directory / f"{entity_code}.po"
             if not po_file_path.exists():
-                po_file = pofile(pot_file_path)
-                po_file.metadata["Language"] = default_language
-                po_file.save(po_file_path)
+                pofile(pot_file_path).save(po_file_path)
 
             # Update all .po files.
             for po_file_path in locale_path.rglob(f"{entity_code}.po"):
diff --git a/snapshots/countries/KE_COMMON.json b/snapshots/countries/KE_COMMON.json
index 4ebebf77..b20f3a4b 100644
--- a/snapshots/countries/KE_COMMON.json
+++ b/snapshots/countries/KE_COMMON.json
@@ -1,232 +1,261 @@
 {
-    "1963-01-01": "New Year's Day",
-    "1963-04-12": "Good Friday",
-    "1963-04-15": "Easter Monday",
-    "1963-05-01": "Labour Day",
-    "1963-10-20": "Kenyatta Day",
-    "1963-10-21": "Kenyatta Day (observed)",
-    "1963-12-12": "Jamhuri Day",
-    "1963-12-25": "Christmas Day",
-    "1963-12-26": "Boxing Day",
     "1964-01-01": "New Year's Day",
+    "1964-02-14": "Eid-al-Fitr (estimated)",
     "1964-03-27": "Good Friday",
     "1964-03-30": "Easter Monday",
-    "1964-05-01": "Labour Day",
+    "1964-04-22": "Eid-al-Adha (estimated)",
+    "1964-05-01": "Labor Day",
     "1964-10-20": "Kenyatta Day",
-    "1964-12-12": "Jamhuri Day",
+    "1964-12-12": "Independence Day",
     "1964-12-25": "Christmas Day",
     "1964-12-26": "Boxing Day",
     "1965-01-01": "New Year's Day",
+    "1965-02-02": "Eid-al-Fitr (estimated)",
+    "1965-04-11": "Eid-al-Adha (estimated)",
     "1965-04-16": "Good Friday",
     "1965-04-19": "Easter Monday",
-    "1965-05-01": "Labour Day",
+    "1965-05-01": "Labor Day",
     "1965-10-20": "Kenyatta Day",
-    "1965-12-12": "Jamhuri Day",
-    "1965-12-13": "Jamhuri Day (observed)",
+    "1965-12-12": "Independence Day",
     "1965-12-25": "Christmas Day",
     "1965-12-26": "Boxing Day",
-    "1965-12-27": "Boxing Day (observed)",
     "1966-01-01": "New Year's Day",
+    "1966-01-22": "Eid-al-Fitr (estimated)",
+    "1966-04-01": "Eid-al-Adha (estimated)",
     "1966-04-08": "Good Friday",
     "1966-04-11": "Easter Monday",
-    "1966-05-01": "Labour Day",
-    "1966-05-02": "Labour Day (observed)",
+    "1966-05-01": "Labor Day",
     "1966-10-20": "Kenyatta Day",
-    "1966-12-12": "Jamhuri Day",
+    "1966-12-12": "Independence Day",
     "1966-12-25": "Christmas Day",
     "1966-12-26": "Boxing Day",
-    "1966-12-27": "Christmas Day (observed)",
     "1967-01-01": "New Year's Day",
-    "1967-01-02": "New Year's Day (observed)",
+    "1967-01-12": "Eid-al-Fitr (estimated)",
+    "1967-03-21": "Eid-al-Adha (estimated)",
     "1967-03-24": "Good Friday",
     "1967-03-27": "Easter Monday",
-    "1967-05-01": "Labour Day",
+    "1967-05-01": "Labor Day",
     "1967-10-20": "Kenyatta Day",
-    "1967-12-12": "Jamhuri Day",
+    "1967-12-12": "Independence Day",
     "1967-12-25": "Christmas Day",
     "1967-12-26": "Boxing Day",
-    "1968-01-01": "New Year's Day",
+    "1968-01-01": "Eid-al-Fitr (estimated); New Year's Day",
+    "1968-03-09": "Eid-al-Adha (estimated)",
     "1968-04-12": "Good Friday",
     "1968-04-15": "Easter Monday",
-    "1968-05-01": "Labour Day",
+    "1968-05-01": "Labor Day",
     "1968-10-20": "Kenyatta Day",
-    "1968-10-21": "Kenyatta Day (observed)",
-    "1968-12-12": "Jamhuri Day",
+    "1968-12-12": "Independence Day",
+    "1968-12-21": "Eid-al-Fitr (estimated)",
     "1968-12-25": "Christmas Day",
     "1968-12-26": "Boxing Day",
     "1969-01-01": "New Year's Day",
+    "1969-02-27": "Eid-al-Adha (estimated)",
     "1969-04-04": "Good Friday",
     "1969-04-07": "Easter Monday",
-    "1969-05-01": "Labour Day",
+    "1969-05-01": "Labor Day",
     "1969-10-20": "Kenyatta Day",
-    "1969-12-12": "Jamhuri Day",
+    "1969-12-10": "Eid-al-Fitr (estimated)",
+    "1969-12-12": "Independence Day",
     "1969-12-25": "Christmas Day",
     "1969-12-26": "Boxing Day",
     "1970-01-01": "New Year's Day",
+    "1970-02-16": "Eid-al-Adha (estimated)",
     "1970-03-27": "Good Friday",
     "1970-03-30": "Easter Monday",
-    "1970-05-01": "Labour Day",
+    "1970-05-01": "Labor Day",
     "1970-10-20": "Kenyatta Day",
-    "1970-12-12": "Jamhuri Day",
+    "1970-11-30": "Eid-al-Fitr (estimated)",
+    "1970-12-12": "Independence Day",
     "1970-12-25": "Christmas Day",
     "1970-12-26": "Boxing Day",
     "1971-01-01": "New Year's Day",
+    "1971-02-06": "Eid-al-Adha (estimated)",
     "1971-04-09": "Good Friday",
     "1971-04-12": "Easter Monday",
-    "1971-05-01": "Labour Day",
+    "1971-05-01": "Labor Day",
     "1971-10-20": "Kenyatta Day",
-    "1971-12-12": "Jamhuri Day",
-    "1971-12-13": "Jamhuri Day (observed)",
+    "1971-11-19": "Eid-al-Fitr (estimated)",
+    "1971-12-12": "Independence Day",
     "1971-12-25": "Christmas Day",
     "1971-12-26": "Boxing Day",
-    "1971-12-27": "Boxing Day (observed)",
     "1972-01-01": "New Year's Day",
+    "1972-01-26": "Eid-al-Adha (estimated)",
     "1972-03-31": "Good Friday",
     "1972-04-03": "Easter Monday",
-    "1972-05-01": "Labour Day",
+    "1972-05-01": "Labor Day",
     "1972-10-20": "Kenyatta Day",
-    "1972-12-12": "Jamhuri Day",
+    "1972-11-07": "Eid-al-Fitr (estimated)",
+    "1972-12-12": "Independence Day",
     "1972-12-25": "Christmas Day",
     "1972-12-26": "Boxing Day",
     "1973-01-01": "New Year's Day",
+    "1973-01-14": "Eid-al-Adha (estimated)",
     "1973-04-20": "Good Friday",
     "1973-04-23": "Easter Monday",
-    "1973-05-01": "Labour Day",
+    "1973-05-01": "Labor Day",
     "1973-10-20": "Kenyatta Day",
-    "1973-12-12": "Jamhuri Day",
+    "1973-10-27": "Eid-al-Fitr (estimated)",
+    "1973-12-12": "Independence Day",
     "1973-12-25": "Christmas Day",
     "1973-12-26": "Boxing Day",
     "1974-01-01": "New Year's Day",
+    "1974-01-03": "Eid-al-Adha (estimated)",
     "1974-04-12": "Good Friday",
     "1974-04-15": "Easter Monday",
-    "1974-05-01": "Labour Day",
+    "1974-05-01": "Labor Day",
+    "1974-10-16": "Eid-al-Fitr (estimated)",
     "1974-10-20": "Kenyatta Day",
-    "1974-10-21": "Kenyatta Day (observed)",
-    "1974-12-12": "Jamhuri Day",
+    "1974-12-12": "Independence Day",
+    "1974-12-24": "Eid-al-Adha (estimated)",
     "1974-12-25": "Christmas Day",
     "1974-12-26": "Boxing Day",
     "1975-01-01": "New Year's Day",
     "1975-03-28": "Good Friday",
     "1975-03-31": "Easter Monday",
-    "1975-05-01": "Labour Day",
+    "1975-05-01": "Labor Day",
+    "1975-10-06": "Eid-al-Fitr (estimated)",
     "1975-10-20": "Kenyatta Day",
-    "1975-12-12": "Jamhuri Day",
+    "1975-12-12": "Independence Day",
+    "1975-12-13": "Eid-al-Adha (estimated)",
     "1975-12-25": "Christmas Day",
     "1975-12-26": "Boxing Day",
     "1976-01-01": "New Year's Day",
     "1976-04-16": "Good Friday",
     "1976-04-19": "Easter Monday",
-    "1976-05-01": "Labour Day",
+    "1976-05-01": "Labor Day",
+    "1976-09-24": "Eid-al-Fitr (estimated)",
     "1976-10-20": "Kenyatta Day",
-    "1976-12-12": "Jamhuri Day",
-    "1976-12-13": "Jamhuri Day (observed)",
+    "1976-12-01": "Eid-al-Adha (estimated)",
+    "1976-12-12": "Independence Day",
     "1976-12-25": "Christmas Day",
     "1976-12-26": "Boxing Day",
-    "1976-12-27": "Boxing Day (observed)",
     "1977-01-01": "New Year's Day",
     "1977-04-08": "Good Friday",
     "1977-04-11": "Easter Monday",
-    "1977-05-01": "Labour Day",
-    "1977-05-02": "Labour Day (observed)",
+    "1977-05-01": "Labor Day",
+    "1977-09-14": "Eid-al-Fitr (estimated)",
     "1977-10-20": "Kenyatta Day",
-    "1977-12-12": "Jamhuri Day",
+    "1977-11-21": "Eid-al-Adha (estimated)",
+    "1977-12-12": "Independence Day",
     "1977-12-25": "Christmas Day",
     "1977-12-26": "Boxing Day",
-    "1977-12-27": "Christmas Day (observed)",
     "1978-01-01": "New Year's Day",
-    "1978-01-02": "New Year's Day (observed)",
     "1978-03-24": "Good Friday",
     "1978-03-27": "Easter Monday",
-    "1978-05-01": "Labour Day",
+    "1978-05-01": "Labor Day",
+    "1978-09-03": "Eid-al-Fitr (estimated)",
     "1978-10-20": "Kenyatta Day",
-    "1978-12-12": "Jamhuri Day",
+    "1978-11-10": "Eid-al-Adha (estimated)",
+    "1978-12-12": "Independence Day",
     "1978-12-25": "Christmas Day",
     "1978-12-26": "Boxing Day",
     "1979-01-01": "New Year's Day",
     "1979-04-13": "Good Friday",
     "1979-04-16": "Easter Monday",
-    "1979-05-01": "Labour Day",
+    "1979-05-01": "Labor Day",
+    "1979-08-23": "Eid-al-Fitr (estimated)",
     "1979-10-20": "Kenyatta Day",
-    "1979-12-12": "Jamhuri Day",
+    "1979-10-31": "Eid-al-Adha (estimated)",
+    "1979-12-12": "Independence Day",
     "1979-12-25": "Christmas Day",
     "1979-12-26": "Boxing Day",
     "1980-01-01": "New Year's Day",
     "1980-04-04": "Good Friday",
     "1980-04-07": "Easter Monday",
-    "1980-05-01": "Labour Day",
+    "1980-05-01": "Labor Day",
+    "1980-08-12": "Eid-al-Fitr (estimated)",
+    "1980-10-19": "Eid-al-Adha (estimated)",
     "1980-10-20": "Kenyatta Day",
-    "1980-12-12": "Jamhuri Day",
+    "1980-12-12": "Independence Day",
     "1980-12-25": "Christmas Day",
     "1980-12-26": "Boxing Day",
     "1981-01-01": "New Year's Day",
     "1981-04-17": "Good Friday",
     "1981-04-20": "Easter Monday",
-    "1981-05-01": "Labour Day",
+    "1981-05-01": "Labor Day",
+    "1981-08-01": "Eid-al-Fitr (estimated)",
+    "1981-10-08": "Eid-al-Adha (estimated)",
     "1981-10-20": "Kenyatta Day",
-    "1981-12-12": "Jamhuri Day",
+    "1981-12-12": "Independence Day",
     "1981-12-25": "Christmas Day",
     "1981-12-26": "Boxing Day",
     "1982-01-01": "New Year's Day",
     "1982-04-09": "Good Friday",
     "1982-04-12": "Easter Monday",
-    "1982-05-01": "Labour Day",
+    "1982-05-01": "Labor Day",
+    "1982-07-21": "Eid-al-Fitr (estimated)",
+    "1982-09-27": "Eid-al-Adha (estimated)",
     "1982-10-20": "Kenyatta Day",
-    "1982-12-12": "Jamhuri Day",
-    "1982-12-13": "Jamhuri Day (observed)",
+    "1982-12-12": "Independence Day",
     "1982-12-25": "Christmas Day",
     "1982-12-26": "Boxing Day",
-    "1982-12-27": "Boxing Day (observed)",
     "1983-01-01": "New Year's Day",
     "1983-04-01": "Good Friday",
     "1983-04-04": "Easter Monday",
-    "1983-05-01": "Labour Day",
-    "1983-05-02": "Labour Day (observed)",
+    "1983-05-01": "Labor Day",
+    "1983-07-11": "Eid-al-Fitr (estimated)",
+    "1983-09-17": "Eid-al-Adha (estimated)",
     "1983-10-20": "Kenyatta Day",
-    "1983-12-12": "Jamhuri Day",
+    "1983-12-12": "Independence Day",
     "1983-12-25": "Christmas Day",
     "1983-12-26": "Boxing Day",
-    "1983-12-27": "Christmas Day (observed)",
     "1984-01-01": "New Year's Day",
-    "1984-01-02": "New Year's Day (observed)",
     "1984-04-20": "Good Friday",
     "1984-04-23": "Easter Monday",
-    "1984-05-01": "Labour Day",
+    "1984-05-01": "Labor Day",
+    "1984-06-30": "Eid-al-Fitr (estimated)",
+    "1984-09-05": "Eid-al-Adha (estimated)",
     "1984-10-20": "Kenyatta Day",
-    "1984-12-12": "Jamhuri Day",
+    "1984-10-22": "Diwali",
+    "1984-12-12": "Independence Day",
     "1984-12-25": "Christmas Day",
     "1984-12-26": "Boxing Day",
     "1985-01-01": "New Year's Day",
     "1985-04-05": "Good Friday",
     "1985-04-08": "Easter Monday",
-    "1985-05-01": "Labour Day",
+    "1985-05-01": "Labor Day",
+    "1985-06-19": "Eid-al-Fitr (estimated)",
+    "1985-08-26": "Eid-al-Adha (estimated)",
     "1985-10-20": "Kenyatta Day",
     "1985-10-21": "Kenyatta Day (observed)",
-    "1985-12-12": "Jamhuri Day",
+    "1985-11-10": "Diwali",
+    "1985-12-12": "Independence Day",
     "1985-12-25": "Christmas Day",
     "1985-12-26": "Boxing Day",
     "1986-01-01": "New Year's Day",
     "1986-03-28": "Good Friday",
     "1986-03-31": "Easter Monday",
-    "1986-05-01": "Labour Day",
+    "1986-05-01": "Labor Day",
+    "1986-06-08": "Eid-al-Fitr (estimated)",
+    "1986-06-09": "Eid-al-Fitr (observed, estimated)",
+    "1986-08-15": "Eid-al-Adha (estimated)",
     "1986-10-20": "Kenyatta Day",
-    "1986-12-12": "Jamhuri Day",
+    "1986-10-31": "Diwali",
+    "1986-12-12": "Independence Day",
     "1986-12-25": "Christmas Day",
     "1986-12-26": "Boxing Day",
     "1987-01-01": "New Year's Day",
     "1987-04-17": "Good Friday",
     "1987-04-20": "Easter Monday",
-    "1987-05-01": "Labour Day",
+    "1987-05-01": "Labor Day",
+    "1987-05-28": "Eid-al-Fitr (estimated)",
+    "1987-08-04": "Eid-al-Adha (estimated)",
     "1987-10-20": "Kenyatta Day",
-    "1987-12-12": "Jamhuri Day",
+    "1987-11-19": "Diwali",
+    "1987-12-12": "Independence Day",
     "1987-12-25": "Christmas Day",
     "1987-12-26": "Boxing Day",
     "1988-01-01": "New Year's Day",
     "1988-04-01": "Good Friday",
     "1988-04-04": "Easter Monday",
-    "1988-05-01": "Labour Day",
-    "1988-05-02": "Labour Day (observed)",
+    "1988-05-01": "Labor Day",
+    "1988-05-02": "Labor Day (observed)",
+    "1988-05-16": "Eid-al-Fitr (estimated)",
+    "1988-07-23": "Eid-al-Adha (estimated)",
     "1988-10-20": "Kenyatta Day",
-    "1988-12-12": "Jamhuri Day",
+    "1988-11-07": "Diwali",
+    "1988-12-12": "Independence Day",
     "1988-12-25": "Christmas Day",
     "1988-12-26": "Boxing Day",
     "1988-12-27": "Christmas Day (observed)",
@@ -234,213 +263,301 @@
     "1989-01-02": "New Year's Day (observed)",
     "1989-03-24": "Good Friday",
     "1989-03-27": "Easter Monday",
-    "1989-05-01": "Labour Day",
+    "1989-05-01": "Labor Day",
+    "1989-05-06": "Eid-al-Fitr (estimated)",
+    "1989-07-13": "Eid-al-Adha (estimated)",
     "1989-10-20": "Kenyatta Day",
-    "1989-12-12": "Jamhuri Day",
+    "1989-10-27": "Diwali",
+    "1989-12-12": "Independence Day",
     "1989-12-25": "Christmas Day",
     "1989-12-26": "Boxing Day",
     "1990-01-01": "New Year's Day",
     "1990-04-13": "Good Friday",
     "1990-04-16": "Easter Monday",
-    "1990-05-01": "Labour Day",
+    "1990-04-26": "Eid-al-Fitr (estimated)",
+    "1990-05-01": "Labor Day",
+    "1990-07-02": "Eid-al-Adha (estimated)",
+    "1990-10-10": "Moi Day",
     "1990-10-20": "Kenyatta Day",
-    "1990-12-12": "Jamhuri Day",
+    "1990-11-15": "Diwali",
+    "1990-12-12": "Independence Day",
     "1990-12-25": "Christmas Day",
     "1990-12-26": "Boxing Day",
     "1991-01-01": "New Year's Day",
     "1991-03-29": "Good Friday",
     "1991-04-01": "Easter Monday",
-    "1991-05-01": "Labour Day",
+    "1991-04-15": "Eid-al-Fitr (estimated)",
+    "1991-05-01": "Labor Day",
+    "1991-06-22": "Eid-al-Adha (estimated)",
+    "1991-10-10": "Moi Day",
     "1991-10-20": "Kenyatta Day",
     "1991-10-21": "Kenyatta Day (observed)",
-    "1991-12-12": "Jamhuri Day",
+    "1991-11-04": "Diwali",
+    "1991-12-12": "Independence Day",
     "1991-12-25": "Christmas Day",
     "1991-12-26": "Boxing Day",
     "1992-01-01": "New Year's Day",
+    "1992-04-04": "Eid-al-Fitr (estimated)",
     "1992-04-17": "Good Friday",
     "1992-04-20": "Easter Monday",
-    "1992-05-01": "Labour Day",
+    "1992-05-01": "Labor Day",
+    "1992-06-11": "Eid-al-Adha (estimated)",
+    "1992-10-10": "Moi Day",
     "1992-10-20": "Kenyatta Day",
-    "1992-12-12": "Jamhuri Day",
+    "1992-10-24": "Diwali",
+    "1992-12-12": "Independence Day",
     "1992-12-25": "Christmas Day",
     "1992-12-26": "Boxing Day",
     "1993-01-01": "New Year's Day",
+    "1993-03-24": "Eid-al-Fitr (estimated)",
     "1993-04-09": "Good Friday",
     "1993-04-12": "Easter Monday",
-    "1993-05-01": "Labour Day",
+    "1993-05-01": "Labor Day",
+    "1993-05-31": "Eid-al-Adha (estimated)",
+    "1993-10-10": "Moi Day",
+    "1993-10-11": "Moi Day (observed)",
     "1993-10-20": "Kenyatta Day",
-    "1993-12-12": "Jamhuri Day",
-    "1993-12-13": "Jamhuri Day (observed)",
+    "1993-11-12": "Diwali",
+    "1993-12-12": "Independence Day",
+    "1993-12-13": "Independence Day (observed)",
     "1993-12-25": "Christmas Day",
     "1993-12-26": "Boxing Day",
     "1993-12-27": "Boxing Day (observed)",
     "1994-01-01": "New Year's Day",
+    "1994-03-13": "Eid-al-Fitr (estimated)",
+    "1994-03-14": "Eid-al-Fitr (observed, estimated)",
     "1994-04-01": "Good Friday",
     "1994-04-04": "Easter Monday",
-    "1994-05-01": "Labour Day",
-    "1994-05-02": "Labour Day (observed)",
+    "1994-05-01": "Labor Day",
+    "1994-05-02": "Labor Day (observed)",
+    "1994-05-20": "Eid-al-Adha (estimated)",
+    "1994-10-10": "Moi Day",
     "1994-10-20": "Kenyatta Day",
-    "1994-12-12": "Jamhuri Day",
+    "1994-11-01": "Diwali",
+    "1994-12-12": "Independence Day",
     "1994-12-25": "Christmas Day",
     "1994-12-26": "Boxing Day",
     "1994-12-27": "Christmas Day (observed)",
     "1995-01-01": "New Year's Day",
     "1995-01-02": "New Year's Day (observed)",
+    "1995-03-02": "Eid-al-Fitr (estimated)",
     "1995-04-14": "Good Friday",
     "1995-04-17": "Easter Monday",
-    "1995-05-01": "Labour Day",
+    "1995-05-01": "Labor Day",
+    "1995-05-09": "Eid-al-Adha (estimated)",
+    "1995-10-10": "Moi Day",
     "1995-10-20": "Kenyatta Day",
-    "1995-12-12": "Jamhuri Day",
+    "1995-11-20": "Diwali",
+    "1995-12-12": "Independence Day",
     "1995-12-25": "Christmas Day",
     "1995-12-26": "Boxing Day",
     "1996-01-01": "New Year's Day",
+    "1996-02-19": "Eid-al-Fitr (estimated)",
     "1996-04-05": "Good Friday",
     "1996-04-08": "Easter Monday",
-    "1996-05-01": "Labour Day",
+    "1996-04-27": "Eid-al-Adha (estimated)",
+    "1996-05-01": "Labor Day",
+    "1996-10-10": "Moi Day",
     "1996-10-20": "Kenyatta Day",
     "1996-10-21": "Kenyatta Day (observed)",
-    "1996-12-12": "Jamhuri Day",
+    "1996-11-09": "Diwali",
+    "1996-12-12": "Independence Day",
     "1996-12-25": "Christmas Day",
     "1996-12-26": "Boxing Day",
     "1997-01-01": "New Year's Day",
+    "1997-02-08": "Eid-al-Fitr (estimated)",
     "1997-03-28": "Good Friday",
     "1997-03-31": "Easter Monday",
-    "1997-05-01": "Labour Day",
+    "1997-04-17": "Eid-al-Adha (estimated)",
+    "1997-05-01": "Labor Day",
+    "1997-10-10": "Moi Day",
     "1997-10-20": "Kenyatta Day",
-    "1997-12-12": "Jamhuri Day",
+    "1997-10-29": "Diwali",
+    "1997-12-12": "Independence Day",
     "1997-12-25": "Christmas Day",
     "1997-12-26": "Boxing Day",
     "1998-01-01": "New Year's Day",
+    "1998-01-29": "Eid-al-Fitr (estimated)",
+    "1998-04-07": "Eid-al-Adha (estimated)",
     "1998-04-10": "Good Friday",
     "1998-04-13": "Easter Monday",
-    "1998-05-01": "Labour Day",
+    "1998-05-01": "Labor Day",
+    "1998-10-10": "Moi Day",
     "1998-10-20": "Kenyatta Day",
-    "1998-12-12": "Jamhuri Day",
+    "1998-11-17": "Diwali",
+    "1998-12-12": "Independence Day",
     "1998-12-25": "Christmas Day",
     "1998-12-26": "Boxing Day",
     "1999-01-01": "New Year's Day",
+    "1999-01-18": "Eid-al-Fitr (estimated)",
+    "1999-03-27": "Eid-al-Adha (estimated)",
     "1999-04-02": "Good Friday",
     "1999-04-05": "Easter Monday",
-    "1999-05-01": "Labour Day",
+    "1999-05-01": "Labor Day",
+    "1999-10-10": "Moi Day",
+    "1999-10-11": "Moi Day (observed)",
     "1999-10-20": "Kenyatta Day",
-    "1999-12-12": "Jamhuri Day",
-    "1999-12-13": "Jamhuri Day (observed)",
+    "1999-11-06": "Diwali",
+    "1999-12-12": "Independence Day",
+    "1999-12-13": "Independence Day (observed)",
     "1999-12-25": "Christmas Day",
     "1999-12-26": "Boxing Day",
     "1999-12-27": "Boxing Day (observed)",
     "2000-01-01": "New Year's Day",
+    "2000-01-08": "Eid-al-Fitr (estimated)",
+    "2000-03-16": "Eid-al-Adha (estimated)",
     "2000-04-21": "Good Friday",
     "2000-04-24": "Easter Monday",
-    "2000-05-01": "Labour Day",
+    "2000-05-01": "Labor Day",
+    "2000-10-10": "Moi Day",
     "2000-10-20": "Kenyatta Day",
-    "2000-12-12": "Jamhuri Day",
+    "2000-10-25": "Diwali",
+    "2000-12-12": "Independence Day",
     "2000-12-25": "Christmas Day",
     "2000-12-26": "Boxing Day",
+    "2000-12-27": "Eid-al-Fitr (estimated)",
     "2001-01-01": "New Year's Day",
+    "2001-03-05": "Eid-al-Adha (estimated)",
     "2001-04-13": "Good Friday",
     "2001-04-16": "Easter Monday",
-    "2001-05-01": "Labour Day",
+    "2001-05-01": "Labor Day",
+    "2001-10-10": "Moi Day",
     "2001-10-20": "Kenyatta Day",
-    "2001-12-12": "Jamhuri Day",
+    "2001-11-13": "Diwali",
+    "2001-12-12": "Independence Day",
+    "2001-12-16": "Eid-al-Fitr (estimated)",
+    "2001-12-17": "Eid-al-Fitr (observed, estimated)",
     "2001-12-25": "Christmas Day",
     "2001-12-26": "Boxing Day",
     "2002-01-01": "New Year's Day",
+    "2002-02-22": "Eid-al-Adha (estimated)",
     "2002-03-29": "Good Friday",
     "2002-04-01": "Easter Monday",
-    "2002-05-01": "Labour Day",
+    "2002-05-01": "Labor Day",
     "2002-10-10": "Moi Day",
     "2002-10-20": "Kenyatta Day",
     "2002-10-21": "Kenyatta Day (observed)",
-    "2002-12-12": "Jamhuri Day",
+    "2002-11-03": "Diwali",
+    "2002-12-05": "Eid-al-Fitr (estimated)",
+    "2002-12-12": "Independence Day",
     "2002-12-25": "Christmas Day",
     "2002-12-26": "Boxing Day",
     "2003-01-01": "New Year's Day",
+    "2003-02-11": "Eid-al-Adha (estimated)",
     "2003-04-18": "Good Friday",
     "2003-04-21": "Easter Monday",
-    "2003-05-01": "Labour Day",
+    "2003-05-01": "Labor Day",
     "2003-10-10": "Moi Day",
     "2003-10-20": "Kenyatta Day",
-    "2003-12-12": "Jamhuri Day",
+    "2003-10-23": "Diwali",
+    "2003-11-25": "Eid-al-Fitr (estimated)",
+    "2003-12-12": "Independence Day",
     "2003-12-25": "Christmas Day",
     "2003-12-26": "Boxing Day",
     "2004-01-01": "New Year's Day",
+    "2004-02-01": "Eid-al-Adha (estimated)",
     "2004-04-09": "Good Friday",
     "2004-04-12": "Easter Monday",
-    "2004-05-01": "Labour Day",
+    "2004-05-01": "Labor Day",
     "2004-10-10": "Moi Day",
     "2004-10-11": "Moi Day (observed)",
     "2004-10-20": "Kenyatta Day",
-    "2004-12-12": "Jamhuri Day",
-    "2004-12-13": "Jamhuri Day (observed)",
+    "2004-11-10": "Diwali",
+    "2004-11-14": "Eid-al-Fitr (estimated)",
+    "2004-11-15": "Eid-al-Fitr (observed, estimated)",
+    "2004-12-12": "Independence Day",
+    "2004-12-13": "Independence Day (observed)",
     "2004-12-25": "Christmas Day",
     "2004-12-26": "Boxing Day",
     "2004-12-27": "Boxing Day (observed)",
     "2005-01-01": "New Year's Day",
+    "2005-01-21": "Eid-al-Adha (estimated)",
     "2005-03-25": "Good Friday",
     "2005-03-28": "Easter Monday",
-    "2005-05-01": "Labour Day",
-    "2005-05-02": "Labour Day (observed)",
+    "2005-05-01": "Labor Day",
+    "2005-05-02": "Labor Day (observed)",
     "2005-10-10": "Moi Day",
     "2005-10-20": "Kenyatta Day",
-    "2005-12-12": "Jamhuri Day",
+    "2005-10-31": "Diwali",
+    "2005-11-03": "Eid-al-Fitr (estimated)",
+    "2005-12-12": "Independence Day",
     "2005-12-25": "Christmas Day",
     "2005-12-26": "Boxing Day",
     "2005-12-27": "Christmas Day (observed)",
     "2006-01-01": "New Year's Day",
     "2006-01-02": "New Year's Day (observed)",
+    "2006-01-10": "Eid-al-Adha (estimated)",
     "2006-04-14": "Good Friday",
     "2006-04-17": "Easter Monday",
-    "2006-05-01": "Labour Day",
+    "2006-05-01": "Labor Day",
     "2006-10-10": "Moi Day",
     "2006-10-20": "Kenyatta Day",
-    "2006-12-12": "Jamhuri Day",
+    "2006-10-23": "Eid-al-Fitr (estimated)",
+    "2006-11-19": "Diwali",
+    "2006-12-12": "Independence Day",
     "2006-12-25": "Christmas Day",
     "2006-12-26": "Boxing Day",
+    "2006-12-31": "Eid-al-Adha (estimated)",
     "2007-01-01": "New Year's Day",
     "2007-04-06": "Good Friday",
     "2007-04-09": "Easter Monday",
-    "2007-05-01": "Labour Day",
+    "2007-05-01": "Labor Day",
     "2007-10-10": "Moi Day",
+    "2007-10-13": "Eid-al-Fitr (estimated)",
     "2007-10-20": "Kenyatta Day",
-    "2007-12-12": "Jamhuri Day",
+    "2007-11-08": "Diwali",
+    "2007-12-12": "Independence Day",
+    "2007-12-20": "Eid-al-Adha (estimated)",
     "2007-12-25": "Christmas Day",
     "2007-12-26": "Boxing Day",
     "2008-01-01": "New Year's Day",
     "2008-03-21": "Good Friday",
     "2008-03-24": "Easter Monday",
-    "2008-05-01": "Labour Day",
+    "2008-05-01": "Labor Day",
+    "2008-10-01": "Eid-al-Fitr (estimated)",
     "2008-10-10": "Moi Day",
     "2008-10-20": "Kenyatta Day",
-    "2008-12-12": "Jamhuri Day",
+    "2008-10-27": "Diwali",
+    "2008-12-08": "Eid-al-Adha (estimated)",
+    "2008-12-12": "Independence Day",
     "2008-12-25": "Christmas Day",
     "2008-12-26": "Boxing Day",
     "2009-01-01": "New Year's Day",
     "2009-04-10": "Good Friday",
     "2009-04-13": "Easter Monday",
-    "2009-05-01": "Labour Day",
+    "2009-05-01": "Labor Day",
+    "2009-09-20": "Eid-al-Fitr (estimated)",
+    "2009-09-21": "Eid-al-Fitr (observed, estimated)",
     "2009-10-10": "Moi Day",
     "2009-10-20": "Kenyatta Day",
-    "2009-12-12": "Jamhuri Day",
+    "2009-11-15": "Diwali",
+    "2009-11-27": "Eid-al-Adha (estimated)",
+    "2009-12-12": "Independence Day",
     "2009-12-25": "Christmas Day",
     "2009-12-26": "Boxing Day",
     "2010-01-01": "New Year's Day",
     "2010-04-02": "Good Friday",
     "2010-04-05": "Easter Monday",
-    "2010-05-01": "Labour Day",
-    "2010-06-01": "Madaraka Day",
-    "2010-10-20": "Mashujaa Day",
-    "2010-12-12": "Jamhuri Day",
-    "2010-12-13": "Jamhuri Day (observed)",
+    "2010-05-01": "Labor Day",
+    "2010-09-10": "Eid-al-Fitr (estimated)",
+    "2010-10-20": "Kenyatta Day",
+    "2010-11-04": "Diwali",
+    "2010-11-16": "Eid-al-Adha (estimated)",
+    "2010-12-12": "Independence Day",
+    "2010-12-13": "Independence Day (observed)",
     "2010-12-25": "Christmas Day",
     "2010-12-26": "Boxing Day",
     "2010-12-27": "Boxing Day (observed)",
     "2011-01-01": "New Year's Day",
     "2011-04-22": "Good Friday",
     "2011-04-25": "Easter Monday",
-    "2011-05-01": "Labour Day",
-    "2011-05-02": "Labour Day (observed)",
+    "2011-05-01": "Labor Day",
+    "2011-05-02": "Labor Day (observed)",
     "2011-06-01": "Madaraka Day",
+    "2011-08-30": "Eid-al-Fitr (estimated)",
     "2011-10-20": "Mashujaa Day",
+    "2011-10-25": "Diwali",
+    "2011-11-06": "Eid-al-Adha (estimated)",
     "2011-12-12": "Jamhuri Day",
     "2011-12-25": "Christmas Day",
     "2011-12-26": "Boxing Day",
@@ -449,48 +566,65 @@
     "2012-01-02": "New Year's Day (observed)",
     "2012-04-06": "Good Friday",
     "2012-04-09": "Easter Monday",
-    "2012-05-01": "Labour Day",
+    "2012-05-01": "Labor Day",
     "2012-06-01": "Madaraka Day",
+    "2012-08-19": "Eid-al-Fitr (estimated)",
+    "2012-08-20": "Eid-al-Fitr (observed, estimated)",
     "2012-10-20": "Mashujaa Day",
+    "2012-10-26": "Eid-al-Adha (estimated)",
+    "2012-11-12": "Diwali",
     "2012-12-12": "Jamhuri Day",
     "2012-12-25": "Christmas Day",
     "2012-12-26": "Boxing Day",
     "2013-01-01": "New Year's Day",
     "2013-03-29": "Good Friday",
     "2013-04-01": "Easter Monday",
-    "2013-05-01": "Labour Day",
+    "2013-05-01": "Labor Day",
     "2013-06-01": "Madaraka Day",
+    "2013-08-08": "Eid-al-Fitr (estimated)",
+    "2013-10-15": "Eid-al-Adha (estimated)",
     "2013-10-20": "Mashujaa Day",
     "2013-10-21": "Mashujaa Day (observed)",
+    "2013-11-01": "Diwali",
     "2013-12-12": "Jamhuri Day",
     "2013-12-25": "Christmas Day",
     "2013-12-26": "Boxing Day",
     "2014-01-01": "New Year's Day",
     "2014-04-18": "Good Friday",
     "2014-04-21": "Easter Monday",
-    "2014-05-01": "Labour Day",
+    "2014-05-01": "Labor Day",
     "2014-06-01": "Madaraka Day",
     "2014-06-02": "Madaraka Day (observed)",
+    "2014-07-29": "Eid-al-Fitr",
+    "2014-10-06": "Eid-al-Adha",
     "2014-10-20": "Mashujaa Day",
+    "2014-10-22": "Diwali",
     "2014-12-12": "Jamhuri Day",
     "2014-12-25": "Christmas Day",
     "2014-12-26": "Boxing Day",
     "2015-01-01": "New Year's Day",
     "2015-04-03": "Good Friday",
     "2015-04-06": "Easter Monday",
-    "2015-05-01": "Labour Day",
+    "2015-05-01": "Labor Day",
     "2015-06-01": "Madaraka Day",
+    "2015-07-18": "Eid-al-Fitr",
+    "2015-09-24": "Eid-al-Adha",
     "2015-10-20": "Mashujaa Day",
+    "2015-11-10": "Diwali",
+    "2015-11-26": "Visit of Pope Francis to Kenya",
     "2015-12-12": "Jamhuri Day",
     "2015-12-25": "Christmas Day",
     "2015-12-26": "Boxing Day",
     "2016-01-01": "New Year's Day",
     "2016-03-25": "Good Friday",
     "2016-03-28": "Easter Monday",
-    "2016-05-01": "Labour Day",
-    "2016-05-02": "Labour Day (observed)",
+    "2016-05-01": "Labor Day",
+    "2016-05-02": "Labor Day (observed)",
     "2016-06-01": "Madaraka Day",
+    "2016-07-07": "Eid-al-Fitr",
+    "2016-09-12": "Eid-al-Adha",
     "2016-10-20": "Mashujaa Day",
+    "2016-10-29": "Diwali",
     "2016-12-12": "Jamhuri Day",
     "2016-12-25": "Christmas Day",
     "2016-12-26": "Boxing Day",
@@ -499,52 +633,71 @@
     "2017-01-02": "New Year's Day (observed)",
     "2017-04-14": "Good Friday",
     "2017-04-17": "Easter Monday",
-    "2017-05-01": "Labour Day",
+    "2017-05-01": "Labor Day",
     "2017-06-01": "Madaraka Day",
+    "2017-06-26": "Eid-al-Fitr",
+    "2017-08-08": "Election Day",
+    "2017-09-01": "Eid-al-Adha",
+    "2017-10-18": "Diwali",
     "2017-10-20": "Mashujaa Day",
+    "2017-10-25": "Election Day",
+    "2017-10-26": "Election Day",
+    "2017-11-28": "Inauguration Day",
     "2017-12-12": "Jamhuri Day",
     "2017-12-25": "Christmas Day",
     "2017-12-26": "Boxing Day",
     "2018-01-01": "New Year's Day",
     "2018-03-30": "Good Friday",
     "2018-04-02": "Easter Monday",
-    "2018-05-01": "Labour Day",
+    "2018-05-01": "Labor Day",
     "2018-06-01": "Madaraka Day",
+    "2018-06-15": "Eid-al-Fitr",
+    "2018-08-21": "Eid-al-Adha",
     "2018-10-10": "Moi Day",
     "2018-10-20": "Mashujaa Day",
+    "2018-11-06": "Diwali",
     "2018-12-12": "Jamhuri Day",
     "2018-12-25": "Christmas Day",
     "2018-12-26": "Boxing Day",
     "2019-01-01": "New Year's Day",
     "2019-04-19": "Good Friday",
     "2019-04-22": "Easter Monday",
-    "2019-05-01": "Labour Day",
+    "2019-05-01": "Labor Day",
     "2019-06-01": "Madaraka Day",
+    "2019-06-05": "Eid-al-Fitr",
+    "2019-08-12": "Eid-al-Adha",
     "2019-10-10": "Moi Day",
     "2019-10-20": "Mashujaa Day",
     "2019-10-21": "Mashujaa Day (observed)",
+    "2019-10-28": "Diwali",
     "2019-12-12": "Jamhuri Day",
     "2019-12-25": "Christmas Day",
     "2019-12-26": "Boxing Day",
     "2020-01-01": "New Year's Day",
-    "2020-02-11": "President Moi Celebration of Life Day",
+    "2020-02-11": "President Moi Memorial Day",
     "2020-04-10": "Good Friday",
     "2020-04-13": "Easter Monday",
-    "2020-05-01": "Labour Day",
+    "2020-05-01": "Labor Day",
+    "2020-05-25": "Eid-al-Fitr",
     "2020-06-01": "Madaraka Day",
+    "2020-07-31": "Eid-al-Adha",
     "2020-10-10": "Moi Day",
     "2020-10-20": "Mashujaa Day",
+    "2020-11-14": "Diwali",
     "2020-12-12": "Jamhuri Day",
     "2020-12-25": "Christmas Day",
     "2020-12-26": "Boxing Day",
     "2021-01-01": "New Year's Day",
     "2021-04-02": "Good Friday",
     "2021-04-05": "Easter Monday",
-    "2021-05-01": "Labour Day",
+    "2021-05-01": "Labor Day",
+    "2021-05-14": "Eid-al-Fitr",
     "2021-06-01": "Madaraka Day",
+    "2021-07-20": "Eid-al-Adha",
     "2021-10-10": "Utamaduni Day",
     "2021-10-11": "Utamaduni Day (observed)",
     "2021-10-20": "Mashujaa Day",
+    "2021-11-04": "Diwali",
     "2021-12-12": "Jamhuri Day",
     "2021-12-13": "Jamhuri Day (observed)",
     "2021-12-25": "Christmas Day",
@@ -554,9 +707,11 @@
     "2022-04-15": "Good Friday",
     "2022-04-18": "Easter Monday",
     "2022-04-29": "State Funeral for Former President Mwai Kibaki",
-    "2022-05-01": "Labour Day",
-    "2022-05-02": "Labour Day (observed)",
+    "2022-05-01": "Labor Day",
+    "2022-05-02": "Labor Day (observed)",
+    "2022-05-03": "Eid-al-Fitr",
     "2022-06-01": "Madaraka Day",
+    "2022-07-11": "Eid-al-Adha",
     "2022-08-09": "Election Day",
     "2022-09-10": "Day of Mourning for Queen Elizabeth II",
     "2022-09-11": "Day of Mourning for Queen Elizabeth II",
@@ -564,6 +719,7 @@
     "2022-09-13": "Inauguration Day",
     "2022-10-10": "Utamaduni Day",
     "2022-10-20": "Mashujaa Day",
+    "2022-10-24": "Diwali",
     "2022-12-12": "Jamhuri Day",
     "2022-12-25": "Christmas Day",
     "2022-12-26": "Boxing Day",
@@ -572,243 +728,316 @@
     "2023-01-02": "New Year's Day (observed)",
     "2023-04-07": "Good Friday",
     "2023-04-10": "Easter Monday",
-    "2023-05-01": "Labour Day",
+    "2023-04-21": "Eid-al-Fitr",
+    "2023-05-01": "Labor Day",
     "2023-06-01": "Madaraka Day",
+    "2023-06-28": "Eid-al-Adha",
     "2023-10-10": "Utamaduni Day",
     "2023-10-20": "Mashujaa Day",
+    "2023-11-12": "Diwali",
+    "2023-11-13": "National Tree Growing Day",
     "2023-12-12": "Jamhuri Day",
     "2023-12-25": "Christmas Day",
     "2023-12-26": "Boxing Day",
     "2024-01-01": "New Year's Day",
     "2024-03-29": "Good Friday",
     "2024-04-01": "Easter Monday",
-    "2024-05-01": "Labour Day",
+    "2024-04-10": "Eid-al-Fitr",
+    "2024-05-01": "Labor Day",
+    "2024-05-10": "National Tree Growing Day",
     "2024-06-01": "Madaraka Day",
+    "2024-06-17": "Eid-al-Adha",
     "2024-10-10": "Utamaduni Day",
     "2024-10-20": "Mashujaa Day",
     "2024-10-21": "Mashujaa Day (observed)",
+    "2024-10-31": "Diwali",
+    "2024-11-01": "Inauguration Day",
     "2024-12-12": "Jamhuri Day",
     "2024-12-25": "Christmas Day",
     "2024-12-26": "Boxing Day",
     "2025-01-01": "New Year's Day",
+    "2025-03-30": "Eid-al-Fitr (estimated)",
+    "2025-03-31": "Eid-al-Fitr (observed, estimated)",
     "2025-04-18": "Good Friday",
     "2025-04-21": "Easter Monday",
-    "2025-05-01": "Labour Day",
+    "2025-05-01": "Labor Day",
     "2025-06-01": "Madaraka Day",
     "2025-06-02": "Madaraka Day (observed)",
-    "2025-10-10": "Utamaduni Day",
+    "2025-06-06": "Eid-al-Adha (estimated)",
+    "2025-10-10": "Mazingira Day",
     "2025-10-20": "Mashujaa Day",
+    "2025-11-18": "Diwali",
     "2025-12-12": "Jamhuri Day",
     "2025-12-25": "Christmas Day",
     "2025-12-26": "Boxing Day",
     "2026-01-01": "New Year's Day",
+    "2026-03-20": "Eid-al-Fitr (estimated)",
     "2026-04-03": "Good Friday",
     "2026-04-06": "Easter Monday",
-    "2026-05-01": "Labour Day",
+    "2026-05-01": "Labor Day",
+    "2026-05-27": "Eid-al-Adha (estimated)",
     "2026-06-01": "Madaraka Day",
-    "2026-10-10": "Utamaduni Day",
+    "2026-10-10": "Mazingira Day",
     "2026-10-20": "Mashujaa Day",
+    "2026-11-07": "Diwali",
     "2026-12-12": "Jamhuri Day",
     "2026-12-25": "Christmas Day",
     "2026-12-26": "Boxing Day",
     "2027-01-01": "New Year's Day",
+    "2027-03-09": "Eid-al-Fitr (estimated)",
     "2027-03-26": "Good Friday",
     "2027-03-29": "Easter Monday",
-    "2027-05-01": "Labour Day",
+    "2027-05-01": "Labor Day",
+    "2027-05-16": "Eid-al-Adha (estimated)",
     "2027-06-01": "Madaraka Day",
-    "2027-10-10": "Utamaduni Day",
-    "2027-10-11": "Utamaduni Day (observed)",
+    "2027-10-10": "Mazingira Day",
+    "2027-10-11": "Mazingira Day (observed)",
     "2027-10-20": "Mashujaa Day",
+    "2027-10-27": "Diwali",
     "2027-12-12": "Jamhuri Day",
     "2027-12-13": "Jamhuri Day (observed)",
     "2027-12-25": "Christmas Day",
     "2027-12-26": "Boxing Day",
     "2027-12-27": "Boxing Day (observed)",
     "2028-01-01": "New Year's Day",
+    "2028-02-26": "Eid-al-Fitr (estimated)",
     "2028-04-14": "Good Friday",
     "2028-04-17": "Easter Monday",
-    "2028-05-01": "Labour Day",
+    "2028-05-01": "Labor Day",
+    "2028-05-05": "Eid-al-Adha (estimated)",
     "2028-06-01": "Madaraka Day",
-    "2028-10-10": "Utamaduni Day",
+    "2028-10-10": "Mazingira Day",
     "2028-10-20": "Mashujaa Day",
+    "2028-11-14": "Diwali",
     "2028-12-12": "Jamhuri Day",
     "2028-12-25": "Christmas Day",
     "2028-12-26": "Boxing Day",
     "2029-01-01": "New Year's Day",
+    "2029-02-14": "Eid-al-Fitr (estimated)",
     "2029-03-30": "Good Friday",
     "2029-04-02": "Easter Monday",
-    "2029-05-01": "Labour Day",
+    "2029-04-24": "Eid-al-Adha (estimated)",
+    "2029-05-01": "Labor Day",
     "2029-06-01": "Madaraka Day",
-    "2029-10-10": "Utamaduni Day",
+    "2029-10-10": "Mazingira Day",
     "2029-10-20": "Mashujaa Day",
+    "2029-11-04": "Diwali",
     "2029-12-12": "Jamhuri Day",
     "2029-12-25": "Christmas Day",
     "2029-12-26": "Boxing Day",
     "2030-01-01": "New Year's Day",
+    "2030-02-04": "Eid-al-Fitr (estimated)",
+    "2030-04-13": "Eid-al-Adha (estimated)",
     "2030-04-19": "Good Friday",
     "2030-04-22": "Easter Monday",
-    "2030-05-01": "Labour Day",
+    "2030-05-01": "Labor Day",
     "2030-06-01": "Madaraka Day",
-    "2030-10-10": "Utamaduni Day",
+    "2030-10-10": "Mazingira Day",
     "2030-10-20": "Mashujaa Day",
     "2030-10-21": "Mashujaa Day (observed)",
+    "2030-10-25": "Diwali",
     "2030-12-12": "Jamhuri Day",
     "2030-12-25": "Christmas Day",
     "2030-12-26": "Boxing Day",
     "2031-01-01": "New Year's Day",
+    "2031-01-24": "Eid-al-Fitr (estimated)",
+    "2031-04-02": "Eid-al-Adha (estimated)",
     "2031-04-11": "Good Friday",
     "2031-04-14": "Easter Monday",
-    "2031-05-01": "Labour Day",
+    "2031-05-01": "Labor Day",
     "2031-06-01": "Madaraka Day",
     "2031-06-02": "Madaraka Day (observed)",
-    "2031-10-10": "Utamaduni Day",
+    "2031-10-10": "Mazingira Day",
     "2031-10-20": "Mashujaa Day",
+    "2031-11-13": "Diwali",
     "2031-12-12": "Jamhuri Day",
     "2031-12-25": "Christmas Day",
     "2031-12-26": "Boxing Day",
     "2032-01-01": "New Year's Day",
+    "2032-01-14": "Eid-al-Fitr (estimated)",
+    "2032-03-22": "Eid-al-Adha (estimated)",
     "2032-03-26": "Good Friday",
     "2032-03-29": "Easter Monday",
-    "2032-05-01": "Labour Day",
+    "2032-05-01": "Labor Day",
     "2032-06-01": "Madaraka Day",
-    "2032-10-10": "Utamaduni Day",
-    "2032-10-11": "Utamaduni Day (observed)",
+    "2032-10-10": "Mazingira Day",
+    "2032-10-11": "Mazingira Day (observed)",
     "2032-10-20": "Mashujaa Day",
+    "2032-11-01": "Diwali",
     "2032-12-12": "Jamhuri Day",
     "2032-12-13": "Jamhuri Day (observed)",
     "2032-12-25": "Christmas Day",
     "2032-12-26": "Boxing Day",
     "2032-12-27": "Boxing Day (observed)",
     "2033-01-01": "New Year's Day",
+    "2033-01-02": "Eid-al-Fitr (estimated)",
+    "2033-01-03": "Eid-al-Fitr (observed, estimated)",
+    "2033-03-11": "Eid-al-Adha (estimated)",
     "2033-04-15": "Good Friday",
     "2033-04-18": "Easter Monday",
-    "2033-05-01": "Labour Day",
-    "2033-05-02": "Labour Day (observed)",
+    "2033-05-01": "Labor Day",
+    "2033-05-02": "Labor Day (observed)",
     "2033-06-01": "Madaraka Day",
-    "2033-10-10": "Utamaduni Day",
+    "2033-10-10": "Mazingira Day",
     "2033-10-20": "Mashujaa Day",
+    "2033-10-21": "Diwali",
     "2033-12-12": "Jamhuri Day",
+    "2033-12-23": "Eid-al-Fitr (estimated)",
     "2033-12-25": "Christmas Day",
     "2033-12-26": "Boxing Day",
     "2033-12-27": "Christmas Day (observed)",
     "2034-01-01": "New Year's Day",
     "2034-01-02": "New Year's Day (observed)",
+    "2034-03-01": "Eid-al-Adha (estimated)",
     "2034-04-07": "Good Friday",
     "2034-04-10": "Easter Monday",
-    "2034-05-01": "Labour Day",
+    "2034-05-01": "Labor Day",
     "2034-06-01": "Madaraka Day",
-    "2034-10-10": "Utamaduni Day",
+    "2034-10-10": "Mazingira Day",
     "2034-10-20": "Mashujaa Day",
-    "2034-12-12": "Jamhuri Day",
+    "2034-11-09": "Diwali",
+    "2034-12-12": "Eid-al-Fitr (estimated); Jamhuri Day",
     "2034-12-25": "Christmas Day",
     "2034-12-26": "Boxing Day",
     "2035-01-01": "New Year's Day",
+    "2035-02-18": "Eid-al-Adha (estimated)",
     "2035-03-23": "Good Friday",
     "2035-03-26": "Easter Monday",
-    "2035-05-01": "Labour Day",
+    "2035-05-01": "Labor Day",
     "2035-06-01": "Madaraka Day",
-    "2035-10-10": "Utamaduni Day",
+    "2035-10-10": "Mazingira Day",
     "2035-10-20": "Mashujaa Day",
+    "2035-10-29": "Diwali",
+    "2035-12-01": "Eid-al-Fitr (estimated)",
     "2035-12-12": "Jamhuri Day",
     "2035-12-25": "Christmas Day",
     "2035-12-26": "Boxing Day",
     "2036-01-01": "New Year's Day",
+    "2036-02-07": "Eid-al-Adha (estimated)",
     "2036-04-11": "Good Friday",
     "2036-04-14": "Easter Monday",
-    "2036-05-01": "Labour Day",
+    "2036-05-01": "Labor Day",
     "2036-06-01": "Madaraka Day",
     "2036-06-02": "Madaraka Day (observed)",
-    "2036-10-10": "Utamaduni Day",
+    "2036-10-10": "Mazingira Day",
     "2036-10-20": "Mashujaa Day",
+    "2036-11-16": "Diwali",
+    "2036-11-19": "Eid-al-Fitr (estimated)",
     "2036-12-12": "Jamhuri Day",
     "2036-12-25": "Christmas Day",
     "2036-12-26": "Boxing Day",
     "2037-01-01": "New Year's Day",
+    "2037-01-26": "Eid-al-Adha (estimated)",
     "2037-04-03": "Good Friday",
     "2037-04-06": "Easter Monday",
-    "2037-05-01": "Labour Day",
+    "2037-05-01": "Labor Day",
     "2037-06-01": "Madaraka Day",
-    "2037-10-10": "Utamaduni Day",
+    "2037-10-10": "Mazingira Day",
     "2037-10-20": "Mashujaa Day",
+    "2037-11-05": "Diwali",
+    "2037-11-08": "Eid-al-Fitr (estimated)",
+    "2037-11-09": "Eid-al-Fitr (observed, estimated)",
     "2037-12-12": "Jamhuri Day",
     "2037-12-25": "Christmas Day",
     "2037-12-26": "Boxing Day",
     "2038-01-01": "New Year's Day",
+    "2038-01-16": "Eid-al-Adha (estimated)",
     "2038-04-23": "Good Friday",
     "2038-04-26": "Easter Monday",
-    "2038-05-01": "Labour Day",
+    "2038-05-01": "Labor Day",
     "2038-06-01": "Madaraka Day",
-    "2038-10-10": "Utamaduni Day",
-    "2038-10-11": "Utamaduni Day (observed)",
+    "2038-10-10": "Mazingira Day",
+    "2038-10-11": "Mazingira Day (observed)",
     "2038-10-20": "Mashujaa Day",
+    "2038-10-26": "Diwali",
+    "2038-10-29": "Eid-al-Fitr (estimated)",
     "2038-12-12": "Jamhuri Day",
     "2038-12-13": "Jamhuri Day (observed)",
     "2038-12-25": "Christmas Day",
     "2038-12-26": "Boxing Day",
     "2038-12-27": "Boxing Day (observed)",
     "2039-01-01": "New Year's Day",
+    "2039-01-05": "Eid-al-Adha (estimated)",
     "2039-04-08": "Good Friday",
     "2039-04-11": "Easter Monday",
-    "2039-05-01": "Labour Day",
-    "2039-05-02": "Labour Day (observed)",
+    "2039-05-01": "Labor Day",
+    "2039-05-02": "Labor Day (observed)",
     "2039-06-01": "Madaraka Day",
-    "2039-10-10": "Utamaduni Day",
+    "2039-10-10": "Mazingira Day",
+    "2039-10-19": "Eid-al-Fitr (estimated)",
     "2039-10-20": "Mashujaa Day",
+    "2039-11-14": "Diwali",
     "2039-12-12": "Jamhuri Day",
     "2039-12-25": "Christmas Day",
-    "2039-12-26": "Boxing Day",
+    "2039-12-26": "Boxing Day; Eid-al-Adha (estimated)",
     "2039-12-27": "Christmas Day (observed)",
     "2040-01-01": "New Year's Day",
     "2040-01-02": "New Year's Day (observed)",
     "2040-03-30": "Good Friday",
     "2040-04-02": "Easter Monday",
-    "2040-05-01": "Labour Day",
+    "2040-05-01": "Labor Day",
     "2040-06-01": "Madaraka Day",
-    "2040-10-10": "Utamaduni Day",
+    "2040-10-07": "Eid-al-Fitr (estimated)",
+    "2040-10-08": "Eid-al-Fitr (observed, estimated)",
+    "2040-10-10": "Mazingira Day",
     "2040-10-20": "Mashujaa Day",
+    "2040-11-03": "Diwali",
     "2040-12-12": "Jamhuri Day",
+    "2040-12-14": "Eid-al-Adha (estimated)",
     "2040-12-25": "Christmas Day",
     "2040-12-26": "Boxing Day",
     "2041-01-01": "New Year's Day",
     "2041-04-19": "Good Friday",
     "2041-04-22": "Easter Monday",
-    "2041-05-01": "Labour Day",
+    "2041-05-01": "Labor Day",
     "2041-06-01": "Madaraka Day",
-    "2041-10-10": "Utamaduni Day",
+    "2041-09-26": "Eid-al-Fitr (estimated)",
+    "2041-10-10": "Mazingira Day",
     "2041-10-20": "Mashujaa Day",
     "2041-10-21": "Mashujaa Day (observed)",
+    "2041-10-23": "Diwali",
+    "2041-12-04": "Eid-al-Adha (estimated)",
     "2041-12-12": "Jamhuri Day",
     "2041-12-25": "Christmas Day",
     "2041-12-26": "Boxing Day",
     "2042-01-01": "New Year's Day",
     "2042-04-04": "Good Friday",
     "2042-04-07": "Easter Monday",
-    "2042-05-01": "Labour Day",
+    "2042-05-01": "Labor Day",
     "2042-06-01": "Madaraka Day",
     "2042-06-02": "Madaraka Day (observed)",
-    "2042-10-10": "Utamaduni Day",
+    "2042-09-15": "Eid-al-Fitr (estimated)",
+    "2042-10-10": "Mazingira Day",
     "2042-10-20": "Mashujaa Day",
+    "2042-11-11": "Diwali",
+    "2042-11-23": "Eid-al-Adha (estimated)",
     "2042-12-12": "Jamhuri Day",
     "2042-12-25": "Christmas Day",
     "2042-12-26": "Boxing Day",
     "2043-01-01": "New Year's Day",
     "2043-03-27": "Good Friday",
     "2043-03-30": "Easter Monday",
-    "2043-05-01": "Labour Day",
+    "2043-05-01": "Labor Day",
     "2043-06-01": "Madaraka Day",
-    "2043-10-10": "Utamaduni Day",
+    "2043-09-04": "Eid-al-Fitr (estimated)",
+    "2043-10-10": "Mazingira Day",
     "2043-10-20": "Mashujaa Day",
+    "2043-10-31": "Diwali",
+    "2043-11-12": "Eid-al-Adha (estimated)",
     "2043-12-12": "Jamhuri Day",
     "2043-12-25": "Christmas Day",
     "2043-12-26": "Boxing Day",
     "2044-01-01": "New Year's Day",
     "2044-04-15": "Good Friday",
     "2044-04-18": "Easter Monday",
-    "2044-05-01": "Labour Day",
-    "2044-05-02": "Labour Day (observed)",
+    "2044-05-01": "Labor Day",
+    "2044-05-02": "Labor Day (observed)",
     "2044-06-01": "Madaraka Day",
-    "2044-10-10": "Utamaduni Day",
+    "2044-08-24": "Eid-al-Fitr (estimated)",
+    "2044-10-10": "Mazingira Day",
     "2044-10-20": "Mashujaa Day",
+    "2044-10-31": "Eid-al-Adha (estimated)",
+    "2044-11-17": "Diwali",
     "2044-12-12": "Jamhuri Day",
     "2044-12-25": "Christmas Day",
     "2044-12-26": "Boxing Day",
@@ -817,52 +1046,67 @@
     "2045-01-02": "New Year's Day (observed)",
     "2045-04-07": "Good Friday",
     "2045-04-10": "Easter Monday",
-    "2045-05-01": "Labour Day",
+    "2045-05-01": "Labor Day",
     "2045-06-01": "Madaraka Day",
-    "2045-10-10": "Utamaduni Day",
+    "2045-08-14": "Eid-al-Fitr (estimated)",
+    "2045-10-10": "Mazingira Day",
     "2045-10-20": "Mashujaa Day",
+    "2045-10-21": "Eid-al-Adha (estimated)",
+    "2045-11-07": "Diwali",
     "2045-12-12": "Jamhuri Day",
     "2045-12-25": "Christmas Day",
     "2045-12-26": "Boxing Day",
     "2046-01-01": "New Year's Day",
     "2046-03-23": "Good Friday",
     "2046-03-26": "Easter Monday",
-    "2046-05-01": "Labour Day",
+    "2046-05-01": "Labor Day",
     "2046-06-01": "Madaraka Day",
-    "2046-10-10": "Utamaduni Day",
+    "2046-08-03": "Eid-al-Fitr (estimated)",
+    "2046-10-10": "Eid-al-Adha (estimated); Mazingira Day",
     "2046-10-20": "Mashujaa Day",
+    "2046-10-27": "Diwali",
     "2046-12-12": "Jamhuri Day",
     "2046-12-25": "Christmas Day",
     "2046-12-26": "Boxing Day",
     "2047-01-01": "New Year's Day",
     "2047-04-12": "Good Friday",
     "2047-04-15": "Easter Monday",
-    "2047-05-01": "Labour Day",
+    "2047-05-01": "Labor Day",
     "2047-06-01": "Madaraka Day",
-    "2047-10-10": "Utamaduni Day",
+    "2047-07-24": "Eid-al-Fitr (estimated)",
+    "2047-09-30": "Eid-al-Adha (estimated)",
+    "2047-10-10": "Mazingira Day",
     "2047-10-20": "Mashujaa Day",
     "2047-10-21": "Mashujaa Day (observed)",
+    "2047-11-15": "Diwali",
     "2047-12-12": "Jamhuri Day",
     "2047-12-25": "Christmas Day",
     "2047-12-26": "Boxing Day",
     "2048-01-01": "New Year's Day",
     "2048-04-03": "Good Friday",
     "2048-04-06": "Easter Monday",
-    "2048-05-01": "Labour Day",
+    "2048-05-01": "Labor Day",
     "2048-06-01": "Madaraka Day",
-    "2048-10-10": "Utamaduni Day",
+    "2048-07-12": "Eid-al-Fitr (estimated)",
+    "2048-07-13": "Eid-al-Fitr (observed, estimated)",
+    "2048-09-19": "Eid-al-Adha (estimated)",
+    "2048-10-10": "Mazingira Day",
     "2048-10-20": "Mashujaa Day",
+    "2048-11-04": "Diwali",
     "2048-12-12": "Jamhuri Day",
     "2048-12-25": "Christmas Day",
     "2048-12-26": "Boxing Day",
     "2049-01-01": "New Year's Day",
     "2049-04-16": "Good Friday",
     "2049-04-19": "Easter Monday",
-    "2049-05-01": "Labour Day",
+    "2049-05-01": "Labor Day",
     "2049-06-01": "Madaraka Day",
-    "2049-10-10": "Utamaduni Day",
-    "2049-10-11": "Utamaduni Day (observed)",
+    "2049-07-01": "Eid-al-Fitr (estimated)",
+    "2049-09-08": "Eid-al-Adha (estimated)",
+    "2049-10-10": "Mazingira Day",
+    "2049-10-11": "Mazingira Day (observed)",
     "2049-10-20": "Mashujaa Day",
+    "2049-10-25": "Diwali",
     "2049-12-12": "Jamhuri Day",
     "2049-12-13": "Jamhuri Day (observed)",
     "2049-12-25": "Christmas Day",
@@ -871,11 +1115,14 @@
     "2050-01-01": "New Year's Day",
     "2050-04-08": "Good Friday",
     "2050-04-11": "Easter Monday",
-    "2050-05-01": "Labour Day",
-    "2050-05-02": "Labour Day (observed)",
+    "2050-05-01": "Labor Day",
+    "2050-05-02": "Labor Day (observed)",
     "2050-06-01": "Madaraka Day",
-    "2050-10-10": "Utamaduni Day",
+    "2050-06-20": "Eid-al-Fitr (estimated)",
+    "2050-08-28": "Eid-al-Adha (estimated)",
+    "2050-10-10": "Mazingira Day",
     "2050-10-20": "Mashujaa Day",
+    "2050-11-12": "Diwali",
     "2050-12-12": "Jamhuri Day",
     "2050-12-25": "Christmas Day",
     "2050-12-26": "Boxing Day",


Test patch:
diff --git a/tests/countries/test_kenya.py b/tests/countries/test_kenya.py
index f0a7d750..083bd18a 100644
--- a/tests/countries/test_kenya.py
+++ b/tests/countries/test_kenya.py
@@ -12,6 +12,7 @@
 
 from unittest import TestCase
 
+from holidays.constants import HINDU, ISLAMIC
 from holidays.countries.kenya import Kenya, KE, KEN
 from tests.common import CommonCountryTests
 
@@ -19,16 +20,23 @@ from tests.common import CommonCountryTests
 class TestKenya(CommonCountryTests, TestCase):
     @classmethod
     def setUpClass(cls):
-        super().setUpClass(Kenya, years=range(1963, 2050))
+        super().setUpClass(Kenya, years=range(1964, 2050), years_non_observed=range(2000, 2050))
 
     def test_country_aliases(self):
         self.assertAliases(Kenya, KE, KEN)
 
     def test_no_holidays(self):
-        self.assertNoHolidays(Kenya(years=1962))
+        self.assertNoHolidays(Kenya(years=1963))
+        self.assertNoHolidays(Kenya(categories=ISLAMIC, years=1963))
+        self.assertNoHolidays(Kenya(categories=HINDU, years=1983))
 
     def test_special_holidays(self):
         self.assertHoliday(
+            "2015-11-26",
+            "2017-08-08",
+            "2017-10-25",
+            "2017-10-26",
+            "2017-11-28",
             "2020-02-11",
             "2022-04-29",
             "2022-08-09",
@@ -36,125 +44,333 @@ class TestKenya(CommonCountryTests, TestCase):
             "2022-09-11",
             "2022-09-12",
             "2022-09-13",
+            "2023-11-13",
+            "2024-05-10",
+            "2024-11-01",
         )
 
-    def test_holidays(self):
-        for year in range(1963, 2050):
-            self.assertHoliday(
-                f"{year}-01-01",
-                f"{year}-05-01",
-                f"{year}-10-20",
-                f"{year}-12-12",
-                f"{year}-12-25",
-                f"{year}-12-26",
-            )
-
-    def test_madaraka_day(self):
-        self.assertNoHoliday(f"{year}-06-01" for year in range(1963, 2010))
-        self.assertNoHolidayName("Madaraka Day", range(1963, 2010))
-        self.assertHoliday(f"{year}-06-01" for year in range(2010, 2050))
-
-    def test_utamaduni_day(self):
-        name1 = "Moi Day"
-        name2 = "Utamaduni Day"
-        self.assertNoHoliday(f"{year}-10-10" for year in range(1963, 2002))
-        self.assertNoHoliday(f"{year}-10-10" for year in range(2010, 2018))
-        self.assertNoHolidayName(name1, range(1963, 2002), range(2010, 2018))
-        self.assertNoHolidayName(name2, range(1963, 2002), range(2010, 2021))
-        self.assertHoliday(f"{year}-10-10" for year in range(2002, 2010))
-        self.assertHoliday(f"{year}-10-10" for year in range(2018, 2050))
-
-    def test_mashujaa_day(self):
-        self.assertNoHolidayName("Mashujaa Day", range(1963, 2010))
-        self.assertNoHolidayName("Kenyatta Day", range(2010, 2050))
+    def test_new_years_day(self):
+        name = "New Year's Day"
+        self.assertHolidayName(name, (f"{year}-01-01" for year in range(1964, 2050)))
+        dt = (
+            "2006-01-02",
+            "2012-01-02",
+            "2017-01-02",
+            "2023-01-02",
+        )
+        self.assertHolidayName(f"{name} (observed)", dt)
+        self.assertNoNonObservedHoliday(dt)
 
-    def test_easter(self):
-        self.assertHoliday(
-            # Good Friday
-            "2018-03-30",
+    def test_good_friday(self):
+        name = "Good Friday"
+        self.assertHolidayName(
+            name,
             "2019-04-19",
             "2020-04-10",
             "2021-04-02",
             "2022-04-15",
-            # Easter Monday
-            "2018-04-02",
+            "2023-04-07",
+            "2024-03-29",
+            "2025-04-18",
+        )
+        self.assertHolidayName(name, range(1964, 2050))
+
+    def test_easter_monday(self):
+        name = "Easter Monday"
+        dt = (
             "2019-04-22",
             "2020-04-13",
             "2021-04-05",
             "2022-04-18",
+            "2023-04-10",
+            "2024-04-01",
+            "2025-04-21",
         )
+        self.assertHolidayName(name, dt)
+        self.assertHolidayName(name, range(1964, 2050))
 
-    def test_observed(self):
+    def test_labor_day(self):
+        name = "Labour Day"
+        self.assertHolidayName(name, (f"{year}-05-01" for year in range(1964, 2050)))
         dt = (
-            # New Year's Day
-            "2012-01-02",
-            "2017-01-02",
-            "2023-01-02",
-            # Labour Day
+            "2005-05-02",
             "2011-05-02",
             "2016-05-02",
             "2022-05-02",
-            # Madaraka Day
+        )
+        self.assertHolidayName(f"{name} (observed)", dt)
+        self.assertNoNonObservedHoliday(dt)
+
+    def test_madaraka_day(self):
+        name = "Madaraka Day"
+        self.assertHolidayName(name, (f"{year}-06-01" for year in range(2011, 2050)))
+        self.assertNoHoliday(f"{year}-06-01" for year in range(1964, 2011))
+        self.assertNoHolidayName(name, range(1964, 2011))
+        dt = (
             "2014-06-02",
             "2025-06-02",
-            # Utamaduni Day / Moi Day
-            "2004-10-11",
-            "2021-10-11",
-            # Mashujaa Day / Kenyatta Day
-            "1996-10-21",
-            "2002-10-21",
+        )
+        self.assertHolidayName(f"{name} (observed)", dt)
+        self.assertNoNonObservedHoliday(dt)
+
+    def test_mazingira_day(self):
+        name_1 = "Moi Day"
+        name_2 = "Utamaduni Day"
+        name_3 = "Mazingira Day"
+        self.assertHolidayName(
+            name_1, (f"{year}-10-10" for year in (*range(1990, 2010), *range(2018, 2021)))
+        )
+        self.assertHolidayName(name_2, (f"{year}-10-10" for year in range(2021, 2025)))
+        self.assertHolidayName(name_3, (f"{year}-10-10" for year in range(2025, 2050)))
+        self.assertNoHoliday(f"{year}-10-10" for year in (*range(1964, 1990), *range(2010, 2018)))
+        self.assertNoHolidayName(name_1, range(1964, 1990), range(2010, 2018), range(2021, 2050))
+        self.assertNoHolidayName(name_2, range(1964, 2021), range(2025, 2050))
+        self.assertNoHolidayName(name_3, range(1964, 2025))
+        dt_1 = ("2004-10-11",)
+        self.assertHolidayName(f"{name_1} (observed)", dt_1)
+        dt_2 = ("2021-10-11",)
+        self.assertHolidayName(f"{name_2} (observed)", dt_2)
+        dt_3 = ("2027-10-11",)
+        self.assertHolidayName(f"{name_3} (observed)", dt_3)
+        self.assertNoNonObservedHoliday(dt_1, dt_2, dt_3)
+
+    def test_mashujaa_day(self):
+        name_1 = "Kenyatta Day"
+        name_2 = "Mashujaa Day"
+        self.assertHolidayName(name_1, (f"{year}-10-20" for year in range(1964, 2011)))
+        self.assertHolidayName(name_2, (f"{year}-10-20" for year in range(2011, 2050)))
+        self.assertNoHolidayName(name_1, range(2011, 2050))
+        self.assertNoHolidayName(name_2, range(1964, 2011))
+        dt_1 = ("2002-10-21",)
+        self.assertHolidayName(f"{name_1} (observed)", dt_1)
+        dt_2 = (
             "2013-10-21",
             "2019-10-21",
             "2024-10-21",
-            # Jamhuri Day
+        )
+        self.assertHolidayName(f"{name_2} (observed)", dt_2)
+        self.assertNoNonObservedHoliday(dt_1, dt_2)
+
+    def test_jamhury_day(self):
+        name_1 = "Independence Day"
+        name_2 = "Jamhuri Day"
+        self.assertHolidayName(name_1, (f"{year}-12-12" for year in range(1964, 2011)))
+        self.assertHolidayName(name_2, (f"{year}-12-12" for year in range(2011, 2050)))
+        self.assertNoHolidayName(name_1, range(2011, 2050))
+        self.assertNoHolidayName(name_2, range(1964, 2011))
+        dt_1 = (
+            "2004-12-13",
             "2010-12-13",
+        )
+        self.assertHolidayName(f"{name_1} (observed)", dt_1)
+        dt_2 = (
             "2021-12-13",
-            # Christmas Day
+            "2027-12-13",
+        )
+        self.assertHolidayName(f"{name_2} (observed)", dt_2)
+        self.assertNoNonObservedHoliday(dt_1, dt_2)
+
+    def test_christmas_day(self):
+        name = "Christmas Day"
+        self.assertHolidayName(name, (f"{year}-12-25" for year in range(1964, 2050)))
+        dt = (
+            "2005-12-27",
             "2011-12-27",
             "2016-12-27",
             "2022-12-27",
-            # Boxing Day
+        )
+        self.assertHolidayName(f"{name} (observed)", dt)
+        self.assertNoNonObservedHoliday(dt)
+
+    def test_boxing_day(self):
+        name = "Boxing Day"
+        self.assertHolidayName(name, (f"{year}-12-26" for year in range(1964, 2050)))
+        dt = (
+            "2004-12-27",
             "2010-12-27",
             "2021-12-27",
         )
+        self.assertHolidayName(f"{name} (observed)", dt)
+        self.assertNoNonObservedHoliday(dt)
+
+    def test_eid_al_fitr(self):
+        name = "Idd-ul-Fitr"
+        self.assertHolidayName(
+            name,
+            "2019-06-05",
+            "2020-05-25",
+            "2021-05-14",
+            "2022-05-03",
+            "2023-04-21",
+            "2024-04-10",
+        )
+        years_found = {dt.year for dt in self.holidays.get_named(name, lookup="startswith")}
+        self.assertTrue(set(range(1964, 2050)).issubset(years_found))
+
+        dt = (
+            "2001-12-17",
+            "2004-11-15",
+            "2009-09-21",
+            "2012-08-20",
+            "2025-03-31",
+        )
         self.assertHoliday(dt)
         self.assertNoNonObservedHoliday(dt)
 
+    def test_diwali(self):
+        name = "Diwali"
+        self.assertNoHolidayName(name)
+        hindu_holidays = Kenya(categories=HINDU, years=range(1964, 2050))
+        self.assertHolidayName(
+            name,
+            hindu_holidays,
+            "2014-10-22",
+            "2015-11-10",
+            "2016-10-29",
+            "2017-10-18",
+            "2018-11-06",
+            "2019-10-28",
+            "2020-11-14",
+            "2021-11-04",
+            "2022-10-24",
+            "2023-11-12",
+            "2024-10-31",
+        )
+        self.assertHolidayName(name, hindu_holidays, range(1984, 2050))
+        self.assertNoHolidayName(name, hindu_holidays, range(1964, 1984))
+
+    def test_eid_al_adha(self):
+        name = "Idd-ul-Azha"
+        self.assertNoHolidayName(name)
+        islamic_holidays = Kenya(categories=ISLAMIC, years=range(1964, 2050))
+        self.assertHolidayName(
+            name,
+            islamic_holidays,
+            "2019-08-12",
+            "2020-07-31",
+            "2021-07-20",
+            "2022-07-11",
+            "2023-06-28",
+            "2024-06-17",
+        )
+        years_found = {dt.year for dt in islamic_holidays.get_named(name, lookup="startswith")}
+        self.assertTrue(set(range(1964, 2050)).issubset(years_found))
+
+    def test_2010(self):
+        self.assertHolidays(
+            Kenya(years=2010),
+            ("2010-01-01", "New Year's Day"),
+            ("2010-04-02", "Good Friday"),
+            ("2010-04-05", "Easter Monday"),
+            ("2010-05-01", "Labour Day"),
+            ("2010-09-10", "Idd-ul-Fitr (estimated)"),
+            ("2010-10-20", "Kenyatta Day"),
+            ("2010-12-12", "Independence Day"),
+            ("2010-12-13", "Independence Day (observed)"),
+            ("2010-12-25", "Christmas Day"),
+            ("2010-12-26", "Boxing Day"),
+            ("2010-12-27", "Boxing Day (observed)"),
+        )
+
     def test_2019(self):
-        self.assertHolidayDates(
+        self.assertHolidays(
             Kenya(years=2019),
-            "2019-01-01",
-            "2019-04-19",
-            "2019-04-22",
-            "2019-05-01",
-            "2019-06-01",
-            "2019-10-10",
-            "2019-10-20",
-            "2019-10-21",
-            "2019-12-12",
-            "2019-12-25",
-            "2019-12-26",
+            ("2019-01-01", "New Year's Day"),
+            ("2019-04-19", "Good Friday"),
+            ("2019-04-22", "Easter Monday"),
+            ("2019-05-01", "Labour Day"),
+            ("2019-06-01", "Madaraka Day"),
+            ("2019-06-05", "Idd-ul-Fitr"),
+            ("2019-10-10", "Moi Day"),
+            ("2019-10-20", "Mashujaa Day"),
+            ("2019-10-21", "Mashujaa Day (observed)"),
+            ("2019-12-12", "Jamhuri Day"),
+            ("2019-12-25", "Christmas Day"),
+            ("2019-12-26", "Boxing Day"),
         )
 
     def test_2022(self):
-        self.assertHolidayDates(
+        self.assertHolidays(
             Kenya(years=2022),
-            "2022-01-01",
-            "2022-04-15",
-            "2022-04-18",
-            "2022-04-29",
-            "2022-05-01",
-            "2022-05-02",
-            "2022-06-01",
-            "2022-08-09",
-            "2022-09-10",
-            "2022-09-11",
-            "2022-09-12",
-            "2022-09-13",
-            "2022-10-10",
-            "2022-10-20",
-            "2022-12-12",
-            "2022-12-25",
-            "2022-12-26",
-            "2022-12-27",
+            ("2022-01-01", "New Year's Day"),
+            ("2022-04-15", "Good Friday"),
+            ("2022-04-18", "Easter Monday"),
+            ("2022-04-29", "State Funeral for Former President Mwai Kibaki"),
+            ("2022-05-01", "Labour Day"),
+            ("2022-05-02", "Labour Day (observed)"),
+            ("2022-05-03", "Idd-ul-Fitr"),
+            ("2022-06-01", "Madaraka Day"),
+            ("2022-08-09", "Election Day"),
+            ("2022-09-10", "Day of Mourning for Queen Elizabeth II"),
+            ("2022-09-11", "Day of Mourning for Queen Elizabeth II"),
+            ("2022-09-12", "Day of Mourning for Queen Elizabeth II"),
+            ("2022-09-13", "Inauguration Day"),
+            ("2022-10-10", "Utamaduni Day"),
+            ("2022-10-20", "Mashujaa Day"),
+            ("2022-12-12", "Jamhuri Day"),
+            ("2022-12-25", "Christmas Day"),
+            ("2022-12-26", "Boxing Day"),
+            ("2022-12-27", "Christmas Day (observed)"),
+        )
+
+    def test_l10n_default(self):
+        self.assertLocalizedHolidays(
+            ("2024-01-01", "New Year's Day"),
+            ("2024-03-29", "Good Friday"),
+            ("2024-04-01", "Easter Monday"),
+            ("2024-04-10", "Idd-ul-Fitr"),
+            ("2024-05-01", "Labour Day"),
+            ("2024-05-10", "National Tree Growing Day"),
+            ("2024-06-01", "Madaraka Day"),
+            ("2024-06-17", "Idd-ul-Azha"),
+            ("2024-10-10", "Utamaduni Day"),
+            ("2024-10-20", "Mashujaa Day"),
+            ("2024-10-21", "Mashujaa Day (observed)"),
+            ("2024-10-31", "Diwali"),
+            ("2024-11-01", "Inauguration Day"),
+            ("2024-12-12", "Jamhuri Day"),
+            ("2024-12-25", "Christmas Day"),
+            ("2024-12-26", "Boxing Day"),
+        )
+
+    def test_l10n_en_us(self):
+        self.assertLocalizedHolidays(
+            "en_US",
+            ("2024-01-01", "New Year's Day"),
+            ("2024-03-29", "Good Friday"),
+            ("2024-04-01", "Easter Monday"),
+            ("2024-04-10", "Eid-al-Fitr"),
+            ("2024-05-01", "Labor Day"),
+            ("2024-05-10", "National Tree Growing Day"),
+            ("2024-06-01", "Madaraka Day"),
+            ("2024-06-17", "Eid-al-Adha"),
+            ("2024-10-10", "Utamaduni Day"),
+            ("2024-10-20", "Mashujaa Day"),
+            ("2024-10-21", "Mashujaa Day (observed)"),
+            ("2024-10-31", "Diwali"),
+            ("2024-11-01", "Inauguration Day"),
+            ("2024-12-12", "Jamhuri Day"),
+            ("2024-12-25", "Christmas Day"),
+            ("2024-12-26", "Boxing Day"),
+        )
+
+    def test_l10n_sw(self):
+        self.assertLocalizedHolidays(
+            "sw",
+            ("2024-01-01", "Siku ya Mwaka Mpya"),
+            ("2024-03-29", "Ijumaa Kuu"),
+            ("2024-04-01", "Jumatatu ya Pasaka"),
+            ("2024-04-10", "Sikukuu ya Idd-ul-Fitr"),
+            ("2024-05-01", "Siku ya Kazi"),
+            ("2024-05-10", "Siku ya Kitaifa ya Kupanda Miti"),
+            ("2024-06-01", "Siku ya Madaraka"),
+            ("2024-06-17", "Sikukuu ya Idd-ul-Azha"),
+            ("2024-10-10", "Siku ya Utamaduni"),
+            ("2024-10-20", "Siku ya Mashujaa"),
+            ("2024-10-21", "Siku ya Mashujaa (imezingatiwa)"),
+            ("2024-10-31", "Diwali"),
+            ("2024-11-01", "Siku ya Uzinduzi"),
+            ("2024-12-12", "Siku ya Jamhuri"),
+            ("2024-12-25", "Siku ya Krismasi"),
+            ("2024-12-26", "Siku ya Ndondi"),
         )