Repository: vacanza/holidays
Pull request #2263 (2025-02-02 15:49:19)

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


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

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


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

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


```diff
@@            Coverage Diff            @@
##               dev     #2263   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          199       199           
  Lines        12134     12144   +10     
  Branches      1731      1731           
=========================================
+ Hits         12134     12144   +10     
```

</details>

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

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

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



Patch:
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
index 58caba26..c9847093 100644
--- a/CONTRIBUTING.rst
+++ b/CONTRIBUTING.rst
@@ -52,7 +52,7 @@ If you want to retrieve uncovered lines too:
 
     $ make coverage
 
-You can specific tests using ``pytest`` command:
+You can run specific tests using the ``pytest`` command:
 
 .. code-block:: shell
 
diff --git a/README.rst b/README.rst
index f90249d7..2550e14d 100644
--- a/README.rst
+++ b/README.rst
@@ -903,8 +903,8 @@ All other default values are highlighted with bold:
    * - United Arab Emirates
      - AE
      -
-     - **ar**, en_US
-     -
+     - **ar**, en_US, th
+     - GOVERNMENT, OPTIONAL
    * - United Kingdom
      - GB
      - Subdivisions: ENG (England), NIR (Northern Ireland), SCT (Scotland), WLS (Wales)
diff --git a/holidays/countries/ukraine.py b/holidays/countries/ukraine.py
index 23e18ea1..42013bac 100644
--- a/holidays/countries/ukraine.py
+++ b/holidays/countries/ukraine.py
@@ -98,7 +98,7 @@ class Ukraine(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Sta
                 else tr("День перемоги над нацизмом у Другій світовій війні (День перемоги)")
                 if self._year >= 2016
                 # Victory Day.
-                else tr("День перемоги")
+                else tr("День Перемоги")
             )
             dts_observed.add(
                 self._add_world_war_two_victory_day(name, is_western=(self._year >= 2024))
diff --git a/holidays/countries/united_arab_emirates.py b/holidays/countries/united_arab_emirates.py
index 83ca817a..f151fa40 100644
--- a/holidays/countries/united_arab_emirates.py
+++ b/holidays/countries/united_arab_emirates.py
@@ -13,32 +13,59 @@
 from gettext import gettext as tr
 
 from holidays.calendars import _CustomIslamicHolidays
-from holidays.calendars.gregorian import APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, FRI, SAT, SUN
-from holidays.groups import InternationalHolidays, IslamicHolidays
+from holidays.calendars.gregorian import (
+    FEB,
+    MAR,
+    APR,
+    MAY,
+    JUN,
+    JUL,
+    AUG,
+    SEP,
+    OCT,
+    NOV,
+    DEC,
+    FRI,
+    SAT,
+    SUN,
+)
+from holidays.constants import GOVERNMENT, OPTIONAL, PUBLIC
+from holidays.groups import InternationalHolidays, IslamicHolidays, StaticHolidays
 from holidays.holiday_base import HolidayBase
 
 
-class UnitedArabEmirates(HolidayBase, InternationalHolidays, IslamicHolidays):
+class UnitedArabEmirates(HolidayBase, InternationalHolidays, IslamicHolidays, StaticHolidays):
     """
     Holidays are regulated by the Article 74 of Federal Law No. 08 for the year 1980:
     https://www.ilo.org/dyn/natlex/docs/ELECTRONIC/11956/69376/F417089305/ARE11956.pdf
     However the law is not applied literally, and was amended often in the past few years.
     Sources:
     2017: https://www.khaleejtimes.com/nation/uae-official-public-holidays-list-2017
-    2018: https://www.thenational.ae/uae/government/uae-public-holidays-2018-announced-by-abu-dhabi-government-1.691393
+    2018: https://www.khaleejtimes.com/nation/Here-are-the-holidays-remaining-in-2018-in-UAE
     2019: https://www.thenational.ae/uae/government/uae-public-holidays-for-2019-and-2020-announced-by-cabinet-1.833425
     2020: https://u.ae/en/information-and-services/public-holidays-and-religious-affairs/public-holidays
+    2021: https://www.wam.ae/en/details/1395302957696
+    2022: https://www.khaleejtimes.com/ramadan/eid-al-fitr-holiday-announced-in-uae-3
+    2023:
+    - https://www.timeoutdubai.com/news/uae-public-holidays-in-2023
+    - https://www.khaleejtimes.com/uae/islamic-new-year-2023-uae-announces-official-holiday-for-public-sector
+    2024: https://www.timeoutdubai.com/news/uae-public-holidays-in-2024
+    2025: https://www.timeoutdubai.com/news/uae-public-holidays-2025
     """
 
     country = "AE"
     default_language = "ar"
     # %s (estimated).
     estimated_label = tr("(تقدير) %s")
-    supported_languages = ("ar", "en_US")
+    supported_categories = (GOVERNMENT, OPTIONAL, PUBLIC)
+    supported_languages = ("ar", "en_US", "th")
+    # Founded on DEC 2, 1971.
+    start_year = 1972
 
     def __init__(self, *args, **kwargs):
         InternationalHolidays.__init__(self)
         IslamicHolidays.__init__(self, cls=UnitedArabEmiratesIslamicHolidays)
+        StaticHolidays.__init__(self, UnitedArabEmiratesStaticHolidays)
         super().__init__(*args, **kwargs)
 
     def _populate_public_holidays(self):
@@ -49,7 +76,7 @@ class UnitedArabEmirates(HolidayBase, InternationalHolidays, IslamicHolidays):
         # New Year's Day.
         self._add_new_years_day(tr("رأس السنة الميلادية"))
 
-        if 2015 <= self._year <= 2022:
+        if 2015 <= self._year <= 2023:
             # Commemoration Day.
             name = tr("يوم الشهيد")
             if self._year >= 2019:
@@ -69,7 +96,8 @@ class UnitedArabEmirates(HolidayBase, InternationalHolidays, IslamicHolidays):
         eid_al_fitr_holiday = tr("عطلة عيد الفطر")
         self._add_eid_al_fitr_day_two(eid_al_fitr_holiday)
         self._add_eid_al_fitr_day_three(eid_al_fitr_holiday)
-        if self._year >= 2019:
+        if 2019 <= self._year <= 2024:
+            # Ramadan 30 not confirmed yet for 2025 onwards.
             self._add_eid_al_fitr_eve(eid_al_fitr_holiday)
 
         # Arafat Day.
@@ -105,23 +133,26 @@ class ARE(UnitedArabEmirates):
 class UnitedArabEmiratesIslamicHolidays(_CustomIslamicHolidays):
     EID_AL_ADHA_DATES = {
         2017: (SEP, 1),
-        2018: (AUG, 21),
+        2018: (AUG, 22),
         2019: (AUG, 11),
         2020: (JUL, 31),
         2021: (JUL, 20),
         2022: (JUL, 9),
         2023: (JUN, 28),
+        2024: (JUN, 16),
+        2025: (JUN, 4),
     }
 
     EID_AL_FITR_DATES = {
         2017: (JUN, 25),
-        2018: (JUN, 14),
+        2018: (JUN, 15),
         2019: (JUN, 4),
         2020: (MAY, 24),
         2021: (MAY, 13),
         2022: (MAY, 2),
         2023: (APR, 21),
         2024: (APR, 10),
+        2025: (MAR, 30),
     }
 
     HIJRI_NEW_YEAR_DATES = {
@@ -132,19 +163,72 @@ class UnitedArabEmiratesIslamicHolidays(_CustomIslamicHolidays):
         2021: (AUG, 12),
         2022: (JUL, 30),
         2023: (JUL, 21),
+        2024: (JUL, 7),
+        2025: (JUN, 26),
     }
 
     ISRA_AND_MIRAJ_DATES = {
         2017: (APR, 23),
-        2018: (APR, 13),
+        2018: (APR, 14),
     }
 
     MAWLID_DATES = {
         2017: (NOV, 30),
-        2018: (NOV, 19),
+        2018: (NOV, 18),
         2019: (NOV, 9),
         2020: (OCT, 29),
         2021: (OCT, 21),
         2022: (OCT, 8),
         2023: (SEP, 29),
+        2024: (SEP, 15),
+        2025: (SEP, 5),
+    }
+
+
+class UnitedArabEmiratesStaticHolidays:
+    """
+    Special Eid al-Fitr entries for Ramadan 29 from 2020 onwards.
+    2019: https://www.mohre.gov.ae/en/media-centre/news/30/1/2019/عطلة-رسمية-يوم-زيارة-البابا-للمشاركين-في-فعالياته-من-القطاع-الخاص.aspx?DisableResponsive=1
+    2020: https://gulfbusiness.com/revealed-uae-private-sector-holidays-for-eid-al-fitr-2020/
+    2021: https://www.timeoutdubai.com/news/466278-eid-al-fitr-holiday-2021-dubai
+    2022:
+    - https://gulfnews.com/uae/eid-al-fitr-2022-holidays-for-private-and-public-sectors-in-uae-explained-1.1650951429432
+    - https://www.arabianbusiness.com/gcc/uae/uae-suspends-work-for-three-days-marks-40-days-of-mourning-over-sheikh-khalifas-death
+    2023: https://hrme.economictimes.indiatimes.com/news/industry/uae-cabinet-announces-national-day-holiday-for-federal-government-from-2-to-4-december/105455071
+    2024: https://www.timeoutdubai.com/news/eid-al-fitr-2024-expected-dates-ramadan
+    2025: https://www.timeoutdubai.com/news/uae-public-holidays-2025
+
+    Cross-Checked With:
+    https://www.timeanddate.com/holidays/united-arab-emirates/2021?hol=134217729
+    """
+
+    # Eid al-Fitr Holiday.
+    eid_al_fitr_holiday = tr("عطلة عيد الفطر")
+    # Death of Sheikh Khalifa bin Zayed Al Nahyan.
+    sheikh_khalifa_bin_zayed_death = tr("وفاة الشيخ خليفة بن زايد آل نهيان")
+
+    special_government_holidays = {
+        2022: (
+            (MAY, 5, eid_al_fitr_holiday),
+            (MAY, 6, eid_al_fitr_holiday),
+            (MAY, 7, eid_al_fitr_holiday),
+            (MAY, 8, eid_al_fitr_holiday),
+        ),
+        # National Day.
+        2023: (DEC, 4, tr("اليوم الوطني")),
+    }
+    special_optional_holidays = {
+        # Pope Francis' Visit Day.
+        2019: (FEB, 5, tr("يوم زيارة البابا فرنسيس")),
+    }
+    special_public_holidays = {
+        2020: (MAY, 22, eid_al_fitr_holiday),
+        2021: (MAY, 11, eid_al_fitr_holiday),
+        2022: (
+            (APR, 30, eid_al_fitr_holiday),
+            (MAY, 14, sheikh_khalifa_bin_zayed_death),
+            (MAY, 15, sheikh_khalifa_bin_zayed_death),
+            (MAY, 16, sheikh_khalifa_bin_zayed_death),
+        ),
+        2024: (APR, 8, eid_al_fitr_holiday),
     }
diff --git a/holidays/locale/ar/LC_MESSAGES/AE.po b/holidays/locale/ar/LC_MESSAGES/AE.po
index 5da1a77f..8db24085 100644
--- a/holidays/locale/ar/LC_MESSAGES/AE.po
+++ b/holidays/locale/ar/LC_MESSAGES/AE.po
@@ -14,17 +14,17 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.29\n"
+"Project-Id-Version: Holidays 0.66\n"
 "POT-Creation-Date: 2023-06-28 00:13+0100\n"
-"PO-Revision-Date: 2023-09-12 15:54+0100\n"
-"Last-Translator: Abdelkhalek Boukli Hacene <bouklihabd31@gmail.com>\n"
+"PO-Revision-Date: 2025-02-03 10:17+0700\n"
+"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: ar\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Lingua 4.15.0\n"
-"X-Generator: Poedit 3.3.2\n"
+"X-Generator: Poedit 3.5\n"
 
 #. %s (estimated).
 #, c-format
@@ -74,3 +74,11 @@ msgstr ""
 #. Prophet's Birthday.
 msgid "عيد المولد النبوي"
 msgstr ""
+
+#. Death of Sheikh Khalifa bin Zayed Al Nahyan.
+msgid "وفاة الشيخ خليفة بن زايد آل نهيان"
+msgstr ""
+
+#. Pope Francis' Visit Day.
+msgid "يوم زيارة البابا فرنسيس"
+msgstr ""
diff --git a/holidays/locale/ar/LC_MESSAGES/UA.po b/holidays/locale/ar/LC_MESSAGES/UA.po
index 1658eafb..0ad9df05 100644
--- a/holidays/locale/ar/LC_MESSAGES/UA.po
+++ b/holidays/locale/ar/LC_MESSAGES/UA.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.55\n"
+"Project-Id-Version: Holidays 0.66\n"
 "POT-Creation-Date: 2023-07-08 19:40+0300\n"
-"PO-Revision-Date: 2024-08-15 21:24+0300\n"
+"PO-Revision-Date: 2025-02-02 19:32+0200\n"
 "Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: ar\n"
@@ -68,7 +68,7 @@ msgid "День перемоги над нацизмом у Другій сві
 msgstr "يوم النصر على النازية في الحرب العالمية الثانية (يوم النصر)"
 
 #. Victory Day.
-msgid "День перемоги"
+msgid "День Перемоги"
 msgstr "يوم النصر"
 
 #. Day of the Constitution of Ukraine.
diff --git a/holidays/locale/en_US/LC_MESSAGES/AE.po b/holidays/locale/en_US/LC_MESSAGES/AE.po
index f925f9c0..85d535ce 100644
--- a/holidays/locale/en_US/LC_MESSAGES/AE.po
+++ b/holidays/locale/en_US/LC_MESSAGES/AE.po
@@ -14,18 +14,17 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.42\n"
+"Project-Id-Version: Holidays 0.66\n"
 "POT-Creation-Date: 2023-06-28 00:13+0100\n"
-"PO-Revision-Date: 2024-01-25 15:04+0200\n"
-"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
+"PO-Revision-Date: 2025-02-03 10:17+0700\n"
+"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\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"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "Generated-By: Lingua 4.15.0\n"
-"X-Generator: Poedit 3.4\n"
+"X-Generator: Poedit 3.5\n"
 
 #. %s (estimated).
 #, c-format
@@ -75,3 +74,11 @@ msgstr "Isra' and Mi'raj"
 #. Prophet's Birthday.
 msgid "عيد المولد النبوي"
 msgstr "Prophet's Birthday"
+
+#. Death of Sheikh Khalifa bin Zayed Al Nahyan.
+msgid "وفاة الشيخ خليفة بن زايد آل نهيان"
+msgstr "Death of Sheikh Khalifa bin Zayed Al Nahyan"
+
+#. Pope Francis' Visit Day.
+msgid "يوم زيارة البابا فرنسيس"
+msgstr "Pope Francis' Visit Day"
diff --git a/holidays/locale/en_US/LC_MESSAGES/UA.po b/holidays/locale/en_US/LC_MESSAGES/UA.po
index 7271c8c8..83d28a5d 100644
--- a/holidays/locale/en_US/LC_MESSAGES/UA.po
+++ b/holidays/locale/en_US/LC_MESSAGES/UA.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.55\n"
+"Project-Id-Version: Holidays 0.66\n"
 "POT-Creation-Date: 2023-07-08 19:40+0300\n"
-"PO-Revision-Date: 2024-08-15 21:23+0300\n"
+"PO-Revision-Date: 2025-02-02 19:32+0200\n"
 "Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: en_US\n"
@@ -68,7 +68,7 @@ msgid "День перемоги над нацизмом у Другій сві
 msgstr "Day of Victory over Nazism in World War II (Victory Day)"
 
 #. Victory Day.
-msgid "День перемоги"
+msgid "День Перемоги"
 msgstr "Victory Day"
 
 #. Day of the Constitution of Ukraine.
diff --git a/holidays/locale/pot/UA.pot b/holidays/locale/pot/UA.pot
index 31634f99..4ad0cb46 100644
--- a/holidays/locale/pot/UA.pot
+++ b/holidays/locale/pot/UA.pot
@@ -4,9 +4,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.55\n"
+"Project-Id-Version: Holidays 0.66\n"
 "POT-Creation-Date: 2024-08-15 21:21+0300\n"
-"PO-Revision-Date: 2024-08-15 21:21+0300\n"
+"PO-Revision-Date: 2025-02-02 19:32+0200\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: \n"
@@ -59,7 +59,7 @@ msgid "День перемоги над нацизмом у Другій сві
 msgstr ""
 
 #. Victory Day.
-msgid "День перемоги"
+msgid "День Перемоги"
 msgstr ""
 
 #. Day of the Constitution of Ukraine.
diff --git a/holidays/locale/th/LC_MESSAGES/AE.po b/holidays/locale/th/LC_MESSAGES/AE.po
new file mode 100644
index 00000000..428e6533
--- /dev/null
+++ b/holidays/locale/th/LC_MESSAGES/AE.po
@@ -0,0 +1,84 @@
+#  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)
+#
+# United Arab Emirates holidays th localization.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Holidays 0.66\n"
+"POT-Creation-Date: 2025-02-01 23:14+0700\n"
+"PO-Revision-Date: 2025-02-03 10:17+0700\n"
+"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
+"Language-Team: Holidays Localization Team\n"
+"Language: th\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Lingva 5.0.3\n"
+"X-Generator: Poedit 3.5\n"
+
+#. %s (estimated).
+#, c-format
+msgid "(تقدير) %s"
+msgstr "ชดเชย%s"
+
+#. New Year's Day.
+msgid "رأس السنة الميلادية"
+msgstr "วันขึ้นปีใหม่"
+
+#. Commemoration Day.
+msgid "يوم الشهيد"
+msgstr "วันรำลึกผู้อุทิศตน"
+
+#. National Day.
+msgid "اليوم الوطني"
+msgstr "วันชาติสหรัฐอาหรับเอมิเรตส์"
+
+#. Eid al-Fitr.
+msgid "عيد الفطر"
+msgstr "วันอีฎิ้ลฟิตริ"
+
+#. Eid al-Fitr Holiday.
+msgid "عطلة عيد الفطر"
+msgstr "เทศกาลอีฎิ้ลฟิตริ"
+
+#. Arafat Day.
+msgid "وقفة عرفة"
+msgstr "วันอารอฟะห์"
+
+#. Eid al-Adha.
+msgid "عيد الأضحى"
+msgstr "วันอีดิ้ลอัฎฮา"
+
+#. Eid al-Adha Holiday.
+msgid "عطلة عيد الأضحى"
+msgstr "เทศกาลอีดิ้ลอัฎฮา"
+
+#. Islamic New Year.
+msgid "رأس السنة الهجرية"
+msgstr "วันขึ้นปีใหม่อิสลาม"
+
+#. Isra' and Mi'raj.
+msgid "ليلة المعراج"
+msgstr "วันเมี๊ยะราจ"
+
+#. Prophet's Birthday.
+msgid "عيد المولد النبوي"
+msgstr "วันเมาลิดนบี"
+
+#. Death of Sheikh Khalifa bin Zayed Al Nahyan.
+msgid "وفاة الشيخ خليفة بن زايد آل نهيان"
+msgstr "วันไว้ทุกข์แห่งชาติแด่ชีค คาลิฟา บิน ซายิด อัล นาห์ยัน"
+
+#. Pope Francis' Visit Day.
+msgid "يوم زيارة البابا فرنسيس"
+msgstr "สมเด็จพระสันตะปาปาฟรานซิสเสด็จเยือนสหรัฐอาหรับเอมิเรตส์"
diff --git a/holidays/locale/th/LC_MESSAGES/UA.po b/holidays/locale/th/LC_MESSAGES/UA.po
index 1034127f..10400261 100644
--- a/holidays/locale/th/LC_MESSAGES/UA.po
+++ b/holidays/locale/th/LC_MESSAGES/UA.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.64\n"
+"Project-Id-Version: Holidays 0.66\n"
 "POT-Creation-Date: 2023-07-08 19:40+0300\n"
-"PO-Revision-Date: 2024-12-23 14:10+0700\n"
+"PO-Revision-Date: 2025-02-02 19:32+0200\n"
 "Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: th\n"
@@ -69,7 +69,7 @@ msgstr ""
 "วันแห่งชัยชนะเหนือระบอบชาติสังคมนิยมในสงครามโลกครั้งที่สอง (วันแห่งชัยชนะ)"
 
 #. Victory Day.
-msgid "День перемоги"
+msgid "День Перемоги"
 msgstr "วันแห่งชัยชนะ"
 
 #. Day of the Constitution of Ukraine.
diff --git a/holidays/locale/uk/LC_MESSAGES/AO.po b/holidays/locale/uk/LC_MESSAGES/AO.po
index 911215df..2a5a6a32 100644
--- a/holidays/locale/uk/LC_MESSAGES/AO.po
+++ b/holidays/locale/uk/LC_MESSAGES/AO.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.41\n"
+"Project-Id-Version: Holidays 0.66\n"
 "POT-Creation-Date: 2023-07-19 18:14+0300\n"
-"PO-Revision-Date: 2023-07-19 18:30+0300\n"
+"PO-Revision-Date: 2025-02-02 19:32+0200\n"
 "Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: uk\n"
@@ -34,7 +34,7 @@ msgstr "День загальних виборів"
 #. %s (observed).
 #, c-format
 msgid "%s (ponte)"
-msgstr "Вихідний за %s"
+msgstr "%s (вихідний)"
 
 #. New Year's Day.
 msgid "Dia do Ano Novo"
diff --git a/holidays/locale/uk/LC_MESSAGES/CL.po b/holidays/locale/uk/LC_MESSAGES/CL.po
index 604d977b..cbef2acf 100644
--- a/holidays/locale/uk/LC_MESSAGES/CL.po
+++ b/holidays/locale/uk/LC_MESSAGES/CL.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.53\n"
+"Project-Id-Version: Holidays 0.66\n"
 "POT-Creation-Date: 2023-02-28 16:42+0200\n"
-"PO-Revision-Date: 2024-07-08 17:20+0300\n"
+"PO-Revision-Date: 2025-02-02 19:32+0200\n"
 "Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: uk\n"
@@ -89,7 +89,7 @@ msgstr "Національне свято"
 
 #. Independence Day.
 msgid "Día de la Independencia"
-msgstr "День Незалежності"
+msgstr "День незалежності"
 
 #. Army Day.
 msgid "Día de las Glorias del Ejército"
diff --git a/holidays/locale/uk/LC_MESSAGES/CU.po b/holidays/locale/uk/LC_MESSAGES/CU.po
index f92a5412..0d0f3bf5 100644
--- a/holidays/locale/uk/LC_MESSAGES/CU.po
+++ b/holidays/locale/uk/LC_MESSAGES/CU.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.22\n"
+"Project-Id-Version: Holidays 0.66\n"
 "POT-Creation-Date: 2023-03-04 14:20+0200\n"
-"PO-Revision-Date: 2023-03-05 13:11+0200\n"
+"PO-Revision-Date: 2025-02-02 19:32+0200\n"
 "Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: uk\n"
@@ -38,7 +38,7 @@ msgstr "Тріумф революції"
 
 #. Victory Day.
 msgid "Día de la Victoria"
-msgstr "День перемоги"
+msgstr "День Перемоги"
 
 #. Good Friday.
 msgid "Viernes Santo"
diff --git a/holidays/locale/uk/LC_MESSAGES/CZ.po b/holidays/locale/uk/LC_MESSAGES/CZ.po
index 38908334..bb4fb588 100644
--- a/holidays/locale/uk/LC_MESSAGES/CZ.po
+++ b/holidays/locale/uk/LC_MESSAGES/CZ.po
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Holidays 0.66\n"
 "POT-Creation-Date: 2023-06-27 13:17+0300\n"
-"PO-Revision-Date: 2025-01-27 16:42+0200\n"
+"PO-Revision-Date: 2025-02-02 19:32+0200\n"
 "Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: uk\n"
@@ -49,7 +49,7 @@ msgstr "День праці"
 
 #. Victory Day.
 msgid "Den vítězství"
-msgstr "День перемоги"
+msgstr "День Перемоги"
 
 #. Liberation Day.
 msgid "Den osvobození"
diff --git a/holidays/locale/uk/LC_MESSAGES/EE.po b/holidays/locale/uk/LC_MESSAGES/EE.po
index d67e6dea..42c06178 100644
--- a/holidays/locale/uk/LC_MESSAGES/EE.po
+++ b/holidays/locale/uk/LC_MESSAGES/EE.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.28\n"
+"Project-Id-Version: Holidays 0.66\n"
 "POT-Creation-Date: 2023-06-27 13:17+0300\n"
-"PO-Revision-Date: 2023-06-27 16:16+0300\n"
+"PO-Revision-Date: 2025-02-02 19:32+0200\n"
 "Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: uk\n"
@@ -53,7 +53,7 @@ msgstr "Трійця"
 
 #. Victory Day.
 msgid "võidupüha"
-msgstr "День перемоги"
+msgstr "День Перемоги"
 
 #. Midsummer Day.
 msgid "jaanipäev"
diff --git a/holidays/locale/uk/LC_MESSAGES/MZ.po b/holidays/locale/uk/LC_MESSAGES/MZ.po
index d3f73940..dc51f46e 100644
--- a/holidays/locale/uk/LC_MESSAGES/MZ.po
+++ b/holidays/locale/uk/LC_MESSAGES/MZ.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.41\n"
+"Project-Id-Version: Holidays 0.66\n"
 "POT-Creation-Date: 2023-07-21 19:22+0300\n"
-"PO-Revision-Date: 2023-07-21 19:30+0300\n"
+"PO-Revision-Date: 2025-02-02 19:32+0200\n"
 "Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: uk\n"
@@ -54,7 +54,7 @@ msgstr "День національної незалежності"
 
 #. Victory Day.
 msgid "Dia da Vitória"
-msgstr "День перемоги"
+msgstr "День Перемоги"
 
 #. Armed Forces Day.
 msgid "Dia das Forças Armadas de Libertação Nacional"
diff --git a/holidays/locale/uk/LC_MESSAGES/PL.po b/holidays/locale/uk/LC_MESSAGES/PL.po
index 38592bb6..87afddc6 100644
--- a/holidays/locale/uk/LC_MESSAGES/PL.po
+++ b/holidays/locale/uk/LC_MESSAGES/PL.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.64\n"
+"Project-Id-Version: Holidays 0.66\n"
 "POT-Creation-Date: 2023-02-14 20:19+0200\n"
-"PO-Revision-Date: 2025-01-03 19:32+0200\n"
+"PO-Revision-Date: 2025-02-02 19:32+0200\n"
 "Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: uk\n"
@@ -28,7 +28,7 @@ msgstr ""
 
 #. National Independence Day - 100th anniversary.
 msgid "Narodowe Święto Niepodległości - 100-lecie"
-msgstr "100-а річниця Дня Незалежності"
+msgstr "100-а річниця Дня незалежності"
 
 #. New Year's Day.
 msgid "Nowy Rok"
@@ -72,7 +72,7 @@ msgstr "День Святої Трійці"
 
 #. Whit Monday.
 msgid "Drugi dzień Zielonych Świątek"
-msgstr "Другий день Святої Трійці"
+msgstr "День Святого Духа"
 
 #. Corpus Christi.
 msgid "Dzień Bożego Ciała"
@@ -96,7 +96,7 @@ msgstr "День усіх святих"
 
 #. National Independence Day.
 msgid "Narodowe Święto Niepodległości"
-msgstr "День Незалежності"
+msgstr "День незалежності"
 
 #. Immaculate Conception of the Blessed Virgin Mary.
 msgid "Niepokalane Poczęcie Najświętszej Marii Panny"
diff --git a/holidays/locale/uk/LC_MESSAGES/UA.po b/holidays/locale/uk/LC_MESSAGES/UA.po
index 12f7f2a3..48df643e 100644
--- a/holidays/locale/uk/LC_MESSAGES/UA.po
+++ b/holidays/locale/uk/LC_MESSAGES/UA.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.55\n"
+"Project-Id-Version: Holidays 0.66\n"
 "POT-Creation-Date: 2023-07-08 19:40+0300\n"
-"PO-Revision-Date: 2024-08-15 21:23+0300\n"
+"PO-Revision-Date: 2025-02-02 19:32+0200\n"
 "Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: uk\n"
@@ -67,7 +67,7 @@ msgid "День перемоги над нацизмом у Другій сві
 msgstr ""
 
 #. Victory Day.
-msgid "День перемоги"
+msgid "День Перемоги"
 msgstr ""
 
 #. Day of the Constitution of Ukraine.
diff --git a/holidays/locale/uk/LC_MESSAGES/UZ.po b/holidays/locale/uk/LC_MESSAGES/UZ.po
index 4c5a513c..7248deb8 100644
--- a/holidays/locale/uk/LC_MESSAGES/UZ.po
+++ b/holidays/locale/uk/LC_MESSAGES/UZ.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.41\n"
+"Project-Id-Version: Holidays 0.66\n"
 "POT-Creation-Date: 2023-12-31 21:12+0200\n"
-"PO-Revision-Date: 2024-01-02 12:46+0200\n"
+"PO-Revision-Date: 2025-02-02 19:32+0200\n"
 "Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: uk\n"
@@ -49,11 +49,11 @@ msgstr "День Перемоги"
 
 #. Independence Day.
 msgid "Mustaqillik kuni"
-msgstr "День Незалежності"
+msgstr "День незалежності"
 
 #. Teachers and Instructors Day.
 msgid "O‘qituvchi va murabbiylar kuni"
-msgstr "День Вчителя і Наставника"
+msgstr "День вчителя і наставника"
 
 #. Constitution Day.
 msgid "O‘zbekiston Respublikasi Konstitutsiyasi kuni"
diff --git a/snapshots/countries/AE_COMMON.json b/snapshots/countries/AE_COMMON.json
index c788d268..c177542b 100644
--- a/snapshots/countries/AE_COMMON.json
+++ b/snapshots/countries/AE_COMMON.json
@@ -1,292 +1,4 @@
 {
-    "1950-01-01": "New Year's Day; Prophet's Birthday (estimated)",
-    "1950-05-14": "Isra' and Mi'raj (estimated)",
-    "1950-07-16": "Eid al-Fitr (estimated)",
-    "1950-07-17": "Eid al-Fitr Holiday (estimated)",
-    "1950-07-18": "Eid al-Fitr Holiday (estimated)",
-    "1950-09-22": "Arafat Day (estimated)",
-    "1950-09-23": "Eid al-Adha (estimated)",
-    "1950-09-24": "Eid al-Adha Holiday (estimated)",
-    "1950-09-25": "Eid al-Adha Holiday (estimated)",
-    "1950-10-13": "Islamic New Year (estimated)",
-    "1950-12-02": "National Day",
-    "1950-12-03": "National Day",
-    "1950-12-22": "Prophet's Birthday (estimated)",
-    "1951-01-01": "New Year's Day",
-    "1951-05-04": "Isra' and Mi'raj (estimated)",
-    "1951-07-06": "Eid al-Fitr (estimated)",
-    "1951-07-07": "Eid al-Fitr Holiday (estimated)",
-    "1951-07-08": "Eid al-Fitr Holiday (estimated)",
-    "1951-09-11": "Arafat Day (estimated)",
-    "1951-09-12": "Eid al-Adha (estimated)",
-    "1951-09-13": "Eid al-Adha Holiday (estimated)",
-    "1951-09-14": "Eid al-Adha Holiday (estimated)",
-    "1951-10-02": "Islamic New Year (estimated)",
-    "1951-12-02": "National Day",
-    "1951-12-03": "National Day",
-    "1951-12-11": "Prophet's Birthday (estimated)",
-    "1952-01-01": "New Year's Day",
-    "1952-04-22": "Isra' and Mi'raj (estimated)",
-    "1952-06-23": "Eid al-Fitr (estimated)",
-    "1952-06-24": "Eid al-Fitr Holiday (estimated)",
-    "1952-06-25": "Eid al-Fitr Holiday (estimated)",
-    "1952-08-30": "Arafat Day (estimated)",
-    "1952-08-31": "Eid al-Adha (estimated)",
-    "1952-09-01": "Eid al-Adha Holiday (estimated)",
-    "1952-09-02": "Eid al-Adha Holiday (estimated)",
-    "1952-09-21": "Islamic New Year (estimated)",
-    "1952-11-30": "Prophet's Birthday (estimated)",
-    "1952-12-02": "National Day",
-    "1952-12-03": "National Day",
-    "1953-01-01": "New Year's Day",
-    "1953-04-12": "Isra' and Mi'raj (estimated)",
-    "1953-06-13": "Eid al-Fitr (estimated)",
-    "1953-06-14": "Eid al-Fitr Holiday (estimated)",
-    "1953-06-15": "Eid al-Fitr Holiday (estimated)",
-    "1953-08-19": "Arafat Day (estimated)",
-    "1953-08-20": "Eid al-Adha (estimated)",
-    "1953-08-21": "Eid al-Adha Holiday (estimated)",
-    "1953-08-22": "Eid al-Adha Holiday (estimated)",
-    "1953-09-10": "Islamic New Year (estimated)",
-    "1953-11-19": "Prophet's Birthday (estimated)",
-    "1953-12-02": "National Day",
-    "1953-12-03": "National Day",
-    "1954-01-01": "New Year's Day",
-    "1954-04-01": "Isra' and Mi'raj (estimated)",
-    "1954-06-02": "Eid al-Fitr (estimated)",
-    "1954-06-03": "Eid al-Fitr Holiday (estimated)",
-    "1954-06-04": "Eid al-Fitr Holiday (estimated)",
-    "1954-08-08": "Arafat Day (estimated)",
-    "1954-08-09": "Eid al-Adha (estimated)",
-    "1954-08-10": "Eid al-Adha Holiday (estimated)",
-    "1954-08-11": "Eid al-Adha Holiday (estimated)",
-    "1954-08-30": "Islamic New Year (estimated)",
-    "1954-11-08": "Prophet's Birthday (estimated)",
-    "1954-12-02": "National Day",
-    "1954-12-03": "National Day",
-    "1955-01-01": "New Year's Day",
-    "1955-03-21": "Isra' and Mi'raj (estimated)",
-    "1955-05-23": "Eid al-Fitr (estimated)",
-    "1955-05-24": "Eid al-Fitr Holiday (estimated)",
-    "1955-05-25": "Eid al-Fitr Holiday (estimated)",
-    "1955-07-29": "Arafat Day (estimated)",
-    "1955-07-30": "Eid al-Adha (estimated)",
-    "1955-07-31": "Eid al-Adha Holiday (estimated)",
-    "1955-08-01": "Eid al-Adha Holiday (estimated)",
-    "1955-08-20": "Islamic New Year (estimated)",
-    "1955-10-29": "Prophet's Birthday (estimated)",
-    "1955-12-02": "National Day",
-    "1955-12-03": "National Day",
-    "1956-01-01": "New Year's Day",
-    "1956-03-10": "Isra' and Mi'raj (estimated)",
-    "1956-05-11": "Eid al-Fitr (estimated)",
-    "1956-05-12": "Eid al-Fitr Holiday (estimated)",
-    "1956-05-13": "Eid al-Fitr Holiday (estimated)",
-    "1956-07-18": "Arafat Day (estimated)",
-    "1956-07-19": "Eid al-Adha (estimated)",
-    "1956-07-20": "Eid al-Adha Holiday (estimated)",
-    "1956-07-21": "Eid al-Adha Holiday (estimated)",
-    "1956-08-08": "Islamic New Year (estimated)",
-    "1956-10-17": "Prophet's Birthday (estimated)",
-    "1956-12-02": "National Day",
-    "1956-12-03": "National Day",
-    "1957-01-01": "New Year's Day",
-    "1957-02-27": "Isra' and Mi'raj (estimated)",
-    "1957-05-01": "Eid al-Fitr (estimated)",
-    "1957-05-02": "Eid al-Fitr Holiday (estimated)",
-    "1957-05-03": "Eid al-Fitr Holiday (estimated)",
-    "1957-07-07": "Arafat Day (estimated)",
-    "1957-07-08": "Eid al-Adha (estimated)",
-    "1957-07-09": "Eid al-Adha Holiday (estimated)",
-    "1957-07-10": "Eid al-Adha Holiday (estimated)",
-    "1957-07-28": "Islamic New Year (estimated)",
-    "1957-10-06": "Prophet's Birthday (estimated)",
-    "1957-12-02": "National Day",
-    "1957-12-03": "National Day",
-    "1958-01-01": "New Year's Day",
-    "1958-02-16": "Isra' and Mi'raj (estimated)",
-    "1958-04-20": "Eid al-Fitr (estimated)",
-    "1958-04-21": "Eid al-Fitr Holiday (estimated)",
-    "1958-04-22": "Eid al-Fitr Holiday (estimated)",
-    "1958-06-26": "Arafat Day (estimated)",
-    "1958-06-27": "Eid al-Adha (estimated)",
-    "1958-06-28": "Eid al-Adha Holiday (estimated)",
-    "1958-06-29": "Eid al-Adha Holiday (estimated)",
-    "1958-07-18": "Islamic New Year (estimated)",
-    "1958-09-26": "Prophet's Birthday (estimated)",
-    "1958-12-02": "National Day",
-    "1958-12-03": "National Day",
-    "1959-01-01": "New Year's Day",
-    "1959-02-06": "Isra' and Mi'raj (estimated)",
-    "1959-04-10": "Eid al-Fitr (estimated)",
-    "1959-04-11": "Eid al-Fitr Holiday (estimated)",
-    "1959-04-12": "Eid al-Fitr Holiday (estimated)",
-    "1959-06-16": "Arafat Day (estimated)",
-    "1959-06-17": "Eid al-Adha (estimated)",
-    "1959-06-18": "Eid al-Adha Holiday (estimated)",
-    "1959-06-19": "Eid al-Adha Holiday (estimated)",
-    "1959-07-07": "Islamic New Year (estimated)",
-    "1959-09-15": "Prophet's Birthday (estimated)",
-    "1959-12-02": "National Day",
-    "1959-12-03": "National Day",
-    "1960-01-01": "New Year's Day",
-    "1960-01-26": "Isra' and Mi'raj (estimated)",
-    "1960-03-28": "Eid al-Fitr (estimated)",
-    "1960-03-29": "Eid al-Fitr Holiday (estimated)",
-    "1960-03-30": "Eid al-Fitr Holiday (estimated)",
-    "1960-06-03": "Arafat Day (estimated)",
-    "1960-06-04": "Eid al-Adha (estimated)",
-    "1960-06-05": "Eid al-Adha Holiday (estimated)",
-    "1960-06-06": "Eid al-Adha Holiday (estimated)",
-    "1960-06-25": "Islamic New Year (estimated)",
-    "1960-09-03": "Prophet's Birthday (estimated)",
-    "1960-12-02": "National Day",
-    "1960-12-03": "National Day",
-    "1961-01-01": "New Year's Day",
-    "1961-01-14": "Isra' and Mi'raj (estimated)",
-    "1961-03-18": "Eid al-Fitr (estimated)",
-    "1961-03-19": "Eid al-Fitr Holiday (estimated)",
-    "1961-03-20": "Eid al-Fitr Holiday (estimated)",
-    "1961-05-24": "Arafat Day (estimated)",
-    "1961-05-25": "Eid al-Adha (estimated)",
-    "1961-05-26": "Eid al-Adha Holiday (estimated)",
-    "1961-05-27": "Eid al-Adha Holiday (estimated)",
-    "1961-06-14": "Islamic New Year (estimated)",
-    "1961-08-23": "Prophet's Birthday (estimated)",
-    "1961-12-02": "National Day",
-    "1961-12-03": "National Day",
-    "1962-01-01": "New Year's Day",
-    "1962-01-04": "Isra' and Mi'raj (estimated)",
-    "1962-03-07": "Eid al-Fitr (estimated)",
-    "1962-03-08": "Eid al-Fitr Holiday (estimated)",
-    "1962-03-09": "Eid al-Fitr Holiday (estimated)",
-    "1962-05-13": "Arafat Day (estimated)",
-    "1962-05-14": "Eid al-Adha (estimated)",
-    "1962-05-15": "Eid al-Adha Holiday (estimated)",
-    "1962-05-16": "Eid al-Adha Holiday (estimated)",
-    "1962-06-03": "Islamic New Year (estimated)",
-    "1962-08-12": "Prophet's Birthday (estimated)",
-    "1962-12-02": "National Day",
-    "1962-12-03": "National Day",
-    "1962-12-24": "Isra' and Mi'raj (estimated)",
-    "1963-01-01": "New Year's Day",
-    "1963-02-24": "Eid al-Fitr (estimated)",
-    "1963-02-25": "Eid al-Fitr Holiday (estimated)",
-    "1963-02-26": "Eid al-Fitr Holiday (estimated)",
-    "1963-05-02": "Arafat Day (estimated)",
-    "1963-05-03": "Eid al-Adha (estimated)",
-    "1963-05-04": "Eid al-Adha Holiday (estimated)",
-    "1963-05-05": "Eid al-Adha Holiday (estimated)",
-    "1963-05-24": "Islamic New Year (estimated)",
-    "1963-08-02": "Prophet's Birthday (estimated)",
-    "1963-12-02": "National Day",
-    "1963-12-03": "National Day",
-    "1963-12-13": "Isra' and Mi'raj (estimated)",
-    "1964-01-01": "New Year's Day",
-    "1964-02-14": "Eid al-Fitr (estimated)",
-    "1964-02-15": "Eid al-Fitr Holiday (estimated)",
-    "1964-02-16": "Eid al-Fitr Holiday (estimated)",
-    "1964-04-21": "Arafat Day (estimated)",
-    "1964-04-22": "Eid al-Adha (estimated)",
-    "1964-04-23": "Eid al-Adha Holiday (estimated)",
-    "1964-04-24": "Eid al-Adha Holiday (estimated)",
-    "1964-05-12": "Islamic New Year (estimated)",
-    "1964-07-21": "Prophet's Birthday (estimated)",
-    "1964-12-01": "Isra' and Mi'raj (estimated)",
-    "1964-12-02": "National Day",
-    "1964-12-03": "National Day",
-    "1965-01-01": "New Year's Day",
-    "1965-02-02": "Eid al-Fitr (estimated)",
-    "1965-02-03": "Eid al-Fitr Holiday (estimated)",
-    "1965-02-04": "Eid al-Fitr Holiday (estimated)",
-    "1965-04-10": "Arafat Day (estimated)",
-    "1965-04-11": "Eid al-Adha (estimated)",
-    "1965-04-12": "Eid al-Adha Holiday (estimated)",
-    "1965-04-13": "Eid al-Adha Holiday (estimated)",
-    "1965-05-01": "Islamic New Year (estimated)",
-    "1965-07-10": "Prophet's Birthday (estimated)",
-    "1965-11-20": "Isra' and Mi'raj (estimated)",
-    "1965-12-02": "National Day",
-    "1965-12-03": "National Day",
-    "1966-01-01": "New Year's Day",
-    "1966-01-22": "Eid al-Fitr (estimated)",
-    "1966-01-23": "Eid al-Fitr Holiday (estimated)",
-    "1966-01-24": "Eid al-Fitr Holiday (estimated)",
-    "1966-03-31": "Arafat Day (estimated)",
-    "1966-04-01": "Eid al-Adha (estimated)",
-    "1966-04-02": "Eid al-Adha Holiday (estimated)",
-    "1966-04-03": "Eid al-Adha Holiday (estimated)",
-    "1966-04-21": "Islamic New Year (estimated)",
-    "1966-07-01": "Prophet's Birthday (estimated)",
-    "1966-11-10": "Isra' and Mi'raj (estimated)",
-    "1966-12-02": "National Day",
-    "1966-12-03": "National Day",
-    "1967-01-01": "New Year's Day",
-    "1967-01-12": "Eid al-Fitr (estimated)",
-    "1967-01-13": "Eid al-Fitr Holiday (estimated)",
-    "1967-01-14": "Eid al-Fitr Holiday (estimated)",
-    "1967-03-20": "Arafat Day (estimated)",
-    "1967-03-21": "Eid al-Adha (estimated)",
-    "1967-03-22": "Eid al-Adha Holiday (estimated)",
-    "1967-03-23": "Eid al-Adha Holiday (estimated)",
-    "1967-04-11": "Islamic New Year (estimated)",
-    "1967-06-19": "Prophet's Birthday (estimated)",
-    "1967-10-30": "Isra' and Mi'raj (estimated)",
-    "1967-12-02": "National Day",
-    "1967-12-03": "National Day",
-    "1968-01-01": "Eid al-Fitr (estimated); New Year's Day",
-    "1968-01-02": "Eid al-Fitr Holiday (estimated)",
-    "1968-01-03": "Eid al-Fitr Holiday (estimated)",
-    "1968-03-08": "Arafat Day (estimated)",
-    "1968-03-09": "Eid al-Adha (estimated)",
-    "1968-03-10": "Eid al-Adha Holiday (estimated)",
-    "1968-03-11": "Eid al-Adha Holiday (estimated)",
-    "1968-03-30": "Islamic New Year (estimated)",
-    "1968-06-08": "Prophet's Birthday (estimated)",
-    "1968-10-19": "Isra' and Mi'raj (estimated)",
-    "1968-12-02": "National Day",
-    "1968-12-03": "National Day",
-    "1968-12-21": "Eid al-Fitr (estimated)",
-    "1968-12-22": "Eid al-Fitr Holiday (estimated)",
-    "1968-12-23": "Eid al-Fitr Holiday (estimated)",
-    "1969-01-01": "New Year's Day",
-    "1969-02-26": "Arafat Day (estimated)",
-    "1969-02-27": "Eid al-Adha (estimated)",
-    "1969-02-28": "Eid al-Adha Holiday (estimated)",
-    "1969-03-01": "Eid al-Adha Holiday (estimated)",
-    "1969-03-19": "Islamic New Year (estimated)",
-    "1969-05-28": "Prophet's Birthday (estimated)",
-    "1969-10-08": "Isra' and Mi'raj (estimated)",
-    "1969-12-02": "National Day",
-    "1969-12-03": "National Day",
-    "1969-12-10": "Eid al-Fitr (estimated)",
-    "1969-12-11": "Eid al-Fitr Holiday (estimated)",
-    "1969-12-12": "Eid al-Fitr Holiday (estimated)",
-    "1970-01-01": "New Year's Day",
-    "1970-02-15": "Arafat Day (estimated)",
-    "1970-02-16": "Eid al-Adha (estimated)",
-    "1970-02-17": "Eid al-Adha Holiday (estimated)",
-    "1970-02-18": "Eid al-Adha Holiday (estimated)",
-    "1970-03-09": "Islamic New Year (estimated)",
-    "1970-05-18": "Prophet's Birthday (estimated)",
-    "1970-09-28": "Isra' and Mi'raj (estimated)",
-    "1970-11-30": "Eid al-Fitr (estimated)",
-    "1970-12-01": "Eid al-Fitr Holiday (estimated)",
-    "1970-12-02": "Eid al-Fitr Holiday (estimated); National Day",
-    "1970-12-03": "National Day",
-    "1971-01-01": "New Year's Day",
-    "1971-02-05": "Arafat Day (estimated)",
-    "1971-02-06": "Eid al-Adha (estimated)",
-    "1971-02-07": "Eid al-Adha Holiday (estimated)",
-    "1971-02-08": "Eid al-Adha Holiday (estimated)",
-    "1971-02-26": "Islamic New Year (estimated)",
-    "1971-05-07": "Prophet's Birthday (estimated)",
-    "1971-09-17": "Isra' and Mi'raj (estimated)",
-    "1971-11-19": "Eid al-Fitr (estimated)",
-    "1971-11-20": "Eid al-Fitr Holiday (estimated)",
-    "1971-11-21": "Eid al-Fitr Holiday (estimated)",
-    "1971-12-02": "National Day",
-    "1971-12-03": "National Day",
     "1972-01-01": "New Year's Day",
     "1972-01-25": "Arafat Day (estimated)",
     "1972-01-26": "Eid al-Adha (estimated)",
@@ -901,20 +613,21 @@
     "2017-12-02": "National Day",
     "2017-12-03": "National Day",
     "2018-01-01": "New Year's Day",
-    "2018-04-13": "Isra' and Mi'raj",
-    "2018-06-14": "Eid al-Fitr",
-    "2018-06-15": "Eid al-Fitr Holiday",
+    "2018-04-14": "Isra' and Mi'raj",
+    "2018-06-15": "Eid al-Fitr",
     "2018-06-16": "Eid al-Fitr Holiday",
-    "2018-08-20": "Arafat Day",
-    "2018-08-21": "Eid al-Adha",
-    "2018-08-22": "Eid al-Adha Holiday",
+    "2018-06-17": "Eid al-Fitr Holiday",
+    "2018-08-21": "Arafat Day",
+    "2018-08-22": "Eid al-Adha",
     "2018-08-23": "Eid al-Adha Holiday",
+    "2018-08-24": "Eid al-Adha Holiday",
     "2018-09-11": "Islamic New Year",
-    "2018-11-19": "Prophet's Birthday",
+    "2018-11-18": "Prophet's Birthday",
     "2018-11-30": "Commemoration Day",
     "2018-12-02": "National Day",
     "2018-12-03": "National Day",
     "2019-01-01": "New Year's Day",
+    "2019-02-05": "Pope Francis' Visit Day",
     "2019-06-03": "Eid al-Fitr Holiday",
     "2019-06-04": "Eid al-Fitr",
     "2019-06-05": "Eid al-Fitr Holiday",
@@ -929,6 +642,7 @@
     "2019-12-02": "National Day",
     "2019-12-03": "National Day",
     "2020-01-01": "New Year's Day",
+    "2020-05-22": "Eid al-Fitr Holiday",
     "2020-05-23": "Eid al-Fitr Holiday",
     "2020-05-24": "Eid al-Fitr",
     "2020-05-25": "Eid al-Fitr Holiday",
@@ -943,6 +657,7 @@
     "2020-12-02": "National Day",
     "2020-12-03": "National Day",
     "2021-01-01": "New Year's Day",
+    "2021-05-11": "Eid al-Fitr Holiday",
     "2021-05-12": "Eid al-Fitr Holiday",
     "2021-05-13": "Eid al-Fitr",
     "2021-05-14": "Eid al-Fitr Holiday",
@@ -957,10 +672,18 @@
     "2021-12-02": "National Day",
     "2021-12-03": "National Day",
     "2022-01-01": "New Year's Day",
+    "2022-04-30": "Eid al-Fitr Holiday",
     "2022-05-01": "Eid al-Fitr Holiday",
     "2022-05-02": "Eid al-Fitr",
     "2022-05-03": "Eid al-Fitr Holiday",
     "2022-05-04": "Eid al-Fitr Holiday",
+    "2022-05-05": "Eid al-Fitr Holiday",
+    "2022-05-06": "Eid al-Fitr Holiday",
+    "2022-05-07": "Eid al-Fitr Holiday",
+    "2022-05-08": "Eid al-Fitr Holiday",
+    "2022-05-14": "Death of Sheikh Khalifa bin Zayed Al Nahyan",
+    "2022-05-15": "Death of Sheikh Khalifa bin Zayed Al Nahyan",
+    "2022-05-16": "Death of Sheikh Khalifa bin Zayed Al Nahyan",
     "2022-07-08": "Arafat Day",
     "2022-07-09": "Eid al-Adha",
     "2022-07-10": "Eid al-Adha Holiday",
@@ -981,36 +704,37 @@
     "2023-06-30": "Eid al-Adha Holiday",
     "2023-07-21": "Islamic New Year",
     "2023-09-29": "Prophet's Birthday",
+    "2023-12-01": "Commemoration Day",
     "2023-12-02": "National Day",
     "2023-12-03": "National Day",
+    "2023-12-04": "National Day",
     "2024-01-01": "New Year's Day",
+    "2024-04-08": "Eid al-Fitr Holiday",
     "2024-04-09": "Eid al-Fitr Holiday",
     "2024-04-10": "Eid al-Fitr",
     "2024-04-11": "Eid al-Fitr Holiday",
     "2024-04-12": "Eid al-Fitr Holiday",
-    "2024-06-15": "Arafat Day (estimated)",
-    "2024-06-16": "Eid al-Adha (estimated)",
-    "2024-06-17": "Eid al-Adha Holiday (estimated)",
-    "2024-06-18": "Eid al-Adha Holiday (estimated)",
-    "2024-07-07": "Islamic New Year (estimated)",
-    "2024-09-15": "Prophet's Birthday (estimated)",
+    "2024-06-15": "Arafat Day",
+    "2024-06-16": "Eid al-Adha",
+    "2024-06-17": "Eid al-Adha Holiday",
+    "2024-06-18": "Eid al-Adha Holiday",
+    "2024-07-07": "Islamic New Year",
+    "2024-09-15": "Prophet's Birthday",
     "2024-12-02": "National Day",
     "2024-12-03": "National Day",
     "2025-01-01": "New Year's Day",
-    "2025-03-29": "Eid al-Fitr Holiday (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr Holiday (estimated)",
-    "2025-04-01": "Eid al-Fitr Holiday (estimated)",
-    "2025-06-05": "Arafat Day (estimated)",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-07": "Eid al-Adha Holiday (estimated)",
-    "2025-06-08": "Eid al-Adha Holiday (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
-    "2025-09-04": "Prophet's Birthday (estimated)",
+    "2025-03-30": "Eid al-Fitr",
+    "2025-03-31": "Eid al-Fitr Holiday",
+    "2025-04-01": "Eid al-Fitr Holiday",
+    "2025-06-03": "Arafat Day",
+    "2025-06-04": "Eid al-Adha",
+    "2025-06-05": "Eid al-Adha Holiday",
+    "2025-06-06": "Eid al-Adha Holiday",
+    "2025-06-26": "Islamic New Year",
+    "2025-09-05": "Prophet's Birthday",
     "2025-12-02": "National Day",
     "2025-12-03": "National Day",
     "2026-01-01": "New Year's Day",
-    "2026-03-19": "Eid al-Fitr Holiday (estimated)",
     "2026-03-20": "Eid al-Fitr (estimated)",
     "2026-03-21": "Eid al-Fitr Holiday (estimated)",
     "2026-03-22": "Eid al-Fitr Holiday (estimated)",
@@ -1023,7 +747,6 @@
     "2026-12-02": "National Day",
     "2026-12-03": "National Day",
     "2027-01-01": "New Year's Day",
-    "2027-03-08": "Eid al-Fitr Holiday (estimated)",
     "2027-03-09": "Eid al-Fitr (estimated)",
     "2027-03-10": "Eid al-Fitr Holiday (estimated)",
     "2027-03-11": "Eid al-Fitr Holiday (estimated)",
@@ -1036,7 +759,6 @@
     "2027-12-02": "National Day",
     "2027-12-03": "National Day",
     "2028-01-01": "New Year's Day",
-    "2028-02-25": "Eid al-Fitr Holiday (estimated)",
     "2028-02-26": "Eid al-Fitr (estimated)",
     "2028-02-27": "Eid al-Fitr Holiday (estimated)",
     "2028-02-28": "Eid al-Fitr Holiday (estimated)",
@@ -1049,7 +771,6 @@
     "2028-12-02": "National Day",
     "2028-12-03": "National Day",
     "2029-01-01": "New Year's Day",
-    "2029-02-13": "Eid al-Fitr Holiday (estimated)",
     "2029-02-14": "Eid al-Fitr (estimated)",
     "2029-02-15": "Eid al-Fitr Holiday (estimated)",
     "2029-02-16": "Eid al-Fitr Holiday (estimated)",
@@ -1062,7 +783,6 @@
     "2029-12-02": "National Day",
     "2029-12-03": "National Day",
     "2030-01-01": "New Year's Day",
-    "2030-02-03": "Eid al-Fitr Holiday (estimated)",
     "2030-02-04": "Eid al-Fitr (estimated)",
     "2030-02-05": "Eid al-Fitr Holiday (estimated)",
     "2030-02-06": "Eid al-Fitr Holiday (estimated)",
@@ -1075,7 +795,6 @@
     "2030-12-02": "National Day",
     "2030-12-03": "National Day",
     "2031-01-01": "New Year's Day",
-    "2031-01-23": "Eid al-Fitr Holiday (estimated)",
     "2031-01-24": "Eid al-Fitr (estimated)",
     "2031-01-25": "Eid al-Fitr Holiday (estimated)",
     "2031-01-26": "Eid al-Fitr Holiday (estimated)",
@@ -1088,7 +807,6 @@
     "2031-12-02": "National Day",
     "2031-12-03": "National Day",
     "2032-01-01": "New Year's Day",
-    "2032-01-13": "Eid al-Fitr Holiday (estimated)",
     "2032-01-14": "Eid al-Fitr (estimated)",
     "2032-01-15": "Eid al-Fitr Holiday (estimated)",
     "2032-01-16": "Eid al-Fitr Holiday (estimated)",
@@ -1100,7 +818,7 @@
     "2032-06-20": "Prophet's Birthday (estimated)",
     "2032-12-02": "National Day",
     "2032-12-03": "National Day",
-    "2033-01-01": "Eid al-Fitr Holiday (estimated); New Year's Day",
+    "2033-01-01": "New Year's Day",
     "2033-01-02": "Eid al-Fitr (estimated)",
     "2033-01-03": "Eid al-Fitr Holiday (estimated)",
     "2033-01-04": "Eid al-Fitr Holiday (estimated)",
@@ -1112,7 +830,6 @@
     "2033-06-09": "Prophet's Birthday (estimated)",
     "2033-12-02": "National Day",
     "2033-12-03": "National Day",
-    "2033-12-22": "Eid al-Fitr Holiday (estimated)",
     "2033-12-23": "Eid al-Fitr (estimated)",
     "2033-12-24": "Eid al-Fitr Holiday (estimated)",
     "2033-12-25": "Eid al-Fitr Holiday (estimated)",
@@ -1125,7 +842,6 @@
     "2034-05-30": "Prophet's Birthday (estimated)",
     "2034-12-02": "National Day",
     "2034-12-03": "National Day",
-    "2034-12-11": "Eid al-Fitr Holiday (estimated)",
     "2034-12-12": "Eid al-Fitr (estimated)",
     "2034-12-13": "Eid al-Fitr Holiday (estimated)",
     "2034-12-14": "Eid al-Fitr Holiday (estimated)",
@@ -1136,7 +852,6 @@
     "2035-02-20": "Eid al-Adha Holiday (estimated)",
     "2035-03-11": "Islamic New Year (estimated)",
     "2035-05-20": "Prophet's Birthday (estimated)",
-    "2035-11-30": "Eid al-Fitr Holiday (estimated)",
     "2035-12-01": "Eid al-Fitr (estimated)",
     "2035-12-02": "Eid al-Fitr Holiday (estimated); National Day",
     "2035-12-03": "Eid al-Fitr Holiday (estimated); National Day",
@@ -1147,7 +862,6 @@
     "2036-02-09": "Eid al-Adha Holiday (estimated)",
     "2036-02-28": "Islamic New Year (estimated)",
     "2036-05-08": "Prophet's Birthday (estimated)",
-    "2036-11-18": "Eid al-Fitr Holiday (estimated)",
     "2036-11-19": "Eid al-Fitr (estimated)",
     "2036-11-20": "Eid al-Fitr Holiday (estimated)",
     "2036-11-21": "Eid al-Fitr Holiday (estimated)",
@@ -1160,7 +874,6 @@
     "2037-01-28": "Eid al-Adha Holiday (estimated)",
     "2037-02-16": "Islamic New Year (estimated)",
     "2037-04-28": "Prophet's Birthday (estimated)",
-    "2037-11-07": "Eid al-Fitr Holiday (estimated)",
     "2037-11-08": "Eid al-Fitr (estimated)",
     "2037-11-09": "Eid al-Fitr Holiday (estimated)",
     "2037-11-10": "Eid al-Fitr Holiday (estimated)",
@@ -1173,7 +886,6 @@
     "2038-01-18": "Eid al-Adha Holiday (estimated)",
     "2038-02-05": "Islamic New Year (estimated)",
     "2038-04-17": "Prophet's Birthday (estimated)",
-    "2038-10-28": "Eid al-Fitr Holiday (estimated)",
     "2038-10-29": "Eid al-Fitr (estimated)",
     "2038-10-30": "Eid al-Fitr Holiday (estimated)",
     "2038-10-31": "Eid al-Fitr Holiday (estimated)",
@@ -1186,7 +898,6 @@
     "2039-01-07": "Eid al-Adha Holiday (estimated)",
     "2039-01-26": "Islamic New Year (estimated)",
     "2039-04-06": "Prophet's Birthday (estimated)",
-    "2039-10-18": "Eid al-Fitr Holiday (estimated)",
     "2039-10-19": "Eid al-Fitr (estimated)",
     "2039-10-20": "Eid al-Fitr Holiday (estimated)",
     "2039-10-21": "Eid al-Fitr Holiday (estimated)",
@@ -1199,7 +910,6 @@
     "2040-01-01": "New Year's Day",
     "2040-01-15": "Islamic New Year (estimated)",
     "2040-03-25": "Prophet's Birthday (estimated)",
-    "2040-10-06": "Eid al-Fitr Holiday (estimated)",
     "2040-10-07": "Eid al-Fitr (estimated)",
     "2040-10-08": "Eid al-Fitr Holiday (estimated)",
     "2040-10-09": "Eid al-Fitr Holiday (estimated)",
@@ -1212,7 +922,6 @@
     "2041-01-01": "New Year's Day",
     "2041-01-04": "Islamic New Year (estimated)",
     "2041-03-15": "Prophet's Birthday (estimated)",
-    "2041-09-25": "Eid al-Fitr Holiday (estimated)",
     "2041-09-26": "Eid al-Fitr (estimated)",
     "2041-09-27": "Eid al-Fitr Holiday (estimated)",
     "2041-09-28": "Eid al-Fitr Holiday (estimated)",
@@ -1224,7 +933,6 @@
     "2041-12-24": "Islamic New Year (estimated)",
     "2042-01-01": "New Year's Day",
     "2042-03-04": "Prophet's Birthday (estimated)",
-    "2042-09-14": "Eid al-Fitr Holiday (estimated)",
     "2042-09-15": "Eid al-Fitr (estimated)",
     "2042-09-16": "Eid al-Fitr Holiday (estimated)",
     "2042-09-17": "Eid al-Fitr Holiday (estimated)",
@@ -1237,7 +945,6 @@
     "2042-12-14": "Islamic New Year (estimated)",
     "2043-01-01": "New Year's Day",
     "2043-02-22": "Prophet's Birthday (estimated)",
-    "2043-09-03": "Eid al-Fitr Holiday (estimated)",
     "2043-09-04": "Eid al-Fitr (estimated)",
     "2043-09-05": "Eid al-Fitr Holiday (estimated)",
     "2043-09-06": "Eid al-Fitr Holiday (estimated)",
@@ -1249,7 +956,6 @@
     "2043-12-03": "Islamic New Year (estimated); National Day",
     "2044-01-01": "New Year's Day",
     "2044-02-11": "Prophet's Birthday (estimated)",
-    "2044-08-23": "Eid al-Fitr Holiday (estimated)",
     "2044-08-24": "Eid al-Fitr (estimated)",
     "2044-08-25": "Eid al-Fitr Holiday (estimated)",
     "2044-08-26": "Eid al-Fitr Holiday (estimated)",
@@ -1262,7 +968,6 @@
     "2044-12-03": "National Day",
     "2045-01-01": "New Year's Day",
     "2045-01-30": "Prophet's Birthday (estimated)",
-    "2045-08-13": "Eid al-Fitr Holiday (estimated)",
     "2045-08-14": "Eid al-Fitr (estimated)",
     "2045-08-15": "Eid al-Fitr Holiday (estimated)",
     "2045-08-16": "Eid al-Fitr Holiday (estimated)",
@@ -1275,7 +980,6 @@
     "2045-12-03": "National Day",
     "2046-01-01": "New Year's Day",
     "2046-01-19": "Prophet's Birthday (estimated)",
-    "2046-08-02": "Eid al-Fitr Holiday (estimated)",
     "2046-08-03": "Eid al-Fitr (estimated)",
     "2046-08-04": "Eid al-Fitr Holiday (estimated)",
     "2046-08-05": "Eid al-Fitr Holiday (estimated)",
@@ -1288,7 +992,6 @@
     "2046-12-03": "National Day",
     "2047-01-01": "New Year's Day",
     "2047-01-08": "Prophet's Birthday (estimated)",
-    "2047-07-23": "Eid al-Fitr Holiday (estimated)",
     "2047-07-24": "Eid al-Fitr (estimated)",
     "2047-07-25": "Eid al-Fitr Holiday (estimated)",
     "2047-07-26": "Eid al-Fitr Holiday (estimated)",
@@ -1301,7 +1004,6 @@
     "2047-12-03": "National Day",
     "2047-12-29": "Prophet's Birthday (estimated)",
     "2048-01-01": "New Year's Day",
-    "2048-07-11": "Eid al-Fitr Holiday (estimated)",
     "2048-07-12": "Eid al-Fitr (estimated)",
     "2048-07-13": "Eid al-Fitr Holiday (estimated)",
     "2048-07-14": "Eid al-Fitr Holiday (estimated)",
@@ -1314,7 +1016,6 @@
     "2048-12-03": "National Day",
     "2048-12-18": "Prophet's Birthday (estimated)",
     "2049-01-01": "New Year's Day",
-    "2049-06-30": "Eid al-Fitr Holiday (estimated)",
     "2049-07-01": "Eid al-Fitr (estimated)",
     "2049-07-02": "Eid al-Fitr Holiday (estimated)",
     "2049-07-03": "Eid al-Fitr Holiday (estimated)",
@@ -1327,7 +1028,6 @@
     "2049-12-03": "National Day",
     "2049-12-07": "Prophet's Birthday (estimated)",
     "2050-01-01": "New Year's Day",
-    "2050-06-19": "Eid al-Fitr Holiday (estimated)",
     "2050-06-20": "Eid al-Fitr (estimated)",
     "2050-06-21": "Eid al-Fitr Holiday (estimated)",
     "2050-06-22": "Eid al-Fitr Holiday (estimated)",


Test patch:
diff --git a/tests/countries/test_angola.py b/tests/countries/test_angola.py
index 768be84a..05d125db 100644
--- a/tests/countries/test_angola.py
+++ b/tests/countries/test_angola.py
@@ -342,18 +342,18 @@ class TestAngola(CommonCountryTests, TestCase):
             "uk",
             ("2023-01-01", "Новий рік"),
             ("2023-02-04", "День початку збройної боротьби за національне визволення"),
-            ("2023-02-20", "Вихідний за Карнавал"),
+            ("2023-02-20", "Карнавал (вихідний)"),
             ("2023-02-21", "Карнавал"),
             ("2023-03-08", "Міжнародний жіночий день"),
             ("2023-03-23", "День визволення південної Африки"),
-            ("2023-03-24", "Вихідний за День визволення південної Африки"),
-            ("2023-04-03", "Вихідний за День миру та національного примирення"),
+            ("2023-03-24", "День визволення південної Африки (вихідний)"),
+            ("2023-04-03", "День миру та національного примирення (вихідний)"),
             ("2023-04-04", "День миру та національного примирення"),
             ("2023-04-07", "Страсна пʼятниця"),
             ("2023-05-01", "Міжнародний день трудящих"),
             ("2023-09-17", "День засновника нації та національного героя"),
             ("2023-11-02", "День усіх померлих"),
-            ("2023-11-03", "Вихідний за День усіх померлих"),
+            ("2023-11-03", "День усіх померлих (вихідний)"),
             ("2023-11-11", "День національної незалежності"),
             ("2023-12-25", "Різдво Христове та День родини"),
         )
diff --git a/tests/countries/test_chile.py b/tests/countries/test_chile.py
index a00ab53a..921689a0 100644
--- a/tests/countries/test_chile.py
+++ b/tests/countries/test_chile.py
@@ -435,7 +435,7 @@ class TestChile(CommonCountryTests, TestCase):
             ("2022-08-15", "Внебовзяття Пресвятої Діви Марії"),
             ("2022-08-20", "Річниця Бернардо ОʼГіґґінса (свято комун Чіллан і Чіллан Вʼєхо)"),
             ("2022-09-16", "Національне свято"),
-            ("2022-09-18", "День Незалежності"),
+            ("2022-09-18", "День незалежності"),
             ("2022-09-19", "День військової слави"),
             ("2022-10-10", "День зустрічі двох світів"),
             ("2022-10-31", "День Реформації"),
diff --git a/tests/countries/test_cuba.py b/tests/countries/test_cuba.py
index 2fc84bf1..f7cfb383 100644
--- a/tests/countries/test_cuba.py
+++ b/tests/countries/test_cuba.py
@@ -330,7 +330,7 @@ class TestCuba(CommonCountryTests, TestCase):
         self.assertLocalizedHolidays(
             "uk",
             ("2022-01-01", "Тріумф революції"),
-            ("2022-01-02", "День перемоги"),
+            ("2022-01-02", "День Перемоги"),
             ("2022-04-15", "Страсна пʼятниця"),
             ("2022-05-01", "Міжнародний день трудящих"),
             ("2022-05-02", "Міжнародний день трудящих (вихідний)"),
diff --git a/tests/countries/test_czechia.py b/tests/countries/test_czechia.py
index 0ec10749..b72ec297 100644
--- a/tests/countries/test_czechia.py
+++ b/tests/countries/test_czechia.py
@@ -194,7 +194,7 @@ class TestCzechia(CommonCountryTests, TestCase):
             ("2022-04-15", "Страсна пʼятниця"),
             ("2022-04-18", "Великодній понеділок"),
             ("2022-05-01", "День праці"),
-            ("2022-05-08", "День перемоги"),
+            ("2022-05-08", "День Перемоги"),
             ("2022-07-05", "День Святих Кирила та Мефодія"),
             ("2022-07-06", "День спалення Яна Гуса"),
             ("2022-09-28", "День чеської державності"),
diff --git a/tests/countries/test_estonia.py b/tests/countries/test_estonia.py
index 10f3b5c7..007683b9 100644
--- a/tests/countries/test_estonia.py
+++ b/tests/countries/test_estonia.py
@@ -131,7 +131,7 @@ class TestEstonia(CommonCountryTests, TestCase):
             ("2022-04-17", "Великдень"),
             ("2022-05-01", "День весни"),
             ("2022-06-05", "Трійця"),
-            ("2022-06-23", "День перемоги"),
+            ("2022-06-23", "День Перемоги"),
             ("2022-06-24", "День літнього сонцестояння"),
             ("2022-08-20", "День відновлення незалежності"),
             ("2022-12-24", "Святий вечір"),
diff --git a/tests/countries/test_mozambique.py b/tests/countries/test_mozambique.py
index 852b88f8..2ff60b83 100644
--- a/tests/countries/test_mozambique.py
+++ b/tests/countries/test_mozambique.py
@@ -112,7 +112,7 @@ class TestMozambique(CommonCountryTests, TestCase):
             ("2023-05-01", "Міжнародний день трудящих"),
             ("2023-06-25", "День національної незалежності"),
             ("2023-06-26", "День національної незалежності (вихідний)"),
-            ("2023-09-07", "День перемоги"),
+            ("2023-09-07", "День Перемоги"),
             ("2023-09-25", "День Збройних сил національного визволення"),
             ("2023-10-04", "День миру та примирення"),
             ("2023-12-25", "День родини"),
diff --git a/tests/countries/test_poland.py b/tests/countries/test_poland.py
index eaf65d9b..93e49851 100644
--- a/tests/countries/test_poland.py
+++ b/tests/countries/test_poland.py
@@ -332,8 +332,8 @@ class TestPoland(CommonCountryTests, TestCase):
             ("2018-05-31", "Свято Тіла і Крові Христових"),
             ("2018-08-15", "Внебовзяття Пресвятої Діви Марії"),
             ("2018-11-01", "День усіх святих"),
-            ("2018-11-11", "День Незалежності"),
-            ("2018-11-12", "100-а річниця Дня Незалежності"),
+            ("2018-11-11", "День незалежності"),
+            ("2018-11-12", "100-а річниця Дня незалежності"),
             ("2018-12-25", "Різдво Христове"),
             ("2018-12-26", "Другий день Різдва"),
         )
@@ -349,7 +349,7 @@ class TestPoland(CommonCountryTests, TestCase):
             ("2022-06-16", "Свято Тіла і Крові Христових"),
             ("2022-08-15", "Внебовзяття Пресвятої Діви Марії"),
             ("2022-11-01", "День усіх святих"),
-            ("2022-11-11", "День Незалежності"),
+            ("2022-11-11", "День незалежності"),
             ("2022-12-25", "Різдво Христове"),
             ("2022-12-26", "Другий день Різдва"),
         )
diff --git a/tests/countries/test_united_arab_emirates.py b/tests/countries/test_united_arab_emirates.py
index 978cee54..1542cc44 100644
--- a/tests/countries/test_united_arab_emirates.py
+++ b/tests/countries/test_united_arab_emirates.py
@@ -12,6 +12,7 @@
 
 from unittest import TestCase
 
+from holidays.constants import GOVERNMENT, OPTIONAL, PUBLIC
 from holidays.countries.united_arab_emirates import UnitedArabEmirates, AE, ARE
 from tests.common import CommonCountryTests
 
@@ -19,91 +20,189 @@ from tests.common import CommonCountryTests
 class TestUnitedArabEmirates(CommonCountryTests, TestCase):
     @classmethod
     def setUpClass(cls):
-        super().setUpClass(UnitedArabEmirates, years=range(2014, 2024))
+        super().setUpClass(UnitedArabEmirates, years=range(1972, 2050))
 
     def test_country_aliases(self):
         self.assertAliases(UnitedArabEmirates, AE, ARE)
 
-    def test_2020(self):
-        self.assertHolidayDates(
-            UnitedArabEmirates(years=2020),
-            "2020-01-01",
-            "2020-05-23",
-            "2020-05-24",
-            "2020-05-25",
-            "2020-05-26",
-            "2020-07-30",
-            "2020-07-31",
-            "2020-08-01",
-            "2020-08-02",
-            "2020-08-23",
-            "2020-10-29",
-            "2020-12-01",
-            "2020-12-02",
-            "2020-12-03",
+    def test_no_holidays(self):
+        self.assertNoHolidays(
+            UnitedArabEmirates(years=1971, categories=(GOVERNMENT, OPTIONAL, PUBLIC))
         )
 
-    def test_commemoration_day(self):
-        self.assertNoHoliday("2014-11-30")
-        self.assertNoHolidayName("يوم الشهيد", 2014, 2023)
-        self.assertHoliday(f"{year}-11-30" for year in range(2015, 2019))
-        self.assertNoHoliday("2019-11-30")
-        self.assertHoliday(f"{year}-12-01" for year in range(2019, 2023))
+    def test_special(self):
+        self.assertHoliday(
+            # 29 Ramadan Eid al-Fitr specials.
+            "2020-05-22",
+            "2021-05-11",
+            "2022-04-30",
+            "2024-04-08",
+            # Other Special Public Holidays.
+            "2022-05-14",
+            "2022-05-15",
+            "2022-05-16",
+        )
 
-    def test_hijri_based(self):
+    def test_special_government(self):
         self.assertHoliday(
-            # Eid Al-Fitr
-            "2018-06-14",
+            UnitedArabEmirates(categories=GOVERNMENT),
+            # Extended holidays for Public Sectors.
+            "2022-05-05",
+            "2022-05-06",
+            "2022-05-07",
+            "2022-05-08",
+            "2023-12-04",
+        )
+
+    def test_special_optional(self):
+        # 2019 Pope Visit.
+        self.assertHoliday(UnitedArabEmirates(categories=OPTIONAL), "2019-02-05")
+
+    def test_commemoration_day(self):
+        name = "يوم الشهيد"
+        self.assertHolidayName(name, (f"{year}-11-30" for year in range(2015, 2019)))
+        self.assertHolidayName(name, (f"{year}-12-01" for year in range(2019, 2024)))
+        self.assertNoHolidayName(name, range(1972, 2015), range(2024, 2050))
+
+    def test_eid_al_fitr(self):
+        name = "عيد الفطر"
+        name_holiday = "عطلة عيد الفطر"
+        self.assertHolidayName(
+            name,
+            "2017-06-25",
             "2018-06-15",
-            "2018-06-16",
-            "2020-05-23",
+            "2019-06-04",
             "2020-05-24",
-            "2020-05-25",
-            "2020-05-26",
-            # Arafat Day & Eid Al-Adha
-            "2020-07-30",
+            "2021-05-13",
+            "2022-05-02",
+            "2023-04-21",
+            "2024-04-10",
+            "2025-03-30",
+        )
+        self.assertTrue(
+            set(range(1972, 2050)).issubset(
+                {dt.year for dt in self.holidays.get_named(name, lookup="icontains")}
+            )
+        )
+        self.assertTrue(
+            set(range(1972, 2050)).issubset(
+                {dt.year for dt in self.holidays.get_named(name_holiday, lookup="icontains")}
+            )
+        )
+        self.assertNoHolidayName(name_holiday, "2018-06-14", "2025-03-29")
+
+    def test_eid_al_adha(self):
+        name = "عيد الأضحى"
+        self.assertHolidayName(
+            name,
+            "2017-09-01",
+            "2018-08-22",
+            "2019-08-11",
             "2020-07-31",
-            "2020-08-01",
-            "2020-08-02",
-            "2023-06-27",
+            "2021-07-20",
+            "2022-07-09",
             "2023-06-28",
-            "2023-06-29",
-            "2023-06-30",
-            # Islamic New Year
-            "2008-01-10",
-            "2008-12-29",
+            "2024-06-16",
+            "2025-06-04",
+        )
+        self.assertTrue(
+            set(range(1972, 2050)).issubset(
+                {dt.year for dt in self.holidays.get_named(name, lookup="icontains")}
+            )
+        )
+        self.assertTrue(
+            set(range(1972, 2050)).issubset(
+                {dt.year for dt in self.holidays.get_named("عطلة عيد الأضحى", lookup="icontains")}
+            )
+        )
+        self.assertTrue(
+            set(range(1972, 2050)).issubset(
+                {dt.year for dt in self.holidays.get_named("وقفة عرفة", lookup="icontains")}
+            )
+        )
+
+    def test_islamic_new_year(self):
+        name = "رأس السنة الهجرية"
+        self.assertHolidayName(
+            name,
+            "2017-09-22",
             "2018-09-11",
             "2019-08-31",
             "2020-08-23",
             "2021-08-12",
             "2022-07-30",
             "2023-07-21",
-            # Isra' and Mi'raj
-            "2018-04-13",
-            # Prophet's Birthday
-            "2018-11-19",
+            "2024-07-07",
+            "2025-06-26",
+        )
+        self.assertTrue(
+            set(range(1972, 2050)).issubset(
+                {dt.year for dt in self.holidays.get_named(name, lookup="icontains")}
+            )
+        )
+
+    def test_prophets_birthday(self):
+        name = "عيد المولد النبوي"
+        self.assertHolidayName(
+            name,
+            "2017-11-30",
+            "2018-11-18",
             "2019-11-09",
             "2020-10-29",
             "2021-10-21",
             "2022-10-08",
             "2023-09-29",
+            "2024-09-15",
+            "2025-09-05",
+        )
+        self.assertTrue(
+            set(range(1972, 2050)).issubset(
+                {dt.year for dt in self.holidays.get_named(name, lookup="icontains")}
+            )
+        )
+
+    def test_isra_and_miraj(self):
+        name = "ليلة المعراج"
+        self.assertHolidayName(name, "2017-04-23", "2018-04-14")
+        years_found = {dt.year for dt in self.holidays.get_named(name, lookup="icontains")}
+        self.assertTrue(set(range(1972, 2018)).issubset(years_found))
+        self.assertFalse(set(range(2019, 2050)).intersection(years_found))
+
+    def test_2020(self):
+        # https://gulfbusiness.com/revealed-uae-private-sector-holidays-for-eid-al-fitr-2020/
+        # https://www.timeanddate.com/holidays/united-arab-emirates/2020?hol=134217729
+        self.assertHolidays(
+            UnitedArabEmirates(years=2020),
+            ("2020-01-01", "رأس السنة الميلادية"),
+            ("2020-05-22", "عطلة عيد الفطر"),
+            ("2020-05-23", "عطلة عيد الفطر"),
+            ("2020-05-24", "عيد الفطر"),
+            ("2020-05-25", "عطلة عيد الفطر"),
+            ("2020-05-26", "عطلة عيد الفطر"),
+            ("2020-07-30", "وقفة عرفة"),
+            ("2020-07-31", "عيد الأضحى"),
+            ("2020-08-01", "عطلة عيد الأضحى"),
+            ("2020-08-02", "عطلة عيد الأضحى"),
+            ("2020-08-23", "رأس السنة الهجرية"),
+            ("2020-10-29", "عيد المولد النبوي"),
+            ("2020-12-01", "يوم الشهيد"),
+            ("2020-12-02", "اليوم الوطني"),
+            ("2020-12-03", "اليوم الوطني"),
         )
-        self.assertNoHoliday("2018-06-13")  # Eid Al-Fitr Eve
-        self.assertNoHolidayName("ليلة المعراج", range(2019, 2024))
 
     def test_l10n_default(self):
         self.assertLocalizedHolidays(
             ("2018-01-01", "رأس السنة الميلادية"),
-            ("2018-04-13", "ليلة المعراج"),
-            ("2018-06-14", "عيد الفطر"),
-            ("2018-06-15", "عطلة عيد الفطر"),
+            ("2018-04-14", "ليلة المعراج"),
+            ("2018-06-15", "عيد الفطر"),
             ("2018-06-16", "عطلة عيد الفطر"),
-            ("2018-08-20", "وقفة عرفة"),
-            ("2018-08-21", "عيد الأضحى"),
-            ("2018-08-22", "عطلة عيد الأضحى"),
+            ("2018-06-17", "عطلة عيد الفطر"),
+            ("2018-08-21", "وقفة عرفة"),
+            ("2018-08-22", "عيد الأضحى"),
             ("2018-08-23", "عطلة عيد الأضحى"),
+            ("2018-08-24", "عطلة عيد الأضحى"),
             ("2018-09-11", "رأس السنة الهجرية"),
-            ("2018-11-19", "عيد المولد النبوي"),
+            ("2018-11-18", "عيد المولد النبوي"),
             ("2018-11-30", "يوم الشهيد"),
             ("2018-12-02", "اليوم الوطني"),
             ("2018-12-03", "اليوم الوطني"),
@@ -113,17 +212,36 @@ class TestUnitedArabEmirates(CommonCountryTests, TestCase):
         self.assertLocalizedHolidays(
             "en_US",
             ("2018-01-01", "New Year's Day"),
-            ("2018-04-13", "Isra' and Mi'raj"),
-            ("2018-06-14", "Eid al-Fitr"),
-            ("2018-06-15", "Eid al-Fitr Holiday"),
+            ("2018-04-14", "Isra' and Mi'raj"),
+            ("2018-06-15", "Eid al-Fitr"),
             ("2018-06-16", "Eid al-Fitr Holiday"),
-            ("2018-08-20", "Arafat Day"),
-            ("2018-08-21", "Eid al-Adha"),
-            ("2018-08-22", "Eid al-Adha Holiday"),
+            ("2018-06-17", "Eid al-Fitr Holiday"),
+            ("2018-08-21", "Arafat Day"),
+            ("2018-08-22", "Eid al-Adha"),
             ("2018-08-23", "Eid al-Adha Holiday"),
+            ("2018-08-24", "Eid al-Adha Holiday"),
             ("2018-09-11", "Islamic New Year"),
-            ("2018-11-19", "Prophet's Birthday"),
+            ("2018-11-18", "Prophet's Birthday"),
             ("2018-11-30", "Commemoration Day"),
             ("2018-12-02", "National Day"),
             ("2018-12-03", "National Day"),
         )
+
+    def test_l10n_th(self):
+        self.assertLocalizedHolidays(
+            "th",
+            ("2018-01-01", "วันขึ้นปีใหม่"),
+            ("2018-04-14", "วันเมี๊ยะราจ"),
+            ("2018-06-15", "วันอีฎิ้ลฟิตริ"),
+            ("2018-06-16", "เทศกาลอีฎิ้ลฟิตริ"),
+            ("2018-06-17", "เทศกาลอีฎิ้ลฟิตริ"),
+            ("2018-08-21", "วันอารอฟะห์"),
+            ("2018-08-22", "วันอีดิ้ลอัฎฮา"),
+            ("2018-08-23", "เทศกาลอีดิ้ลอัฎฮา"),
+            ("2018-08-24", "เทศกาลอีดิ้ลอัฎฮา"),
+            ("2018-09-11", "วันขึ้นปีใหม่อิสลาม"),
+            ("2018-11-18", "วันเมาลิดนบี"),
+            ("2018-11-30", "วันรำลึกผู้อุทิศตน"),
+            ("2018-12-02", "วันชาติสหรัฐอาหรับเอมิเรตส์"),
+            ("2018-12-03", "วันชาติสหรัฐอาหรับเอมิเรตส์"),
+        )
diff --git a/tests/countries/test_uzbekistan.py b/tests/countries/test_uzbekistan.py
index 2ff5b5a7..7ace4bd8 100644
--- a/tests/countries/test_uzbekistan.py
+++ b/tests/countries/test_uzbekistan.py
@@ -209,8 +209,8 @@ class TestUzbekistan(CommonCountryTests, TestCase):
             ("2023-06-28", "Курбан-байрам"),
             ("2023-06-29", "Додатковий вихідний згідно указу Президента"),
             ("2023-06-30", "Додатковий вихідний згідно указу Президента"),
-            ("2023-09-01", "День Незалежності"),
-            ("2023-10-01", "День Вчителя і Наставника"),
-            ("2023-10-02", "День Вчителя і Наставника (вихідний)"),
+            ("2023-09-01", "День незалежності"),
+            ("2023-10-01", "День вчителя і наставника"),
+            ("2023-10-02", "День вчителя і наставника (вихідний)"),
             ("2023-12-08", "День Конституції Республіки Узбекистан"),
         )