Repository: vacanza/holidays
Pull request #2324 (2025-03-03 17:19:46)

v0.68
Version 0.68
============

Released March 3, 2025

- Fix 2025 Chinese Calendar's Birthday of Buddha (#2310 by @PPsyrius)
- Update AZ holidays: add 2025 substituted holidays (#2302 by @KJhellico)
- Update Kenya holidays, add l10n support (#2316 by @KJhellico)
- Update Malaysia holidays (#2309 by @KJhellico)
- Update Zenodo record URL in README (#2317 by @KJhellico)
- Update issue templates (#2307 by @arkid15r)
- Update l10n scripts (#2318 by @KJhellico, @arkid15r)
- Add .coderabbit.yaml (#2322 by @arkid15r)


Patch:
diff --git a/.coderabbit.yaml b/.coderabbit.yaml
new file mode 100644
index 00000000..81f9fdf0
--- /dev/null
+++ b/.coderabbit.yaml
@@ -0,0 +1,26 @@
+chat:
+  auto_reply: true
+code_generation:
+  docstrings:
+    language: en-US
+early_access: true
+language: en-US
+reviews:
+  assess_linked_issues: true
+  auto_apply_labels: false
+  auto_review:
+    enabled: true
+    drafts: true
+  collapse_walkthrough: false
+  high_level_summary: true
+  high_level_summary_in_walkthrough: true
+  labeling_instructions: []
+  poem: false
+  profile: assertive
+  request_changes_workflow: false
+  review_status: true
+  sequence_diagrams: false
+  tools:
+    github-checks:
+      timeout_ms: 300000
+tone_instructions: Maintain a conversational spartan tone that is supportive in all responses.
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 9b78e40e..0437c9e8 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,28 +1,34 @@
-## Bug Report
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: ''
+assignees: ''
 
-### Expected Behavior
+---
 
-A clear and concise description of what you expected to happen.
-
-### Actual Behavior
-
-A clear and concise description of what actually happened.
-
-### Steps to Reproduce the Problem
+**Describe the bug**
+A clear and concise description of what the bug is.
 
+**To Reproduce**
 Provide an unambiguous set of steps to reproduce this bug.
 Include code to reproduce, if relevant.
 
-  1.
-  1.
-  1.
+1.
+1.
+1.
 
-### Environment
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Environment**
 
 - OS:
 - Python version:
 - holidays version:
 
-### Additional Context
-
+**Additional context**
 Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 85725158..76308554 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,14 +1,6 @@
-blank_issues_enabled: false
+blank_issues_enabled: true
 
 contact_links:
   - name: General question
     url: https://github.com/vacanza/holidays/discussions/new?category=q-a
     about: Ask a question
-
-  - name: Bug Report
-    url: https://github.com/vacanza/holidays/issues/new?template=bug_report.md
-    about: Report an issue
-
-  - name: Feature Request
-    url: https://github.com/vacanza/holidays/issues/new?template=feature_request.md
-    about: Suggest an idea
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
index 0e606b33..bbcbbe7d 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -1,17 +1,20 @@
-## Feature Request
+---
+name: Feature request
+about: Suggest an idea for this project
+title: ''
+labels: ''
+assignees: ''
 
-### Description
+---
 
-A clear and concise description of the feature you are requesting.
-
-### Related Issues
-
-List any related issues or feature requests that might be relevant.
-
-### Proposed Solution
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
 
+**Describe the solution you'd like**
 A clear and concise description of what you want to happen.
 
-### Additional context
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
 
-Add any other context about your feature request here.
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/.github/workflows/pre-commit-autoupdate.yml b/.github/workflows/pre-commit-autoupdate.yml
index b15f1468..f0d15672 100644
--- a/.github/workflows/pre-commit-autoupdate.yml
+++ b/.github/workflows/pre-commit-autoupdate.yml
@@ -40,7 +40,7 @@ jobs:
           pre-commit autoupdate
           pre-commit run --all-files
 
-      - uses: peter-evans/create-pull-request@v7.0.6
+      - uses: peter-evans/create-pull-request@v7.0.7
         with:
           base: dev
           body: Update pre-commit hooks to their latest versions.
diff --git a/.github/workflows/update-snapshots.yml b/.github/workflows/update-snapshots.yml
index bf2f72ce..247c1d70 100644
--- a/.github/workflows/update-snapshots.yml
+++ b/.github/workflows/update-snapshots.yml
@@ -38,7 +38,7 @@ jobs:
         run: |
           make snapshot
 
-      - uses: peter-evans/create-pull-request@v7.0.6
+      - uses: peter-evans/create-pull-request@v7.0.7
         with:
           base: dev
           body: Automatically generated snapshots update.
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index d834a04c..cc2704d4 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.6
+    rev: v0.9.9
     hooks:
       - id: ruff
       - id: ruff-format
@@ -40,7 +40,7 @@ repos:
           - docs/file_header.txt
 
   - repo: https://github.com/pycqa/bandit
-    rev: 1.8.2
+    rev: 1.8.3
     hooks:
       - id: bandit
         additional_dependencies:
@@ -49,7 +49,7 @@ repos:
           - --configfile=pyproject.toml
 
   - repo: https://github.com/pycqa/isort
-    rev: 6.0.0
+    rev: 6.0.1
     hooks:
       - id: isort
         exclude: ^(docs)
diff --git a/CHANGES b/CHANGES
index 1192ac40..8d13c23d 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,17 @@
+Version 0.68
+============
+
+Released March 3, 2025
+
+- Fix 2025 Chinese Calendar's Birthday of Buddha (#2310 by @PPsyrius)
+- Update AZ holidays: add 2025 substituted holidays (#2302 by @KJhellico)
+- Update Kenya holidays, add l10n support (#2316 by @KJhellico)
+- Update Malaysia holidays (#2309 by @KJhellico)
+- Update Zenodo record URL in README (#2317 by @KJhellico)
+- Update issue templates (#2307 by @arkid15r)
+- Update l10n scripts (#2318 by @KJhellico, @arkid15r)
+- Add .coderabbit.yaml (#2322 by @arkid15r)
+
 Version 0.67
 ============
 
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/SECURITY.md b/SECURITY.md
index 6658a7ab..f4078590 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -4,8 +4,8 @@
 
 | Version | Supported          |
 |---------| ------------------ |
-| 0.67    | :white_check_mark: |
-| < 0.67  | :x:                |
+| 0.68    | :white_check_mark: |
+| < 0.68  | :x:                |
 
 ## Reporting a Vulnerability
 
diff --git a/holidays/calendars/chinese.py b/holidays/calendars/chinese.py
index f4a48d50..8d72607c 100644
--- a/holidays/calendars/chinese.py
+++ b/holidays/calendars/chinese.py
@@ -150,7 +150,7 @@ class _ChineseLunisolar:
         2022: (MAY, 8),
         2023: (MAY, 26),
         2024: (MAY, 15),
-        2025: (MAY, 4),
+        2025: (MAY, 5),
         2026: (MAY, 24),
         2027: (MAY, 13),
         2028: (MAY, 2),
diff --git a/holidays/countries/azerbaijan.py b/holidays/countries/azerbaijan.py
index 64e482d0..f4d4ccbc 100644
--- a/holidays/countries/azerbaijan.py
+++ b/holidays/countries/azerbaijan.py
@@ -68,7 +68,9 @@ class Azerbaijan(ObservedHolidayBase, InternationalHolidays, IslamicHolidays, St
             dts_non_observed.add(self._add_holiday_jan_20(tr("Ümumxalq hüzn günü")))
 
         # Women's Day.
-        dts_observed.add(self._add_womens_day(tr("Qadınlar günü")))
+        dt = self._add_womens_day(tr("Qadınlar günü"))
+        if self._year != 2025:
+            dts_observed.add(dt)
 
         # Spring Festival.
         name = tr("Novruz bayramı")
@@ -135,7 +137,9 @@ class Azerbaijan(ObservedHolidayBase, InternationalHolidays, IslamicHolidays, St
         if self._year >= 1993:
             # Eid al-Fitr.
             name = tr("Ramazan bayrami")
-            dts_bairami.update(self._add_eid_al_fitr_day(name))
+            dt = self._add_eid_al_fitr_day(name)
+            if self._year != 2025:
+                dts_bairami.update(dt)
             if self._year >= 2006:
                 dts_bairami.update(self._add_eid_al_fitr_day_two(name))
 
@@ -217,6 +221,7 @@ class AzerbaijanIslamicHolidays(_CustomIslamicHolidays):
         2022: (JUL, 9),
         2023: (JUN, 28),
         2024: (JUN, 16),
+        2025: (JUN, 6),
     }
 
     EID_AL_FITR_DATES = {
@@ -243,6 +248,7 @@ class AzerbaijanIslamicHolidays(_CustomIslamicHolidays):
         2022: (MAY, 2),
         2023: (APR, 21),
         2024: (APR, 10),
+        2025: (MAR, 30),
     }
 
 
@@ -258,11 +264,17 @@ class AzerbaijanStaticHolidays:
         - https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-7843
         - https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-8332
         - https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-8449
+        - https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-8623
     Special holidays references:
         - https://www.msk.gov.az/en/elections/pages/municipal-elections/belediyye-29-01-2025
     """
 
     eid_al_adha = tr("Qurban bayrami")
+
+    eid_al_fitr = tr("Ramazan bayrami")
+
+    womens_day = tr("Qadınlar günü")
+
     # Substituted date format.
     substituted_date_format = tr("%d.%m.%Y")
     # Day off (substituted from %s).
@@ -323,5 +335,9 @@ class AzerbaijanStaticHolidays:
 
     special_public_holidays_observed = {
         2007: (JAN, 3, eid_al_adha),
+        2025: (
+            (MAR, 27, womens_day),
+            (MAR, 28, eid_al_fitr),
+        ),
         2072: (JAN, 5, eid_al_adha),
     }
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/countries/malaysia.py b/holidays/countries/malaysia.py
index fc68cf88..e70be1bf 100644
--- a/holidays/countries/malaysia.py
+++ b/holidays/countries/malaysia.py
@@ -139,7 +139,8 @@ class Malaysia(
         "If any day specified in the Schedule falls on Sunday then the day following shall be
         a public holiday and if such day is already a public holiday, then the day following
         shall be a public holiday".
-        In Johor and Kedah it's Friday to Sunday, in Kelantan and Terengganu - Saturday to Sunday.
+        In Johor (until 1994 and in 2014-2024) and Kedah it's Friday to Sunday,
+        in Kelantan and Terengganu - Saturday to Sunday.
         """
         BuddhistCalendarHolidays.__init__(self, cls=MalaysiaBuddhistHolidays, show_estimated=True)
         ChineseCalendarHolidays.__init__(self, cls=MalaysiaChineseHolidays, show_estimated=True)
@@ -321,8 +322,14 @@ class Malaysia(
             else self._add_holiday_2nd_fri_of_oct(name)
         )
 
-        # Beginning of Ramadan.
-        self.dts_observed.update(self._add_ramadan_beginning_day(tr("Awal Ramadan")))
+        if self._year >= 2025:
+            self.dts_observed.update(
+                # Eid al-Fitr (Third Day).
+                self._add_eid_al_fitr_day_three(tr("Hari Raya Puasa (Hari Ketiga)"))
+            )
+        else:
+            # Beginning of Ramadan.
+            self.dts_observed.update(self._add_ramadan_beginning_day(tr("Awal Ramadan")))
 
     def _populate_subdiv_05_public_holidays(self):
         # New Year's Day.
@@ -589,6 +596,7 @@ class MalaysiaBuddhistHolidays(_CustomBuddhistHolidays):
         2022: (MAY, 15),
         2023: (MAY, 4),
         2024: (MAY, 22),
+        2025: (MAY, 12),
     }
 
 
@@ -618,6 +626,7 @@ class MalaysiaChineseHolidays(_CustomChineseHolidays):
         2022: (FEB, 1),
         2023: (JAN, 22),
         2024: (FEB, 10),
+        2025: (JAN, 29),
     }
 
 
@@ -647,6 +656,7 @@ class MalaysiaHinduHolidays(_CustomHinduHolidays):
         2022: (OCT, 24),
         2023: (NOV, 12),
         2024: (OCT, 31),
+        2025: (OCT, 20),
     }
 
     THAIPUSAM_DATES = {
@@ -689,6 +699,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
         2022: (JUL, 10),
         2023: (JUN, 29),
         2024: (JUN, 17),
+        2025: (JUN, 7),
     }
 
     EID_AL_FITR_DATES = {
@@ -716,6 +727,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
         2022: (MAY, 2),
         2023: (APR, 22),
         2024: (APR, 10),
+        2025: (MAR, 31),
     }
 
     HARI_HOL_JOHOR_DATES = {
@@ -733,6 +745,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
         2022: (SEP, 3),
         2023: (AUG, 23),
         2024: (AUG, 11),
+        2025: (JUL, 31),
     }
 
     HIJRI_NEW_YEAR_DATES = {
@@ -760,6 +773,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
         2022: (JUL, 30),
         2023: (JUL, 19),
         2024: (JUL, 7),
+        2025: (JUN, 27),
     }
 
     ISRA_AND_MIRAJ_DATES = {
@@ -787,6 +801,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
         2022: (MAR, 1),
         2023: (FEB, 18),
         2024: (FEB, 8),
+        2025: (JAN, 27),
     }
 
     MAWLID_DATES = {
@@ -814,6 +829,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
         2022: (OCT, 10),
         2023: (SEP, 28),
         2024: (SEP, 16),
+        2025: (SEP, 5),
     }
 
     NUZUL_AL_QURAN_DATES = {
@@ -841,6 +857,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
         2022: (APR, 19),
         2023: (APR, 8),
         2024: (MAR, 28),
+        2025: (MAR, 18),
     }
 
     RAMADAN_BEGINNING_DATES = {
@@ -868,6 +885,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
         2022: (APR, 3),
         2023: (MAR, 23),
         2024: (MAR, 12),
+        2025: (MAR, 2),
     }
 
 
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..dcbef583
--- /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-Generator: Poedit 3.5\n"
+"X-Source-Language: en_KE\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..b5273c8f
--- /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-Generator: Poedit 3.5\n"
+"X-Source-Language: en_KE\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/en_US/LC_MESSAGES/MY.po b/holidays/locale/en_US/LC_MESSAGES/MY.po
index 45b85f17..d7a6c218 100644
--- a/holidays/locale/en_US/LC_MESSAGES/MY.po
+++ b/holidays/locale/en_US/LC_MESSAGES/MY.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.49\n"
+"Project-Id-Version: Holidays 0.68\n"
 "POT-Creation-Date: 2024-04-28 21:03+0300\n"
-"PO-Revision-Date: 2024-04-29 15:16+0300\n"
+"PO-Revision-Date: 2025-02-24 12:24+0200\n"
 "Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: en_US\n"
@@ -248,3 +248,7 @@ msgstr "Eid al-Fitr (additional holiday)"
 #. Additional holiday in commemoration of the 2017 SEA Games.
 msgid "Cuti tambahan sempena memperingati SAT 2017"
 msgstr "Additional holiday in commemoration of the 2017 SEA Games"
+
+#. Eid al-Fitr (Third Day).
+msgid "Hari Raya Puasa (Hari Ketiga)"
+msgstr "Eid al-Fitr (Third Day)"
diff --git a/holidays/locale/ms_MY/LC_MESSAGES/MY.po b/holidays/locale/ms_MY/LC_MESSAGES/MY.po
index 607bfca1..42ea9889 100644
--- a/holidays/locale/ms_MY/LC_MESSAGES/MY.po
+++ b/holidays/locale/ms_MY/LC_MESSAGES/MY.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.49\n"
+"Project-Id-Version: Holidays 0.68\n"
 "POT-Creation-Date: 2024-04-28 21:03+0300\n"
-"PO-Revision-Date: 2024-04-28 21:06+0300\n"
+"PO-Revision-Date: 2025-02-24 12:23+0200\n"
 "Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: ms_MY\n"
@@ -248,3 +248,7 @@ msgstr ""
 #. Additional holiday in commemoration of the 2017 SEA Games.
 msgid "Cuti tambahan sempena memperingati SAT 2017"
 msgstr ""
+
+#. Eid al-Fitr (Third Day).
+msgid "Hari Raya Puasa (Hari Ketiga)"
+msgstr ""
diff --git a/holidays/locale/sw/LC_MESSAGES/KE.po b/holidays/locale/sw/LC_MESSAGES/KE.po
new file mode 100644
index 00000000..a03c13b0
--- /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-Generator: Poedit 3.5\n"
+"X-Source-Language: en_KE\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/holidays/locale/th/LC_MESSAGES/MY.po b/holidays/locale/th/LC_MESSAGES/MY.po
index 9b22bbce..a7835e3f 100644
--- a/holidays/locale/th/LC_MESSAGES/MY.po
+++ b/holidays/locale/th/LC_MESSAGES/MY.po
@@ -14,10 +14,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.58\n"
+"Project-Id-Version: Holidays 0.68\n"
 "POT-Creation-Date: 2024-10-01 15:58+0700\n"
-"PO-Revision-Date: 2024-10-02 14:47+0700\n"
-"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
+"PO-Revision-Date: 2025-02-24 12:29+0200\n"
+"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: th\n"
 "MIME-Version: 1.0\n"
@@ -248,3 +248,7 @@ msgstr "วันอีฎิ้ลฟิตริ (เพิ่มเติม)
 #. Additional holiday in commemoration of the 2017 SEA Games.
 msgid "Cuti tambahan sempena memperingati SAT 2017"
 msgstr "วันหยุดเพิ่มเติมเนื่องในโอกาสการแข่งขันกีฬาซีเกมส์ปี 2017"
+
+#. Eid al-Fitr (Third Day).
+msgid "Hari Raya Puasa (Hari Ketiga)"
+msgstr "วันอีฎิ้ลฟิตริวันที่สาม"
diff --git a/holidays/version.py b/holidays/version.py
index c59a2023..209bc945 100644
--- a/holidays/version.py
+++ b/holidays/version.py
@@ -10,4 +10,4 @@
 #  Website: https://github.com/vacanza/holidays
 #  License: MIT (see LICENSE file)
 
-__version__ = "0.67"
+__version__ = "0.68"
diff --git a/requirements/build.txt b/requirements/build.txt
index 6654e144..bfd754f4 100644
--- a/requirements/build.txt
+++ b/requirements/build.txt
@@ -1,3 +1,3 @@
 build==1.2.2.post1
-cyclonedx-bom==5.1.2
+cyclonedx-bom==5.3.0
 polib==1.2.0
diff --git a/requirements/dev.txt b/requirements/dev.txt
index f7011c29..6568f220 100644
--- a/requirements/dev.txt
+++ b/requirements/dev.txt
@@ -6,8 +6,8 @@ gitpython==3.1.44
 hijridate==2.5.0
 lingva==5.0.5
 pre-commit==4.1.0
-pygithub==2.5.0
-ruff==0.9.6
+pygithub==2.6.1
+ruff==0.9.7
 tox==4.24.1
 urllib3>=2.2.2 # not directly required, pinned by Snyk to avoid a vulnerability
 zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability
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/AZ_COMMON.json b/snapshots/countries/AZ_COMMON.json
index c5672109..e60a155c 100644
--- a/snapshots/countries/AZ_COMMON.json
+++ b/snapshots/countries/AZ_COMMON.json
@@ -740,7 +740,6 @@
     "2025-01-20": "Martyrs' Day",
     "2025-01-29": "Municipal elections",
     "2025-03-08": "Women's Day",
-    "2025-03-10": "Women's Day (observed)",
     "2025-03-20": "Spring Festival",
     "2025-03-21": "Spring Festival",
     "2025-03-22": "Spring Festival",
@@ -748,14 +747,15 @@
     "2025-03-24": "Spring Festival",
     "2025-03-25": "Spring Festival (observed)",
     "2025-03-26": "Spring Festival (observed)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (estimated)",
-    "2025-04-01": "Eid al-Fitr (observed, estimated)",
+    "2025-03-27": "Women's Day (observed)",
+    "2025-03-28": "Eid al-Fitr (observed)",
+    "2025-03-30": "Eid al-Fitr",
+    "2025-03-31": "Eid al-Fitr",
     "2025-05-09": "Victory over Fascism Day",
     "2025-05-28": "Independence Day",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-07": "Eid al-Adha (estimated)",
-    "2025-06-09": "Eid al-Adha (observed, estimated)",
+    "2025-06-06": "Eid al-Adha",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-09": "Eid al-Adha (observed)",
     "2025-06-15": "National Liberation Day",
     "2025-06-16": "National Liberation Day (observed)",
     "2025-06-26": "Armed Forces Day",
diff --git a/snapshots/countries/HK_COMMON.json b/snapshots/countries/HK_COMMON.json
index 2862da26..a84b3de0 100644
--- a/snapshots/countries/HK_COMMON.json
+++ b/snapshots/countries/HK_COMMON.json
@@ -1278,8 +1278,7 @@
     "2025-04-19": "The day following Good Friday",
     "2025-04-21": "Easter Monday",
     "2025-05-01": "Labor Day",
-    "2025-05-04": "The Birthday of the Buddha",
-    "2025-05-05": "The Birthday of the Buddha (observed); The day following the Birthday of the Buddha",
+    "2025-05-05": "The Birthday of the Buddha",
     "2025-05-31": "Tuen Ng Festival",
     "2025-07-01": "Hong Kong Special Administrative Region Establishment Day",
     "2025-10-01": "National Day",
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",
diff --git a/snapshots/countries/MY_01.json b/snapshots/countries/MY_01.json
index 6e3aadfe..cc9a92eb 100644
--- a/snapshots/countries/MY_01.json
+++ b/snapshots/countries/MY_01.json
@@ -1200,26 +1200,25 @@
     "2024-09-16": "Malaysia Day; Prophet Muhammad's Birthday",
     "2024-10-31": "Deepavali",
     "2024-12-25": "Christmas Day",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
     "2025-02-11": "Thaipusam",
-    "2025-03-01": "Beginning of Ramadan (estimated)",
+    "2025-03-02": "Beginning of Ramadan",
+    "2025-03-03": "Beginning of Ramadan (observed)",
     "2025-03-23": "Birthday of the Sultan of Johor",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
-    "2025-04-01": "Eid al-Fitr (observed, estimated)",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
-    "2025-05-12": "Vesak Day (observed, estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
-    "2025-07-31": "The Sultan of Johor Hol (estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-27": "Islamic New Year",
+    "2025-07-31": "The Sultan of Johor Hol",
     "2025-08-31": "National Day",
     "2025-09-01": "National Day (observed)",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
-    "2025-11-18": "Deepavali",
+    "2025-10-20": "Deepavali",
     "2025-12-25": "Christmas Day",
     "2026-02-01": "Thaipusam",
     "2026-02-02": "Thaipusam (observed)",
diff --git a/snapshots/countries/MY_02.json b/snapshots/countries/MY_02.json
index 19348b93..9f5292cb 100644
--- a/snapshots/countries/MY_02.json
+++ b/snapshots/countries/MY_02.json
@@ -1268,25 +1268,25 @@
     "2024-09-16": "Malaysia Day; Prophet Muhammad's Birthday",
     "2024-10-31": "Deepavali",
     "2024-12-25": "Christmas Day",
-    "2025-01-27": "Isra' and Mi'raj (estimated)",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
+    "2025-01-27": "Isra' and Mi'raj",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
     "2025-02-11": "Thaipusam",
-    "2025-03-01": "Beginning of Ramadan (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
+    "2025-03-02": "Beginning of Ramadan",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-07": "Eid al-Adha (Second Day) (estimated)",
-    "2025-06-08": "Eid al-Adha (observed, estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-08": "Eid al-Adha (Second Day)",
     "2025-06-15": "Birthday of The Sultan of Kedah",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-27": "Islamic New Year",
     "2025-08-31": "National Day",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
+    "2025-09-07": "Prophet Muhammad's Birthday (observed)",
     "2025-09-16": "Malaysia Day",
-    "2025-11-18": "Deepavali",
+    "2025-10-20": "Deepavali",
     "2025-12-25": "Christmas Day",
     "2026-01-16": "Isra' and Mi'raj (estimated)",
     "2026-01-18": "Isra' and Mi'raj (observed, estimated)",
diff --git a/snapshots/countries/MY_03.json b/snapshots/countries/MY_03.json
index fe9b02e3..aadc0f91 100644
--- a/snapshots/countries/MY_03.json
+++ b/snapshots/countries/MY_03.json
@@ -1288,25 +1288,25 @@
     "2024-09-30": "Birthday of the Sultan of Kelantan",
     "2024-10-31": "Deepavali",
     "2024-12-25": "Christmas Day",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
-    "2025-03-17": "Nuzul Al-Quran Day (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
+    "2025-03-18": "Nuzul Al-Quran Day",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-05": "Arafat Day (estimated)",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-07": "Eid al-Adha (Second Day) (estimated)",
-    "2025-06-08": "Eid al-Adha (Second Day) (observed, estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-06": "Arafat Day",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-08": "Eid al-Adha (Second Day)",
+    "2025-06-09": "Eid al-Adha (observed)",
+    "2025-06-27": "Islamic New Year",
     "2025-08-31": "National Day",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
     "2025-09-29": "Birthday of the Sultan of Kelantan",
     "2025-09-30": "Birthday of the Sultan of Kelantan",
-    "2025-11-18": "Deepavali",
+    "2025-10-20": "Deepavali",
     "2025-12-25": "Christmas Day",
     "2026-02-17": "Chinese New Year (estimated)",
     "2026-02-18": "Chinese New Year (Second Day) (estimated)",
diff --git a/snapshots/countries/MY_04.json b/snapshots/countries/MY_04.json
index b5d396de..5ec176f6 100644
--- a/snapshots/countries/MY_04.json
+++ b/snapshots/countries/MY_04.json
@@ -1294,33 +1294,33 @@
     "2024-10-31": "Deepavali",
     "2024-12-25": "Christmas Day",
     "2025-01-01": "New Year's Day",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
     "2025-02-20": "Declaration of Independence Day",
-    "2025-03-01": "Beginning of Ramadan (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
-    "2025-04-01": "Eid al-Fitr (observed, estimated)",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
+    "2025-04-02": "Eid al-Fitr (Third Day)",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
-    "2025-05-12": "Vesak Day (observed, estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-27": "Islamic New Year",
     "2025-08-24": "Birthday of the Governor of Malacca",
     "2025-08-25": "Birthday of the Governor of Malacca (observed)",
     "2025-08-31": "National Day",
     "2025-09-01": "National Day (observed)",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
-    "2025-11-18": "Deepavali",
+    "2025-10-20": "Deepavali",
     "2025-12-25": "Christmas Day",
     "2026-01-01": "New Year's Day",
     "2026-02-17": "Chinese New Year (estimated)",
-    "2026-02-18": "Beginning of Ramadan (estimated); Chinese New Year (Second Day) (estimated)",
+    "2026-02-18": "Chinese New Year (Second Day) (estimated)",
     "2026-02-20": "Declaration of Independence Day",
     "2026-03-20": "Eid al-Fitr (estimated)",
     "2026-03-21": "Eid al-Fitr (Second Day) (estimated)",
+    "2026-03-22": "Eid al-Fitr (Third Day) (estimated)",
+    "2026-03-23": "Eid al-Fitr (Third Day) (observed, estimated)",
     "2026-05-01": "Labor Day; Vesak Day (estimated)",
     "2026-05-27": "Eid al-Adha (estimated)",
     "2026-06-01": "Birthday of HM Yang di-Pertuan Agong",
@@ -1334,11 +1334,11 @@
     "2027-01-01": "New Year's Day",
     "2027-02-06": "Chinese New Year (estimated)",
     "2027-02-07": "Chinese New Year (Second Day) (estimated)",
-    "2027-02-08": "Beginning of Ramadan (estimated)",
-    "2027-02-09": "Chinese New Year (Second Day) (observed, estimated)",
+    "2027-02-08": "Chinese New Year (Second Day) (observed, estimated)",
     "2027-02-20": "Declaration of Independence Day",
     "2027-03-09": "Eid al-Fitr (estimated)",
     "2027-03-10": "Eid al-Fitr (Second Day) (estimated)",
+    "2027-03-11": "Eid al-Fitr (Third Day) (estimated)",
     "2027-05-01": "Labor Day",
     "2027-05-16": "Eid al-Adha (estimated)",
     "2027-05-17": "Eid al-Adha (observed, estimated)",
@@ -1354,12 +1354,12 @@
     "2028-01-01": "New Year's Day",
     "2028-01-26": "Chinese New Year (estimated)",
     "2028-01-27": "Chinese New Year (Second Day) (estimated)",
-    "2028-01-28": "Beginning of Ramadan (estimated)",
     "2028-02-20": "Declaration of Independence Day",
     "2028-02-21": "Declaration of Independence Day (observed)",
     "2028-02-26": "Eid al-Fitr (estimated)",
     "2028-02-27": "Eid al-Fitr (Second Day) (estimated)",
-    "2028-02-28": "Eid al-Fitr (Second Day) (observed, estimated)",
+    "2028-02-28": "Eid al-Fitr (Third Day) (estimated)",
+    "2028-02-29": "Eid al-Fitr (Second Day) (observed, estimated)",
     "2028-05-01": "Labor Day",
     "2028-05-05": "Eid al-Adha (estimated)",
     "2028-05-09": "Vesak Day (estimated)",
@@ -1372,10 +1372,10 @@
     "2028-11-14": "Deepavali",
     "2028-12-25": "Christmas Day",
     "2029-01-01": "New Year's Day",
-    "2029-01-16": "Beginning of Ramadan (estimated)",
     "2029-02-13": "Chinese New Year (estimated)",
     "2029-02-14": "Chinese New Year (Second Day) (estimated); Eid al-Fitr (estimated)",
     "2029-02-15": "Eid al-Fitr (Second Day) (estimated)",
+    "2029-02-16": "Eid al-Fitr (Third Day) (estimated)",
     "2029-02-20": "Declaration of Independence Day",
     "2029-04-24": "Eid al-Adha (estimated)",
     "2029-05-01": "Labor Day",
@@ -1392,11 +1392,11 @@
     "2029-11-05": "Deepavali (observed)",
     "2029-12-25": "Christmas Day",
     "2030-01-01": "New Year's Day",
-    "2030-01-05": "Beginning of Ramadan (estimated)",
     "2030-02-03": "Chinese New Year (estimated)",
     "2030-02-04": "Chinese New Year (Second Day) (estimated); Eid al-Fitr (estimated)",
     "2030-02-05": "Eid al-Fitr (Second Day) (estimated)",
-    "2030-02-06": "Chinese New Year (observed, estimated)",
+    "2030-02-06": "Eid al-Fitr (Third Day) (estimated)",
+    "2030-02-07": "Chinese New Year (observed, estimated)",
     "2030-02-20": "Declaration of Independence Day",
     "2030-04-13": "Eid al-Adha (estimated)",
     "2030-05-01": "Labor Day",
@@ -1409,11 +1409,12 @@
     "2030-09-16": "Malaysia Day",
     "2030-10-25": "Deepavali",
     "2030-12-25": "Christmas Day",
-    "2030-12-26": "Beginning of Ramadan (estimated)",
     "2031-01-01": "New Year's Day",
     "2031-01-23": "Chinese New Year (estimated)",
     "2031-01-24": "Chinese New Year (Second Day) (estimated); Eid al-Fitr (estimated)",
     "2031-01-25": "Eid al-Fitr (Second Day) (estimated)",
+    "2031-01-26": "Eid al-Fitr (Third Day) (estimated)",
+    "2031-01-27": "Eid al-Fitr (Third Day) (observed, estimated)",
     "2031-02-20": "Declaration of Independence Day",
     "2031-04-02": "Eid al-Adha (estimated)",
     "2031-04-23": "Islamic New Year (estimated)",
@@ -1427,11 +1428,11 @@
     "2031-09-01": "National Day (observed)",
     "2031-09-16": "Malaysia Day",
     "2031-11-13": "Deepavali",
-    "2031-12-15": "Beginning of Ramadan (estimated)",
     "2031-12-25": "Christmas Day",
     "2032-01-01": "New Year's Day",
     "2032-01-14": "Eid al-Fitr (estimated)",
     "2032-01-15": "Eid al-Fitr (Second Day) (estimated)",
+    "2032-01-16": "Eid al-Fitr (Third Day) (estimated)",
     "2032-02-11": "Chinese New Year (estimated)",
     "2032-02-12": "Chinese New Year (Second Day) (estimated)",
     "2032-02-20": "Declaration of Independence Day",
@@ -1447,12 +1448,12 @@
     "2032-08-31": "National Day",
     "2032-09-16": "Malaysia Day",
     "2032-11-01": "Deepavali",
-    "2032-12-04": "Beginning of Ramadan (estimated)",
     "2032-12-25": "Christmas Day",
     "2033-01-01": "New Year's Day",
     "2033-01-02": "Eid al-Fitr (estimated)",
     "2033-01-03": "Eid al-Fitr (Second Day) (estimated)",
-    "2033-01-04": "Eid al-Fitr (observed, estimated)",
+    "2033-01-04": "Eid al-Fitr (Third Day) (estimated)",
+    "2033-01-05": "Eid al-Fitr (observed, estimated)",
     "2033-01-31": "Chinese New Year (estimated)",
     "2033-02-01": "Chinese New Year (Second Day) (estimated)",
     "2033-02-20": "Declaration of Independence Day",
@@ -1468,11 +1469,10 @@
     "2033-08-31": "National Day",
     "2033-09-16": "Malaysia Day",
     "2033-10-21": "Deepavali",
-    "2033-11-23": "Beginning of Ramadan (estimated)",
     "2033-12-23": "Eid al-Fitr (estimated)",
     "2033-12-24": "Eid al-Fitr (Second Day) (estimated)",
-    "2033-12-25": "Christmas Day",
-    "2033-12-26": "Christmas Day (observed)",
+    "2033-12-25": "Christmas Day; Eid al-Fitr (Third Day) (estimated)",
+    "2033-12-26": "Christmas Day (observed); Eid al-Fitr (Third Day) (observed, estimated)",
     "2034-01-01": "New Year's Day",
     "2034-01-02": "New Year's Day (observed)",
     "2034-02-19": "Chinese New Year (estimated)",
@@ -1488,10 +1488,9 @@
     "2034-08-31": "National Day",
     "2034-09-16": "Malaysia Day",
     "2034-11-09": "Deepavali",
-    "2034-11-12": "Beginning of Ramadan (estimated)",
-    "2034-11-13": "Beginning of Ramadan (observed, estimated)",
     "2034-12-12": "Eid al-Fitr (estimated)",
     "2034-12-13": "Eid al-Fitr (Second Day) (estimated)",
+    "2034-12-14": "Eid al-Fitr (Third Day) (estimated)",
     "2034-12-25": "Christmas Day",
     "2035-01-01": "New Year's Day",
     "2035-02-08": "Chinese New Year (estimated)",
@@ -1510,10 +1509,10 @@
     "2035-09-16": "Malaysia Day",
     "2035-09-17": "Malaysia Day (observed)",
     "2035-10-29": "Deepavali",
-    "2035-11-01": "Beginning of Ramadan (estimated)",
     "2035-12-01": "Eid al-Fitr (estimated)",
     "2035-12-02": "Eid al-Fitr (Second Day) (estimated)",
-    "2035-12-03": "Eid al-Fitr (Second Day) (observed, estimated)",
+    "2035-12-03": "Eid al-Fitr (Third Day) (estimated)",
+    "2035-12-04": "Eid al-Fitr (Second Day) (observed, estimated)",
     "2035-12-25": "Christmas Day",
     "2036-01-01": "New Year's Day",
     "2036-01-28": "Chinese New Year (estimated)",
@@ -1530,11 +1529,11 @@
     "2036-08-31": "National Day",
     "2036-09-01": "National Day (observed)",
     "2036-09-16": "Malaysia Day",
-    "2036-10-20": "Beginning of Ramadan (estimated)",
     "2036-11-16": "Deepavali",
     "2036-11-17": "Deepavali (observed)",
     "2036-11-19": "Eid al-Fitr (estimated)",
     "2036-11-20": "Eid al-Fitr (Second Day) (estimated)",
+    "2036-11-21": "Eid al-Fitr (Third Day) (estimated)",
     "2036-12-25": "Christmas Day",
     "2037-01-01": "New Year's Day",
     "2037-01-26": "Eid al-Adha (estimated)",
@@ -1549,11 +1548,11 @@
     "2037-08-24": "Birthday of the Governor of Malacca",
     "2037-08-31": "National Day",
     "2037-09-16": "Malaysia Day",
-    "2037-10-10": "Beginning of Ramadan (estimated)",
     "2037-11-05": "Deepavali",
     "2037-11-08": "Eid al-Fitr (estimated)",
     "2037-11-09": "Eid al-Fitr (Second Day) (estimated)",
-    "2037-11-10": "Eid al-Fitr (observed, estimated)",
+    "2037-11-10": "Eid al-Fitr (Third Day) (estimated)",
+    "2037-11-11": "Eid al-Fitr (observed, estimated)",
     "2037-12-25": "Christmas Day",
     "2038-01-01": "New Year's Day",
     "2038-01-16": "Eid al-Adha (estimated)",
@@ -1567,10 +1566,11 @@
     "2038-08-24": "Birthday of the Governor of Malacca",
     "2038-08-31": "National Day",
     "2038-09-16": "Malaysia Day",
-    "2038-09-30": "Beginning of Ramadan (estimated)",
     "2038-10-26": "Deepavali",
     "2038-10-29": "Eid al-Fitr (estimated)",
     "2038-10-30": "Eid al-Fitr (Second Day) (estimated)",
+    "2038-10-31": "Eid al-Fitr (Third Day) (estimated)",
+    "2038-11-01": "Eid al-Fitr (Third Day) (observed, estimated)",
     "2038-12-25": "Christmas Day",
     "2039-01-01": "New Year's Day",
     "2039-01-05": "Eid al-Adha (estimated)",
@@ -1587,9 +1587,9 @@
     "2039-08-24": "Birthday of the Governor of Malacca",
     "2039-08-31": "National Day",
     "2039-09-16": "Malaysia Day",
-    "2039-09-19": "Beginning of Ramadan (estimated)",
     "2039-10-19": "Eid al-Fitr (estimated)",
     "2039-10-20": "Eid al-Fitr (Second Day) (estimated)",
+    "2039-10-21": "Eid al-Fitr (Third Day) (estimated)",
     "2039-11-14": "Deepavali",
     "2039-12-25": "Christmas Day",
     "2039-12-26": "Eid al-Adha (estimated)",
@@ -1608,12 +1608,12 @@
     "2040-06-04": "Birthday of HM Yang di-Pertuan Agong",
     "2040-08-24": "Birthday of the Governor of Malacca",
     "2040-08-31": "National Day",
-    "2040-09-07": "Beginning of Ramadan (estimated)",
     "2040-09-16": "Malaysia Day",
     "2040-09-17": "Malaysia Day (observed)",
     "2040-10-07": "Eid al-Fitr (estimated)",
     "2040-10-08": "Eid al-Fitr (Second Day) (estimated)",
-    "2040-10-09": "Eid al-Fitr (observed, estimated)",
+    "2040-10-09": "Eid al-Fitr (Third Day) (estimated)",
+    "2040-10-10": "Eid al-Fitr (observed, estimated)",
     "2040-11-03": "Deepavali",
     "2040-12-14": "Eid al-Adha (estimated)",
     "2040-12-25": "Christmas Day",
@@ -1627,11 +1627,11 @@
     "2041-05-14": "Vesak Day (estimated)",
     "2041-06-03": "Birthday of HM Yang di-Pertuan Agong",
     "2041-08-24": "Birthday of the Governor of Malacca",
-    "2041-08-28": "Beginning of Ramadan (estimated)",
     "2041-08-31": "National Day",
     "2041-09-16": "Malaysia Day",
     "2041-09-26": "Eid al-Fitr (estimated)",
     "2041-09-27": "Eid al-Fitr (Second Day) (estimated)",
+    "2041-09-28": "Eid al-Fitr (Third Day) (estimated)",
     "2041-10-23": "Deepavali",
     "2041-12-04": "Eid al-Adha (estimated)",
     "2041-12-24": "Islamic New Year (estimated)",
@@ -1645,14 +1645,13 @@
     "2042-05-04": "Vesak Day (estimated)",
     "2042-05-05": "Vesak Day (observed, estimated)",
     "2042-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2042-08-17": "Beginning of Ramadan (estimated)",
-    "2042-08-18": "Beginning of Ramadan (observed, estimated)",
     "2042-08-24": "Birthday of the Governor of Malacca",
     "2042-08-25": "Birthday of the Governor of Malacca (observed)",
     "2042-08-31": "National Day",
     "2042-09-01": "National Day (observed)",
     "2042-09-15": "Eid al-Fitr (estimated)",
     "2042-09-16": "Eid al-Fitr (Second Day) (estimated); Malaysia Day",
+    "2042-09-17": "Eid al-Fitr (Third Day) (estimated)",
     "2042-11-11": "Deepavali",
     "2042-11-23": "Eid al-Adha (estimated)",
     "2042-11-24": "Eid al-Adha (observed, estimated)",
@@ -1667,11 +1666,12 @@
     "2043-05-01": "Labor Day",
     "2043-05-23": "Vesak Day (estimated)",
     "2043-06-01": "Birthday of HM Yang di-Pertuan Agong",
-    "2043-08-06": "Beginning of Ramadan (estimated)",
     "2043-08-24": "Birthday of the Governor of Malacca",
     "2043-08-31": "National Day",
     "2043-09-04": "Eid al-Fitr (estimated)",
     "2043-09-05": "Eid al-Fitr (Second Day) (estimated)",
+    "2043-09-06": "Eid al-Fitr (Third Day) (estimated)",
+    "2043-09-07": "Eid al-Fitr (Third Day) (observed, estimated)",
     "2043-09-16": "Malaysia Day",
     "2043-10-31": "Deepavali",
     "2043-11-12": "Eid al-Adha (estimated)",
@@ -1687,9 +1687,9 @@
     "2044-05-02": "Labor Day (observed)",
     "2044-05-12": "Vesak Day (estimated)",
     "2044-06-06": "Birthday of HM Yang di-Pertuan Agong",
-    "2044-07-26": "Beginning of Ramadan (estimated)",
     "2044-08-24": "Birthday of the Governor of Malacca; Eid al-Fitr (estimated)",
     "2044-08-25": "Eid al-Fitr (Second Day) (estimated)",
+    "2044-08-26": "Eid al-Fitr (Third Day) (estimated)",
     "2044-08-31": "National Day",
     "2044-09-16": "Malaysia Day",
     "2044-10-31": "Eid al-Adha (estimated)",
@@ -1705,9 +1705,9 @@
     "2045-02-20": "Declaration of Independence Day",
     "2045-05-01": "Labor Day; Vesak Day (estimated)",
     "2045-06-05": "Birthday of HM Yang di-Pertuan Agong",
-    "2045-07-15": "Beginning of Ramadan (estimated)",
     "2045-08-14": "Eid al-Fitr (estimated)",
     "2045-08-15": "Eid al-Fitr (Second Day) (estimated)",
+    "2045-08-16": "Eid al-Fitr (Third Day) (estimated)",
     "2045-08-24": "Birthday of the Governor of Malacca",
     "2045-08-31": "National Day",
     "2045-09-16": "Malaysia Day",
@@ -1724,9 +1724,10 @@
     "2046-05-20": "Vesak Day (estimated)",
     "2046-05-21": "Vesak Day (observed, estimated)",
     "2046-06-04": "Birthday of HM Yang di-Pertuan Agong",
-    "2046-07-05": "Beginning of Ramadan (estimated)",
     "2046-08-03": "Eid al-Fitr (estimated)",
     "2046-08-04": "Eid al-Fitr (Second Day) (estimated)",
+    "2046-08-05": "Eid al-Fitr (Third Day) (estimated)",
+    "2046-08-06": "Eid al-Fitr (Third Day) (observed, estimated)",
     "2046-08-24": "Birthday of the Governor of Malacca",
     "2046-08-31": "National Day",
     "2046-09-16": "Malaysia Day",
@@ -1744,9 +1745,9 @@
     "2047-05-01": "Labor Day",
     "2047-05-09": "Vesak Day (estimated)",
     "2047-06-03": "Birthday of HM Yang di-Pertuan Agong",
-    "2047-06-24": "Beginning of Ramadan (estimated)",
     "2047-07-24": "Eid al-Fitr (estimated)",
     "2047-07-25": "Eid al-Fitr (Second Day) (estimated)",
+    "2047-07-26": "Eid al-Fitr (Third Day) (estimated)",
     "2047-08-24": "Birthday of the Governor of Malacca",
     "2047-08-31": "National Day",
     "2047-09-16": "Malaysia Day",
@@ -1763,10 +1764,10 @@
     "2048-05-01": "Labor Day",
     "2048-05-27": "Vesak Day (estimated)",
     "2048-06-01": "Birthday of HM Yang di-Pertuan Agong",
-    "2048-06-12": "Beginning of Ramadan (estimated)",
     "2048-07-12": "Eid al-Fitr (estimated)",
     "2048-07-13": "Eid al-Fitr (Second Day) (estimated)",
-    "2048-07-14": "Eid al-Fitr (observed, estimated)",
+    "2048-07-14": "Eid al-Fitr (Third Day) (estimated)",
+    "2048-07-15": "Eid al-Fitr (observed, estimated)",
     "2048-08-24": "Birthday of the Governor of Malacca",
     "2048-08-31": "National Day",
     "2048-09-16": "Malaysia Day",
@@ -1782,10 +1783,10 @@
     "2049-05-01": "Labor Day",
     "2049-05-16": "Vesak Day (estimated)",
     "2049-05-17": "Vesak Day (observed, estimated)",
-    "2049-06-02": "Beginning of Ramadan (estimated)",
     "2049-06-07": "Birthday of HM Yang di-Pertuan Agong",
     "2049-07-01": "Eid al-Fitr (estimated)",
     "2049-07-02": "Eid al-Fitr (Second Day) (estimated)",
+    "2049-07-03": "Eid al-Fitr (Third Day) (estimated)",
     "2049-08-24": "Birthday of the Governor of Malacca",
     "2049-08-31": "National Day",
     "2049-09-08": "Eid al-Adha (estimated)",
@@ -1803,11 +1804,10 @@
     "2050-05-01": "Labor Day",
     "2050-05-02": "Labor Day (observed)",
     "2050-05-05": "Vesak Day (estimated)",
-    "2050-05-22": "Beginning of Ramadan (estimated)",
-    "2050-05-23": "Beginning of Ramadan (observed, estimated)",
     "2050-06-06": "Birthday of HM Yang di-Pertuan Agong",
     "2050-06-20": "Eid al-Fitr (estimated)",
     "2050-06-21": "Eid al-Fitr (Second Day) (estimated)",
+    "2050-06-22": "Eid al-Fitr (Third Day) (estimated)",
     "2050-08-24": "Birthday of the Governor of Malacca",
     "2050-08-28": "Eid al-Adha (estimated)",
     "2050-08-29": "Eid al-Adha (observed, estimated)",
diff --git a/snapshots/countries/MY_05.json b/snapshots/countries/MY_05.json
index feb11f7d..491b8c9c 100644
--- a/snapshots/countries/MY_05.json
+++ b/snapshots/countries/MY_05.json
@@ -1286,24 +1286,22 @@
     "2024-12-25": "Christmas Day",
     "2025-01-01": "New Year's Day",
     "2025-01-14": "Birthday of the Sultan of Negeri Sembilan",
-    "2025-01-27": "Isra' and Mi'raj (estimated)",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
+    "2025-01-27": "Isra' and Mi'raj",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
     "2025-02-11": "Thaipusam",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
-    "2025-04-01": "Eid al-Fitr (observed, estimated)",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
-    "2025-05-12": "Vesak Day (observed, estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-27": "Islamic New Year",
     "2025-08-31": "National Day",
     "2025-09-01": "National Day (observed)",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
-    "2025-11-18": "Deepavali",
+    "2025-10-20": "Deepavali",
     "2025-12-25": "Christmas Day",
     "2026-01-01": "New Year's Day",
     "2026-01-14": "Birthday of the Sultan of Negeri Sembilan",
diff --git a/snapshots/countries/MY_06.json b/snapshots/countries/MY_06.json
index 4dde8e25..af9e49b4 100644
--- a/snapshots/countries/MY_06.json
+++ b/snapshots/countries/MY_06.json
@@ -1282,25 +1282,23 @@
     "2024-10-31": "Deepavali",
     "2024-12-25": "Christmas Day",
     "2025-01-01": "New Year's Day",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
-    "2025-03-17": "Nuzul Al-Quran Day (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
-    "2025-04-01": "Eid al-Fitr (observed, estimated)",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
+    "2025-03-18": "Nuzul Al-Quran Day",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
-    "2025-05-12": "Vesak Day (observed, estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-05-22": "The Sultan of Pahang Hol",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-27": "Islamic New Year",
     "2025-07-30": "Birthday of the Sultan of Pahang",
     "2025-08-31": "National Day",
     "2025-09-01": "National Day (observed)",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
-    "2025-11-18": "Deepavali",
+    "2025-10-20": "Deepavali",
     "2025-12-25": "Christmas Day",
     "2026-01-01": "New Year's Day",
     "2026-02-17": "Chinese New Year (estimated)",
diff --git a/snapshots/countries/MY_07.json b/snapshots/countries/MY_07.json
index 5932b08f..96cd07a8 100644
--- a/snapshots/countries/MY_07.json
+++ b/snapshots/countries/MY_07.json
@@ -1353,26 +1353,24 @@
     "2024-10-31": "Deepavali",
     "2024-12-25": "Christmas Day",
     "2025-01-01": "New Year's Day",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
     "2025-02-11": "Thaipusam",
-    "2025-03-17": "Nuzul Al-Quran Day (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
-    "2025-04-01": "Eid al-Fitr (observed, estimated)",
+    "2025-03-18": "Nuzul Al-Quran Day",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
-    "2025-05-12": "Vesak Day (observed, estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-27": "Islamic New Year",
     "2025-07-07": "George Town Heritage Day",
     "2025-07-12": "Birthday of the Governor of Penang",
     "2025-08-31": "National Day",
     "2025-09-01": "National Day (observed)",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
-    "2025-11-18": "Deepavali",
+    "2025-10-20": "Deepavali",
     "2025-12-25": "Christmas Day",
     "2026-01-01": "New Year's Day",
     "2026-02-01": "Thaipusam",
diff --git a/snapshots/countries/MY_08.json b/snapshots/countries/MY_08.json
index 0ff197ce..65d985a9 100644
--- a/snapshots/countries/MY_08.json
+++ b/snapshots/countries/MY_08.json
@@ -1335,25 +1335,23 @@
     "2024-11-01": "Birthday of the Sultan of Perak",
     "2024-12-25": "Christmas Day",
     "2025-01-01": "New Year's Day",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
     "2025-02-11": "Thaipusam",
-    "2025-03-17": "Nuzul Al-Quran Day (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
-    "2025-04-01": "Eid al-Fitr (observed, estimated)",
+    "2025-03-18": "Nuzul Al-Quran Day",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
-    "2025-05-12": "Vesak Day (observed, estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-27": "Islamic New Year",
     "2025-08-31": "National Day",
     "2025-09-01": "National Day (observed)",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
+    "2025-10-20": "Deepavali",
     "2025-11-07": "Birthday of the Sultan of Perak",
-    "2025-11-18": "Deepavali",
     "2025-12-25": "Christmas Day",
     "2026-01-01": "New Year's Day",
     "2026-02-01": "Thaipusam",
diff --git a/snapshots/countries/MY_09.json b/snapshots/countries/MY_09.json
index 9eee1670..a2aef7b9 100644
--- a/snapshots/countries/MY_09.json
+++ b/snapshots/countries/MY_09.json
@@ -1289,26 +1289,25 @@
     "2024-09-16": "Malaysia Day; Prophet Muhammad's Birthday",
     "2024-10-31": "Deepavali",
     "2024-12-25": "Christmas Day",
-    "2025-01-27": "Isra' and Mi'raj (estimated)",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
-    "2025-03-17": "Nuzul Al-Quran Day (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
-    "2025-04-01": "Eid al-Fitr (observed, estimated)",
+    "2025-01-27": "Isra' and Mi'raj",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
+    "2025-03-18": "Nuzul Al-Quran Day",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
-    "2025-05-12": "Vesak Day (observed, estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-05-17": "Birthday of the Raja of Perlis",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-07": "Eid al-Adha (Second Day) (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-08": "Eid al-Adha (Second Day)",
+    "2025-06-09": "Eid al-Adha (Second Day) (observed)",
+    "2025-06-27": "Islamic New Year",
     "2025-08-31": "National Day",
     "2025-09-01": "National Day (observed)",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
-    "2025-11-18": "Deepavali",
+    "2025-10-20": "Deepavali",
     "2025-12-25": "Christmas Day",
     "2026-01-16": "Isra' and Mi'raj (estimated)",
     "2026-02-17": "Chinese New Year (estimated)",
diff --git a/snapshots/countries/MY_10.json b/snapshots/countries/MY_10.json
index 97d55bab..51f36fc1 100644
--- a/snapshots/countries/MY_10.json
+++ b/snapshots/countries/MY_10.json
@@ -1347,24 +1347,22 @@
     "2024-12-11": "Birthday of The Sultan of Selangor",
     "2024-12-25": "Christmas Day",
     "2025-01-01": "New Year's Day",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
     "2025-02-11": "Thaipusam",
-    "2025-03-17": "Nuzul Al-Quran Day (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
-    "2025-04-01": "Eid al-Fitr (observed, estimated)",
+    "2025-03-18": "Nuzul Al-Quran Day",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
-    "2025-05-12": "Vesak Day (observed, estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-27": "Islamic New Year",
     "2025-08-31": "National Day",
     "2025-09-01": "National Day (observed)",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
-    "2025-11-18": "Deepavali",
+    "2025-10-20": "Deepavali",
     "2025-12-11": "Birthday of The Sultan of Selangor",
     "2025-12-25": "Christmas Day",
     "2026-01-01": "New Year's Day",
diff --git a/snapshots/countries/MY_11.json b/snapshots/countries/MY_11.json
index 2e094fa6..8a337530 100644
--- a/snapshots/countries/MY_11.json
+++ b/snapshots/countries/MY_11.json
@@ -1401,27 +1401,27 @@
     "2024-09-16": "Malaysia Day; Prophet Muhammad's Birthday",
     "2024-10-31": "Deepavali",
     "2024-12-25": "Christmas Day",
-    "2025-01-27": "Isra' and Mi'raj (estimated)",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
+    "2025-01-27": "Isra' and Mi'raj",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
     "2025-03-04": "Anniversary of the Installation of the Sultan of Terengganu",
-    "2025-03-17": "Nuzul Al-Quran Day (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
+    "2025-03-18": "Nuzul Al-Quran Day",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-04-26": "Birthday of the Sultan of Terengganu",
     "2025-04-27": "Birthday of the Sultan of Terengganu (observed)",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-05": "Arafat Day (estimated)",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-07": "Eid al-Adha (Second Day) (estimated)",
-    "2025-06-08": "Eid al-Adha (Second Day) (observed, estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-06": "Arafat Day",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-08": "Eid al-Adha (Second Day)",
+    "2025-06-09": "Eid al-Adha (observed)",
+    "2025-06-27": "Islamic New Year",
     "2025-08-31": "National Day",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
-    "2025-11-18": "Deepavali",
+    "2025-10-20": "Deepavali",
     "2025-12-25": "Christmas Day",
     "2026-01-16": "Isra' and Mi'raj (estimated)",
     "2026-02-17": "Chinese New Year (estimated)",
diff --git a/snapshots/countries/MY_12.json b/snapshots/countries/MY_12.json
index dbc3964e..49ad6cd7 100644
--- a/snapshots/countries/MY_12.json
+++ b/snapshots/countries/MY_12.json
@@ -1392,26 +1392,24 @@
     "2024-12-24": "Christmas Eve",
     "2024-12-25": "Christmas Day",
     "2025-01-01": "New Year's Day",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
-    "2025-04-01": "Eid al-Fitr (observed, estimated)",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-04-18": "Good Friday",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
-    "2025-05-12": "Vesak Day (observed, estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-05-30": "Pesta Kaamatan",
     "2025-05-31": "Pesta Kaamatan",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-27": "Islamic New Year",
     "2025-08-31": "National Day",
     "2025-09-01": "National Day (observed)",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
     "2025-10-04": "Birthday of the Governor of Sabah",
-    "2025-11-18": "Deepavali",
+    "2025-10-20": "Deepavali",
     "2025-12-24": "Christmas Eve",
     "2025-12-25": "Christmas Day",
     "2026-01-01": "New Year's Day",
diff --git a/snapshots/countries/MY_13.json b/snapshots/countries/MY_13.json
index adfe0afe..6a4b0d19 100644
--- a/snapshots/countries/MY_13.json
+++ b/snapshots/countries/MY_13.json
@@ -1297,24 +1297,22 @@
     "2024-10-12": "Birthday of the Governor of Sarawak",
     "2024-12-25": "Christmas Day",
     "2025-01-01": "New Year's Day",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
-    "2025-04-01": "Eid al-Fitr (observed, estimated)",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-04-18": "Good Friday",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
-    "2025-05-12": "Vesak Day (observed, estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-06-01": "Dayak Festival Day",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong; Dayak Festival Day",
     "2025-06-03": "Dayak Festival Day (observed)",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-27": "Islamic New Year",
     "2025-07-22": "Sarawak Independence Day",
     "2025-08-31": "National Day",
     "2025-09-01": "National Day (observed)",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
     "2025-10-11": "Birthday of the Governor of Sarawak",
     "2025-12-25": "Christmas Day",
diff --git a/snapshots/countries/MY_14.json b/snapshots/countries/MY_14.json
index 4bc8c61c..f9c0b003 100644
--- a/snapshots/countries/MY_14.json
+++ b/snapshots/countries/MY_14.json
@@ -1317,25 +1317,23 @@
     "2024-10-31": "Deepavali",
     "2024-12-25": "Christmas Day",
     "2025-01-01": "New Year's Day",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
     "2025-02-01": "Federal Territory Day",
     "2025-02-11": "Thaipusam",
-    "2025-03-17": "Nuzul Al-Quran Day (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
-    "2025-04-01": "Eid al-Fitr (observed, estimated)",
+    "2025-03-18": "Nuzul Al-Quran Day",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
-    "2025-05-12": "Vesak Day (observed, estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-27": "Islamic New Year",
     "2025-08-31": "National Day",
     "2025-09-01": "National Day (observed)",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
-    "2025-11-18": "Deepavali",
+    "2025-10-20": "Deepavali",
     "2025-12-25": "Christmas Day",
     "2026-01-01": "New Year's Day",
     "2026-02-01": "Federal Territory Day; Thaipusam",
diff --git a/snapshots/countries/MY_15.json b/snapshots/countries/MY_15.json
index 8b4281f4..a22e196c 100644
--- a/snapshots/countries/MY_15.json
+++ b/snapshots/countries/MY_15.json
@@ -1306,26 +1306,24 @@
     "2024-10-31": "Deepavali",
     "2024-12-25": "Christmas Day",
     "2025-01-01": "New Year's Day",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
     "2025-02-01": "Federal Territory Day",
-    "2025-03-17": "Nuzul Al-Quran Day (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
-    "2025-04-01": "Eid al-Fitr (observed, estimated)",
+    "2025-03-18": "Nuzul Al-Quran Day",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
-    "2025-05-12": "Vesak Day (observed, estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-05-30": "Pesta Kaamatan",
     "2025-05-31": "Pesta Kaamatan",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-27": "Islamic New Year",
     "2025-08-31": "National Day",
     "2025-09-01": "National Day (observed)",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
-    "2025-11-18": "Deepavali",
+    "2025-10-20": "Deepavali",
     "2025-12-25": "Christmas Day",
     "2026-01-01": "New Year's Day",
     "2026-02-01": "Federal Territory Day",
diff --git a/snapshots/countries/MY_16.json b/snapshots/countries/MY_16.json
index 4bc8c61c..f9c0b003 100644
--- a/snapshots/countries/MY_16.json
+++ b/snapshots/countries/MY_16.json
@@ -1317,25 +1317,23 @@
     "2024-10-31": "Deepavali",
     "2024-12-25": "Christmas Day",
     "2025-01-01": "New Year's Day",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
     "2025-02-01": "Federal Territory Day",
     "2025-02-11": "Thaipusam",
-    "2025-03-17": "Nuzul Al-Quran Day (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
-    "2025-04-01": "Eid al-Fitr (observed, estimated)",
+    "2025-03-18": "Nuzul Al-Quran Day",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
-    "2025-05-12": "Vesak Day (observed, estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-27": "Islamic New Year",
     "2025-08-31": "National Day",
     "2025-09-01": "National Day (observed)",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
-    "2025-11-18": "Deepavali",
+    "2025-10-20": "Deepavali",
     "2025-12-25": "Christmas Day",
     "2026-01-01": "New Year's Day",
     "2026-02-01": "Federal Territory Day; Thaipusam",
diff --git a/snapshots/countries/MY_COMMON.json b/snapshots/countries/MY_COMMON.json
index d2b5c61a..94b30478 100644
--- a/snapshots/countries/MY_COMMON.json
+++ b/snapshots/countries/MY_COMMON.json
@@ -933,20 +933,18 @@
     "2024-08-31": "National Day",
     "2024-09-16": "Malaysia Day; Prophet Muhammad's Birthday",
     "2024-12-25": "Christmas Day",
-    "2025-01-29": "Chinese New Year (estimated)",
-    "2025-01-30": "Chinese New Year (Second Day) (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (Second Day) (estimated)",
-    "2025-04-01": "Eid al-Fitr (observed, estimated)",
+    "2025-01-29": "Chinese New Year",
+    "2025-01-30": "Chinese New Year (Second Day)",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr (Second Day)",
     "2025-05-01": "Labor Day",
-    "2025-05-11": "Vesak Day (estimated)",
-    "2025-05-12": "Vesak Day (observed, estimated)",
+    "2025-05-12": "Vesak Day",
     "2025-06-02": "Birthday of HM Yang di-Pertuan Agong",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-27": "Islamic New Year",
     "2025-08-31": "National Day",
     "2025-09-01": "National Day (observed)",
-    "2025-09-04": "Prophet Muhammad's Birthday (estimated)",
+    "2025-09-05": "Prophet Muhammad's Birthday",
     "2025-09-16": "Malaysia Day",
     "2025-12-25": "Christmas Day",
     "2026-02-17": "Chinese New Year (estimated)",


Test patch:
diff --git a/requirements/tests.txt b/requirements/tests.txt
index 3688e033..010295f7 100644
--- a/requirements/tests.txt
+++ b/requirements/tests.txt
@@ -3,7 +3,7 @@
 coverage==7.6.12
 importlib-metadata==8.6.1
 numpy<2.1.0; python_version < '3.10'
-numpy==2.2.2; python_version >= '3.10'
+numpy==2.2.3; python_version >= '3.10'
 polib==1.2.0
 pytest-cov==6.0.0
 pytest-xdist==3.6.1
diff --git a/tests/countries/test_azerbaijan.py b/tests/countries/test_azerbaijan.py
index 3464d9c8..083e0f65 100644
--- a/tests/countries/test_azerbaijan.py
+++ b/tests/countries/test_azerbaijan.py
@@ -35,6 +35,8 @@ class TestAzerbaijan(CommonCountryTests, WorkingDayTests, TestCase):
             "2019-12-27",
             "2024-02-07",
             "2025-01-29",
+            "2025-03-27",
+            "2025-03-28",
             "2072-01-05",
         )
 
diff --git a/tests/countries/test_hongkong.py b/tests/countries/test_hongkong.py
index e946485f..cafe80bd 100644
--- a/tests/countries/test_hongkong.py
+++ b/tests/countries/test_hongkong.py
@@ -476,7 +476,7 @@ class TestHongKong(CommonCountryTests, TestCase):
             "2022-05-08",
             "2023-05-26",
             "2024-05-15",
-            "2025-05-04",
+            "2025-05-05",
             "2026-05-24",
             "2027-05-13",
             "2028-05-02",
@@ -488,10 +488,7 @@ class TestHongKong(CommonCountryTests, TestCase):
             "2034-05-25",
             "2035-05-15",
         )
-        obs_dt = (
-            "2022-05-09",
-            "2025-05-05",
-        )
+        obs_dt = ("2022-05-09",)
         self.assertHolidayName(name, range(2022, 2050))
         self.assertHolidayName(name_observed, obs_dt)
         self.assertNoHolidayName(name, range(1963, 2022))
@@ -520,7 +517,7 @@ class TestHongKong(CommonCountryTests, TestCase):
             "2023-05-26",
             "2024-05-15",
         )
-        exception_years = {2002, 2005, 2019, 2022, 2025, 2026, 2029, 2032, 2046, 2049}
+        exception_years = {2002, 2005, 2019, 2022, 2026, 2029, 2032, 2046, 2049}
         self.assertHolidayName(
             name_following,
             self.opt_holidays,
@@ -528,7 +525,6 @@ class TestHongKong(CommonCountryTests, TestCase):
             "2005-05-16",
             "2019-05-13",
             "2022-05-09",
-            "2025-05-05",
         )
         self.assertHolidayName(
             name, self.opt_holidays, set(range(1999, 2050)).difference(exception_years)
@@ -1268,8 +1264,7 @@ class TestHongKong(CommonCountryTests, TestCase):
             ("2025-01-31", "農曆年初三"),
             ("2025-04-04", "清明節"),
             ("2025-05-01", "勞動節"),
-            ("2025-05-04", "佛誕"),
-            ("2025-05-05", "佛誕（慶祝）"),
+            ("2025-05-05", "佛誕"),
             ("2025-05-31", "端午節"),
             ("2025-07-01", "香港特別行政區成立紀念日"),
             ("2025-10-01", "國慶日"),
@@ -1409,7 +1404,7 @@ class TestHongKong(CommonCountryTests, TestCase):
             ("2025-04-19", "耶穌受難節翌日"),
             ("2025-04-21", "復活節星期一"),
             ("2025-05-01", "勞動節"),
-            ("2025-05-05", "佛誕翌日"),
+            ("2025-05-05", "佛誕"),
             ("2025-05-31", "端午節"),
             ("2025-07-01", "香港特別行政區成立紀念日"),
             ("2025-10-01", "國慶日"),
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"),
         )
diff --git a/tests/countries/test_malaysia.py b/tests/countries/test_malaysia.py
index dd5abdde..89f43bc6 100644
--- a/tests/countries/test_malaysia.py
+++ b/tests/countries/test_malaysia.py
@@ -21,7 +21,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
     def setUpClass(cls):
         super().setUpClass(Malaysia, years=range(1952, 2050))
         cls.subdiv_holidays = {
-            subdiv: Malaysia(subdiv=subdiv, years=range(2000, 2025))
+            subdiv: Malaysia(subdiv=subdiv, years=range(2000, 2050))
             for subdiv in Malaysia.subdivisions
         }
 
@@ -132,7 +132,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
         for subdiv, holidays in self.subdiv_holidays.items():
             if subdiv in {"04", "05", "06", "07", "08", "10", "12", "13", "14", "15", "16"}:
                 self.assertHolidayName(
-                    name, holidays, (f"{year}-01-01" for year in range(2000, 2025))
+                    name, holidays, (f"{year}-01-01" for year in range(2000, 2050))
                 )
             else:
                 self.assertNoHolidayName(name, holidays)
@@ -143,7 +143,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
         for subdiv, holidays in self.subdiv_holidays.items():
             if subdiv in {"14", "15", "16"}:
                 self.assertHolidayName(
-                    name, holidays, (f"{year}-02-01" for year in range(2000, 2025))
+                    name, holidays, (f"{year}-02-01" for year in range(2000, 2050))
                 )
                 self.assertNoHolidayName(name, Malaysia(subdiv=subdiv, years=1973))
             else:
@@ -175,8 +175,9 @@ class TestMalaysia(CommonCountryTests, TestCase):
                     "2022-04-15",
                     "2023-04-07",
                     "2024-03-29",
+                    "2025-04-18",
                 )
-                self.assertHolidayName(name, holidays, range(2000, 2025))
+                self.assertHolidayName(name, holidays, range(2000, 2050))
             else:
                 self.assertNoHolidayName(name, holidays)
 
@@ -188,8 +189,8 @@ class TestMalaysia(CommonCountryTests, TestCase):
                 self.assertHolidayName(
                     name,
                     holidays,
-                    (f"{year}-05-30" for year in range(2000, 2025)),
-                    (f"{year}-05-31" for year in range(2000, 2025)),
+                    (f"{year}-05-30" for year in range(2000, 2050)),
+                    (f"{year}-05-31" for year in range(2000, 2050)),
                 )
             else:
                 self.assertNoHolidayName(name, holidays)
@@ -211,6 +212,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
             "2022-06-06",
             "2023-06-05",
             "2024-06-03",
+            "2025-06-02",
         )
         self.assertHolidayName(name, range(1952, 2050))
 
@@ -234,6 +236,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
             "2022-10-24",
             "2023-11-12",
             "2024-10-31",
+            "2025-10-20",
         )
 
         for subdiv, holidays in self.subdiv_holidays.items():
@@ -248,7 +251,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
     def test_thaipusam(self):
         name = "Hari Thaipusam"
         self.assertNoHolidayName(name)
-        dt = (
+        dt_1 = (
             "2012-01-08",
             "2013-02-25",
             "2014-02-14",
@@ -259,17 +262,21 @@ class TestMalaysia(CommonCountryTests, TestCase):
             "2019-01-21",
             "2020-02-08",
             "2021-01-28",
+        )
+        dt_2 = (
             "2022-01-18",
             "2023-02-05",
             "2024-01-25",
+            "2025-02-11",
         )
 
         for subdiv, holidays in self.subdiv_holidays.items():
             if subdiv in {"01", "05", "07", "08", "10", "14", "16"}:
-                self.assertHolidayName(name, holidays, dt)
-                self.assertHolidayName(name, holidays, range(2000, 2025))
+                self.assertHolidayName(name, holidays, dt_1, dt_2)
+                self.assertHolidayName(name, holidays, range(2000, 2050))
             elif subdiv == "02":
-                self.assertHolidayName(name, holidays, "2022-01-18", "2023-02-05", "2024-01-25")
+                self.assertHolidayName(name, holidays, dt_2)
+                self.assertHolidayName(name, holidays, range(2022, 2050))
                 self.assertNoHolidayName(name, holidays, range(2000, 2022))
             else:
                 self.assertNoHolidayName(name, holidays)
@@ -291,6 +298,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
             "2022-07-30",
             "2023-07-19",
             "2024-07-07",
+            "2025-06-27",
         )
         self.assertNoHolidayName(name, range(1952, 1995))
 
@@ -312,6 +320,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
             "2022-10-10",
             "2023-09-28",
             "2024-09-16",
+            "2025-09-05",
         )
 
     def test_eid_al_fitr(self):
@@ -331,6 +340,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
             "2022-05-02",
             "2023-04-22",
             "2024-04-10",
+            "2025-03-31",
         )
 
     def test_eid_al_fitr_second_day(self):
@@ -350,6 +360,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
             "2022-05-03",
             "2023-04-23",
             "2024-04-11",
+            "2025-04-01",
         )
 
     def test_eid_al_adha(self):
@@ -369,12 +380,13 @@ class TestMalaysia(CommonCountryTests, TestCase):
             "2022-07-10",
             "2023-06-29",
             "2024-06-17",
+            "2025-06-07",
         )
 
     def test_isra_and_miraj(self):
         name = "Israk dan Mikraj"
         self.assertNoHolidayName(name)
-        dt = (
+        dt_1 = (
             "2012-06-17",
             "2013-06-06",
             "2014-05-27",
@@ -389,20 +401,20 @@ class TestMalaysia(CommonCountryTests, TestCase):
             "2023-02-18",
             "2024-02-08",
         )
+        dt_2 = (
+            "2020-03-22",
+            "2021-03-11",
+            "2022-03-01",
+            "2023-02-18",
+            "2024-02-08",
+            "2025-01-27",
+        )
 
         for subdiv, holidays in self.subdiv_holidays.items():
             if subdiv in {"02", "05", "09"}:
-                self.assertHolidayName(name, holidays, dt)
+                self.assertHolidayName(name, holidays, dt_1, dt_2)
             elif subdiv == "11":
-                self.assertHolidayName(
-                    name,
-                    holidays,
-                    "2020-03-22",
-                    "2021-03-11",
-                    "2022-03-01",
-                    "2023-02-18",
-                    "2024-02-08",
-                )
+                self.assertHolidayName(name, holidays, dt_2)
                 self.assertNoHolidayName(name, holidays, range(2000, 2020))
             else:
                 self.assertNoHolidayName(name, holidays)
@@ -410,7 +422,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
     def test_beginning_of_ramadan(self):
         name = "Awal Ramadan"
         self.assertNoHolidayName(name)
-        dt = (
+        dt_1 = (
             "2012-07-20",
             "2013-07-09",
             "2014-06-29",
@@ -425,10 +437,26 @@ class TestMalaysia(CommonCountryTests, TestCase):
             "2023-03-23",
             "2024-03-12",
         )
+        dt_2 = ("2025-03-02",)
+
+        for subdiv, holidays in self.subdiv_holidays.items():
+            if subdiv in {"01", "02"}:
+                self.assertHolidayName(name, holidays, dt_1, dt_2)
+            elif subdiv == "04":
+                self.assertHolidayName(name, holidays, dt_1)
+                self.assertNoHolidayName(name, holidays, range(2025, 2050))
+            else:
+                self.assertNoHolidayName(name, holidays)
+
+    def test_eid_al_fitr_third_day(self):
+        name = "Hari Raya Puasa (Hari Ketiga)"
+        self.assertNoHolidayName(name)
+        dt = ("2025-04-02",)
 
         for subdiv, holidays in self.subdiv_holidays.items():
-            if subdiv in {"01", "02", "04"}:
+            if subdiv == "04":
                 self.assertHolidayName(name, holidays, dt)
+                self.assertNoHolidayName(name, holidays, range(2000, 2025))
             else:
                 self.assertNoHolidayName(name, holidays)
 
@@ -449,6 +477,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
             "2022-04-19",
             "2023-04-08",
             "2024-03-28",
+            "2025-03-18",
         )
 
         for subdiv, holidays in self.subdiv_holidays.items():
@@ -460,7 +489,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
     def test_arafat_day(self):
         name = "Hari Arafah"
         self.assertNoHolidayName(name)
-        dt = (
+        dt_1 = (
             "2012-10-25",
             "2013-10-14",
             "2014-10-04",
@@ -472,15 +501,18 @@ class TestMalaysia(CommonCountryTests, TestCase):
             "2020-07-30",
             "2021-07-19",
             "2022-07-09",
+        )
+        dt_2 = (
             "2023-06-28",
             "2024-06-16",
+            "2025-06-06",
         )
 
         for subdiv, holidays in self.subdiv_holidays.items():
             if subdiv == "11":
-                self.assertHolidayName(name, holidays, dt)
+                self.assertHolidayName(name, holidays, dt_1, dt_2)
             elif subdiv == "03":
-                self.assertHolidayName(name, holidays, "2023-06-28", "2024-06-16")
+                self.assertHolidayName(name, holidays, dt_2)
                 self.assertNoHolidayName(name, holidays, range(2000, 2023))
             else:
                 self.assertNoHolidayName(name, holidays)
@@ -546,7 +578,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
         for subdiv, holidays in self.subdiv_holidays.items():
             if subdiv == "01":
                 self.assertHolidayName(
-                    name, holidays, (f"{year}-03-23" for year in range(2015, 2025))
+                    name, holidays, (f"{year}-03-23" for year in range(2015, 2050))
                 )
                 self.assertNoHolidayName(name, holidays, range(2000, 2015))
             else:
@@ -619,8 +651,8 @@ class TestMalaysia(CommonCountryTests, TestCase):
                 self.assertHolidayName(
                     name,
                     holidays,
-                    (f"{year}-09-29" for year in range(2023, 2025)),
-                    (f"{year}-09-30" for year in range(2023, 2025)),
+                    (f"{year}-09-29" for year in range(2023, 2050)),
+                    (f"{year}-09-30" for year in range(2023, 2050)),
                 )
                 self.assertNoHolidayName(name, holidays, range(2000, 2010))
             else:
@@ -632,7 +664,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
         for subdiv, holidays in self.subdiv_holidays.items():
             if subdiv == "04":
                 self.assertHolidayName(
-                    name, holidays, (f"{year}-02-20" for year in range(2024, 2025))
+                    name, holidays, (f"{year}-02-20" for year in range(2024, 2050))
                 )
                 self.assertNoHolidayName(name, holidays, range(2000, 2024))
             else:
@@ -646,7 +678,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
                 self.assertHolidayName(
                     name, holidays, (f"{year}-04-15" for year in range(2000, 2024))
                 )
-                self.assertNoHolidayName(name, holidays, range(2024, 2025))
+                self.assertNoHolidayName(name, holidays, range(2024, 2050))
                 self.assertNoHolidayName(name, Malaysia(subdiv=subdiv, years=1988))
             else:
                 self.assertNoHolidayName(name, holidays)
@@ -657,7 +689,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
         for subdiv, holidays in self.subdiv_holidays.items():
             if subdiv == "04":
                 self.assertHolidayName(
-                    name, holidays, (f"{year}-08-24" for year in range(2020, 2025))
+                    name, holidays, (f"{year}-08-24" for year in range(2020, 2050))
                 )
                 self.assertHolidayName(
                     name,
@@ -681,7 +713,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
         for subdiv, holidays in self.subdiv_holidays.items():
             if subdiv == "05":
                 self.assertHolidayName(
-                    name, holidays, (f"{year}-01-14" for year in range(2009, 2025))
+                    name, holidays, (f"{year}-01-14" for year in range(2009, 2050))
                 )
                 self.assertNoHolidayName(name, holidays, range(2000, 2009))
             else:
@@ -695,7 +727,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
                 self.assertHolidayName(
                     name,
                     holidays,
-                    (f"{year}-05-22" for year in range(2020, 2025)),
+                    (f"{year}-05-22" for year in range(2020, 2050)),
                     (f"{year}-05-07" for year in range(2000, 2020)),
                 )
                 self.assertNoHolidayName(name, Malaysia(subdiv=subdiv, years=1974))
@@ -710,7 +742,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
                 self.assertHolidayName(
                     name,
                     holidays,
-                    (f"{year}-07-30" for year in range(2019, 2025)),
+                    (f"{year}-07-30" for year in range(2019, 2050)),
                     (f"{year}-10-24" for year in range(2000, 2019)),
                 )
                 self.assertNoHolidayName(name, Malaysia(subdiv=subdiv, years=1974))
@@ -723,7 +755,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
         for subdiv, holidays in self.subdiv_holidays.items():
             if subdiv == "07":
                 self.assertHolidayName(
-                    name, holidays, (f"{year}-07-07" for year in range(2009, 2025))
+                    name, holidays, (f"{year}-07-07" for year in range(2009, 2050))
                 )
                 self.assertNoHolidayName(name, holidays, range(2000, 2009))
             else:
@@ -750,8 +782,9 @@ class TestMalaysia(CommonCountryTests, TestCase):
                     "2022-07-09",
                     "2023-07-08",
                     "2024-07-13",
+                    "2025-07-12",
                 )
-                self.assertHolidayName(name, holidays, range(2000, 2025))
+                self.assertHolidayName(name, holidays, range(2000, 2050))
             else:
                 self.assertNoHolidayName(name, holidays)
 
@@ -773,6 +806,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
                     "2022-11-04",
                     "2023-11-03",
                     "2024-11-01",
+                    "2025-11-07",
                 )
             else:
                 self.assertNoHolidayName(name, holidays)
@@ -786,7 +820,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
                     name,
                     holidays,
                     (f"{year}-05-17" for year in range(2000, 2018)),
-                    (f"{year}-05-17" for year in range(2022, 2025)),
+                    (f"{year}-05-17" for year in range(2022, 2050)),
                     (f"{year}-07-17" for year in range(2018, 2022)),
                 )
                 self.assertNoHolidayName(name, Malaysia(subdiv=subdiv, years=1999))
@@ -799,7 +833,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
         for subdiv, holidays in self.subdiv_holidays.items():
             if subdiv == "10":
                 self.assertHolidayName(
-                    name, holidays, (f"{year}-12-11" for year in range(2000, 2025))
+                    name, holidays, (f"{year}-12-11" for year in range(2000, 2050))
                 )
             else:
                 self.assertNoHolidayName(name, holidays)
@@ -810,7 +844,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
         for subdiv, holidays in self.subdiv_holidays.items():
             if subdiv == "11":
                 self.assertHolidayName(
-                    name, holidays, (f"{year}-03-04" for year in range(2000, 2025))
+                    name, holidays, (f"{year}-03-04" for year in range(2000, 2050))
                 )
                 self.assertNoHolidayName(name, Malaysia(subdiv=subdiv, years=1999))
             else:
@@ -822,7 +856,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
         for subdiv, holidays in self.subdiv_holidays.items():
             if subdiv == "11":
                 self.assertHolidayName(
-                    name, holidays, (f"{year}-04-26" for year in range(2000, 2025))
+                    name, holidays, (f"{year}-04-26" for year in range(2000, 2050))
                 )
                 self.assertNoHolidayName(name, Malaysia(subdiv=subdiv, years=1999))
             else:
@@ -849,8 +883,9 @@ class TestMalaysia(CommonCountryTests, TestCase):
                     "2022-10-01",
                     "2023-10-07",
                     "2024-10-05",
+                    "2025-10-04",
                 )
-                self.assertHolidayName(name, holidays, range(2000, 2025))
+                self.assertHolidayName(name, holidays, range(2000, 2050))
             else:
                 self.assertNoHolidayName(name, holidays)
 
@@ -860,7 +895,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
         for subdiv, holidays in self.subdiv_holidays.items():
             if subdiv == "12":
                 self.assertHolidayName(
-                    name, holidays, (f"{year}-12-24" for year in range(2019, 2025))
+                    name, holidays, (f"{year}-12-24" for year in range(2019, 2050))
                 )
                 self.assertNoHolidayName(name, holidays, range(2000, 2019))
             else:
@@ -874,8 +909,8 @@ class TestMalaysia(CommonCountryTests, TestCase):
                 self.assertHolidayName(
                     name,
                     holidays,
-                    (f"{year}-06-01" for year in range(2000, 2025)),
-                    (f"{year}-06-02" for year in range(2000, 2025)),
+                    (f"{year}-06-01" for year in range(2000, 2050)),
+                    (f"{year}-06-02" for year in range(2000, 2050)),
                 )
                 self.assertNoHolidayName(name, Malaysia(subdiv=subdiv, years=1964))
             else:
@@ -902,8 +937,9 @@ class TestMalaysia(CommonCountryTests, TestCase):
                     "2022-10-08",
                     "2023-10-14",
                     "2024-10-12",
+                    "2025-10-11",
                 )
-                self.assertHolidayName(name, holidays, range(2000, 2025))
+                self.assertHolidayName(name, holidays, range(2000, 2050))
             else:
                 self.assertNoHolidayName(name, holidays)
 
@@ -913,7 +949,7 @@ class TestMalaysia(CommonCountryTests, TestCase):
         for subdiv, holidays in self.subdiv_holidays.items():
             if subdiv == "13":
                 self.assertHolidayName(
-                    name, holidays, (f"{year}-07-22" for year in range(2017, 2025))
+                    name, holidays, (f"{year}-07-22" for year in range(2017, 2050))
                 )
                 self.assertNoHolidayName(name, holidays, range(2000, 2017))
             else: