Repository: vacanza/holidays (python)

Issue:
Add Oman holidays
Links:
  - https://en.wikipedia.org/wiki/Public_holidays_in_Oman
  - https://www.timeanddate.com/holidays/oman/

Pull request description:
Add Oman holidays
<!--
  Thanks for contributing to holidays!
-->

## I've added Oman's Holidays.

<!--
  Describe the big picture of your changes.
  Don't forget to link your PR to an existing issue if any.
-->


Resolves #1237.

## 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.
-->

- [x] New country/market holidays support (thank you!)
- [ ] 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.md
[docs]: https://github.com/vacanza/holidays/tree/dev/docs/source


Patch:
diff --git a/README.md b/README.md
index 568d47c9..91cbcabd 100644
--- a/README.md
+++ b/README.md
@@ -99,7 +99,7 @@ and detailed information.
 
 ## Available Countries
 
-We currently support 167 country codes. The standard way to refer to a country is by using its [ISO
+We currently support 168 country codes. The standard way to refer to a country is by using its [ISO
 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes), the same used
 for domain names, and for a subdivision its [ISO 3166-2
 code](https://en.wikipedia.org/wiki/ISO_3166-2). Some countries have common or foreign names or
@@ -940,6 +940,13 @@ any) in brackets, available languages and additional holiday categories. All cou
 <td></td>
 </tr>
 <tr>
+<td>Oman</td>
+<td>OM</td>
+<td></td>
+<td><strong>ar</strong>, en_US</td>
+<td></td>
+</tr>
+<tr>
 <td>Pakistan</td>
 <td>PK</td>
 <td></td>
diff --git a/holidays/countries/__init__.py b/holidays/countries/__init__.py
index 569888ad..9ecae532 100644
--- a/holidays/countries/__init__.py
+++ b/holidays/countries/__init__.py
@@ -126,6 +126,7 @@ from .nigeria import Nigeria, NG, NGA
 from .north_macedonia import NorthMacedonia, MK, MKD
 from .northern_mariana_islands import NorthernMarianaIslands, MP, MNP, HolidaysMP
 from .norway import Norway, NO, NOR
+from .oman import Oman, OM, OMN
 from .pakistan import Pakistan, PK, PAK
 from .palau import Palau, PW, PLW
 from .panama import Panama, PA, PAN
diff --git a/holidays/countries/oman.py b/holidays/countries/oman.py
new file mode 100644
index 00000000..df7cecd8
--- /dev/null
+++ b/holidays/countries/oman.py
@@ -0,0 +1,185 @@
+#  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.md 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)
+
+from gettext import gettext as tr
+
+from holidays.calendars import _CustomIslamicHolidays
+from holidays.calendars.gregorian import (
+    JAN,
+    FEB,
+    MAR,
+    APR,
+    MAY,
+    JUN,
+    JUL,
+    AUG,
+    SEP,
+    OCT,
+    NOV,
+    THU,
+    FRI,
+    SAT,
+    _timedelta,
+)
+from holidays.groups import IslamicHolidays
+from holidays.holiday_base import HolidayBase
+
+
+class Oman(HolidayBase, IslamicHolidays):
+    """Oman holidays.
+
+    References:
+        * <https://en.wikipedia.org/wiki/Public_holidays_in_Oman>
+        * [Independence](https://www.omaninfo.om/pages/175/show/572)
+        * [Weekend](https://abnnews.com/the-sultanate-of-oman-changes-weekend-days-from-01-may-2013/)
+        * [Decree 56/2020](https://decree.om/2020/rd20200056/)
+        * [Decree 88/2022](https://decree.om/2022/rd20220088/)
+        * [Decree 15/2025 (National day is moved)](https://decree.om/2025/rd20250015/)
+    """
+
+    country = "OM"
+    default_language = "ar"
+    # %s (estimated).
+    estimated_label = tr("%s (مُقدَّر)")
+    start_year = 1970
+    supported_languages = ("ar", "en_US")
+
+    def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
+        """
+        Args:
+            islamic_show_estimated:
+                Whether to add "estimated" label to Islamic holidays name
+                if holiday date is estimated.
+        """
+        IslamicHolidays.__init__(
+            self, cls=OmanIslamicHolidays, show_estimated=islamic_show_estimated
+        )
+        super().__init__(*args, **kwargs)
+
+    def _populate_public_holidays(self):
+        # Oman switches from THU-FRI to FRI-SAT on May 1, 2013.
+        self.weekend = {THU, FRI} if self._year <= 2013 else {FRI, SAT}
+
+        if self._year >= 2020:
+            # Sultan's Accession Day.
+            self._add_holiday_jan_11(tr("اليوم الوطني لتولي السلطان"))
+
+        if self._year <= 2019:
+            # Renaissance Day.
+            self._add_holiday_jul_23(tr("يوم النهضة"))
+
+        if self._year >= 2020:
+            # National Day.
+            name = tr("يوم وطني")
+            if self._year <= 2024:
+                self._add_holiday_nov_18(name)
+                self._add_holiday_nov_19(name)
+            else:
+                self._add_holiday_nov_20(name)
+                self._add_holiday_nov_21(name)
+
+        # Islamic New Year.
+        self._add_islamic_new_year_day(tr("رأس السنة الهجرية"))
+
+        # Prophet's Birthday.
+        self._add_mawlid_day(tr("مولد النبي"))
+
+        # Isra' and Mi'raj.
+        self._add_isra_and_miraj_day(tr("الإسراء والمعراج"))
+
+        # Eid al-Fitr.
+        name = tr("عيد الفطر")
+        self._add_eid_al_fitr_day(name)
+        self._add_eid_al_fitr_day_two(name)
+        self._add_eid_al_fitr_day_three(name)
+        for dt in self._add_holiday_29_ramadan(name):
+            if _timedelta(dt, +1) not in self:
+                self._add_eid_al_fitr_eve(name)
+
+        # Eid al-Adha.
+        name = tr("عيد الأضحى")
+        self._add_arafah_day(name)
+        self._add_eid_al_adha_day(name)
+        self._add_eid_al_adha_day_two(name)
+        self._add_eid_al_adha_day_three(name)
+
+
+class OM(Oman):
+    pass
+
+
+class OMN(Oman):
+    pass
+
+
+class OmanIslamicHolidays(_CustomIslamicHolidays):
+    # https://www.timeanddate.com/holidays/oman/muharram-new-year
+    HIJRI_NEW_YEAR_DATES = {
+        2018: (SEP, 11),
+        2019: (SEP, 1),
+        2020: (AUG, 21),
+        2021: (AUG, 10),
+        2022: (JUL, 30),
+        2023: (JUL, 20),
+        2024: (JUL, 7),
+    }
+
+    # https://www.timeanddate.com/holidays/oman/prophet-birthday
+    MAWLID_DATES = {
+        2018: (NOV, 20),
+        2019: (NOV, 9),
+        2020: (OCT, 29),
+        2021: (OCT, 19),
+        2022: (OCT, 9),
+        2023: (SEP, 28),
+        2024: (SEP, 15),
+    }
+
+    # https://www.timeanddate.com/holidays/oman/isra-miraj
+    ISRA_AND_MIRAJ_DATES = {
+        2018: (APR, 13),
+        2019: (APR, 3),
+        2020: (MAR, 22),
+        2021: (MAR, 11),
+        2022: (MAR, 1),
+        2023: (FEB, 19),
+        2024: (FEB, 8),
+        2025: (JAN, 27),
+    }
+
+    # https://www.timeanddate.com/holidays/oman/eid-al-adha
+    EID_AL_ADHA_DATES = {
+        2019: (AUG, 11),
+        2020: (JUL, 31),
+        2021: (JUL, 20),
+        2022: (JUL, 9),
+        2023: (JUN, 28),
+        2024: (JUN, 17),
+    }
+
+    # https://www.timeanddate.com/holidays/oman/eid-al-fitr
+    EID_AL_FITR_DATES = {
+        2019: (JUN, 4),
+        2020: (MAY, 24),
+        2021: (MAY, 13),
+        2022: (MAY, 2),
+        2023: (APR, 22),
+        2024: (APR, 10),
+        2025: (MAR, 31),
+    }
+
+    # https://www.timeanddate.com/holidays/oman/ramadan-begins
+    RAMADAN_BEGINNING_DATES = {
+        2023: (MAR, 23),
+        2024: (MAR, 12),
+        2025: (MAR, 1),
+    }
diff --git a/holidays/groups/islamic.py b/holidays/groups/islamic.py
index f81bed3e..574ba10d 100644
--- a/holidays/groups/islamic.py
+++ b/holidays/groups/islamic.py
@@ -242,6 +242,16 @@ class IslamicHolidays(EasternCalendarHolidays):
             name, self._islamic_calendar.hasan_al_askari_death_dates(self._year)
         )
 
+    def _add_holiday_29_ramadan(self, name) -> set[date]:
+        """
+        Add 29th Ramadan holiday.
+
+        https://decree.om/2022/rd20220088/
+        """
+        return self._add_islamic_calendar_holiday(
+            name, self._islamic_calendar.ramadan_beginning_dates(self._year), days_delta=+28
+        )
+
     def _add_imam_mahdi_birthday_day(self, name) -> set[date]:
         """
         Add birthday of Muhammad al-Mahdi day (15th day of 8th month).
diff --git a/holidays/locale/ar/LC_MESSAGES/OM.po b/holidays/locale/ar/LC_MESSAGES/OM.po
new file mode 100644
index 00000000..a0552814
--- /dev/null
+++ b/holidays/locale/ar/LC_MESSAGES/OM.po
@@ -0,0 +1,64 @@
+#  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.md 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)
+#
+# Oman holidays.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Holidays 0.71\n"
+"POT-Creation-Date: 2025-04-11 14:36+0500\n"
+"PO-Revision-Date: 2025-04-11 14:36+0500\n"
+"Last-Translator: Wasif Shahzad <wasif_shahzad_1@outlook.com>\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: Lingva 5.0.5\n"
+"X-Source-Language: ar\n"
+
+#. %s (estimated).
+#, c-format
+msgid "%s (مُقدَّر)"
+msgstr ""
+
+#. Sultan's Accession Day.
+msgid "اليوم الوطني لتولي السلطان"
+msgstr ""
+
+#. Renaissance Day.
+msgid "يوم النهضة"
+msgstr ""
+
+#. National Day.
+msgid "يوم وطني"
+msgstr ""
+
+#. Islamic New Year.
+msgid "رأس السنة الهجرية"
+msgstr ""
+
+#. Prophet's Birthday.
+msgid "مولد النبي"
+msgstr ""
+
+#. Isra' and Mi'raj.
+msgid "الإسراء والمعراج"
+msgstr ""
+
+#. Eid al-Fitr.
+msgid "عيد الفطر"
+msgstr ""
+
+#. Eid al-Adha.
+msgid "عيد الأضحى"
+msgstr ""
diff --git a/holidays/locale/en_US/LC_MESSAGES/OM.po b/holidays/locale/en_US/LC_MESSAGES/OM.po
new file mode 100644
index 00000000..e9822aa0
--- /dev/null
+++ b/holidays/locale/en_US/LC_MESSAGES/OM.po
@@ -0,0 +1,65 @@
+#  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.md 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)
+#
+# Oman holidays en_US localization.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Holidays 0.71\n"
+"POT-Creation-Date: 2025-04-11 14:36+0500\n"
+"PO-Revision-Date: 2025-04-11 23:02+0500\n"
+"Last-Translator: Wasif Shahzad <wasif_shahzad_1@outlook.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.6\n"
+"X-Source-Language: ar\n"
+
+#. %s (estimated).
+#, c-format
+msgid "%s (مُقدَّر)"
+msgstr "%s (estimated)"
+
+#. Sultan's Accession Day.
+msgid "اليوم الوطني لتولي السلطان"
+msgstr "Sultan's Accession Day"
+
+#. Renaissance Day.
+msgid "يوم النهضة"
+msgstr "Renaissance Day"
+
+#. National Day.
+msgid "يوم وطني"
+msgstr "National Day"
+
+#. Islamic New Year.
+msgid "رأس السنة الهجرية"
+msgstr "Islamic New Year"
+
+#. Prophet's Birthday.
+msgid "مولد النبي"
+msgstr "Prophet's Birthday"
+
+#. Isra' and Mi'raj.
+msgid "الإسراء والمعراج"
+msgstr "Isra' and Mi'raj"
+
+#. Eid al-Fitr.
+msgid "عيد الفطر"
+msgstr "Eid al-Fitr"
+
+#. Eid al-Adha.
+msgid "عيد الأضحى"
+msgstr "Eid al-Adha"
diff --git a/holidays/registry.py b/holidays/registry.py
index aa4ece0f..300d832a 100644
--- a/holidays/registry.py
+++ b/holidays/registry.py
@@ -134,6 +134,7 @@ COUNTRIES: RegistryDict = {
     "north_macedonia": ("NorthMacedonia", "MK", "MKD"),
     "northern_mariana_islands": ("NorthernMarianaIslands", "MP", "MNP", "HolidaysMP"),
     "norway": ("Norway", "NO", "NOR"),
+    "oman": ("Oman", "OM", "OMN"),
     "pakistan": ("Pakistan", "PK", "PAK"),
     "palau": ("Palau", "PW", "PLW"),
     "panama": ("Panama", "PA", "PAN"),


Test patch:
diff --git a/tests/countries/test_oman.py b/tests/countries/test_oman.py
new file mode 100644
index 00000000..10a6be38
--- /dev/null
+++ b/tests/countries/test_oman.py
@@ -0,0 +1,238 @@
+#  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.md 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)
+
+from unittest import TestCase
+
+from holidays.countries.oman import Oman, OM, OMN
+from tests.common import CommonCountryTests
+
+
+class TestOman(CommonCountryTests, TestCase):
+    @classmethod
+    def setUpClass(cls):
+        years = range(1970, 2050)
+        super().setUpClass(Oman, years=years)
+        cls.no_estimated_holidays = Oman(years=years, islamic_show_estimated=False)
+
+    def test_country_aliases(self):
+        self.assertAliases(Oman, OM, OMN)
+
+    def test_no_holidays(self):
+        self.assertNoHolidays(Oman(years=1969))
+
+    def test_accession_day(self):
+        name = "اليوم الوطني لتولي السلطان"
+        self.assertHolidayName(name, (f"{year}-01-11" for year in range(2020, 2050)))
+        self.assertNoHolidayName(name, range(1970, 2020))
+
+    def test_renaissance_day(self):
+        name = "يوم النهضة"
+        self.assertHolidayName(name, (f"{year}-07-23" for year in range(1970, 2020)))
+        self.assertNoHolidayName(name, range(2020, 2050))
+
+    def test_national_day(self):
+        name = "يوم وطني"
+        self.assertHolidayName(name, (f"{year}-11-18" for year in range(2020, 2025)))
+        self.assertHolidayName(name, (f"{year}-11-19" for year in range(2020, 2025)))
+        self.assertHolidayName(name, (f"{year}-11-20" for year in range(2025, 2050)))
+        self.assertHolidayName(name, (f"{year}-11-21" for year in range(2025, 2050)))
+        self.assertNoHolidayName(name, range(1970, 2020))
+
+    def test_islamic_new_year(self):
+        name = "رأس السنة الهجرية"
+        dts = (
+            "2018-09-11",
+            "2019-09-01",
+            "2020-08-21",
+            "2021-08-10",
+            "2022-07-30",
+            "2023-07-20",
+            "2024-07-07",
+        )
+        self.assertHolidayName(name, dts)
+        self.assertHolidayName(name, self.no_estimated_holidays, range(1970, 2050))
+
+    def test_mawlid(self):
+        name = "مولد النبي"
+        dts = (
+            "2018-11-20",
+            "2019-11-09",
+            "2020-10-29",
+            "2021-10-19",
+            "2022-10-09",
+            "2023-09-28",
+            "2024-09-15",
+        )
+        self.assertHolidayName(name, dts)
+        self.assertHolidayName(name, self.no_estimated_holidays, range(1970, 2050))
+
+    def test_isra_and_miraj(self):
+        name = "الإسراء والمعراج"
+        dts = (
+            "2018-04-13",
+            "2019-04-03",
+            "2020-03-22",
+            "2021-03-11",
+            "2022-03-01",
+            "2023-02-19",
+            "2024-02-08",
+            "2025-01-27",
+        )
+        self.assertHolidayName(name, dts)
+        self.assertHolidayName(name, self.no_estimated_holidays, range(1970, 2050))
+
+    def test_eid_al_fitr(self):
+        name = "عيد الفطر"
+        dts = (
+            "2019-06-03",
+            "2019-06-04",
+            "2019-06-05",
+            "2019-06-06",
+            "2020-05-22",
+            "2020-05-23",
+            "2020-05-24",
+            "2020-05-25",
+            "2020-05-26",
+            "2021-05-11",
+            "2021-05-12",
+            "2021-05-13",
+            "2021-05-14",
+            "2021-05-15",
+            "2022-04-30",
+            "2022-05-01",
+            "2022-05-02",
+            "2022-05-03",
+            "2022-05-04",
+            "2023-04-20",
+            "2023-04-21",
+            "2023-04-22",
+            "2023-04-23",
+            "2023-04-24",
+            "2024-04-09",
+            "2024-04-10",
+            "2024-04-11",
+            "2024-04-12",
+            "2025-03-29",
+            "2025-03-30",
+            "2025-03-31",
+            "2025-04-01",
+            "2025-04-02",
+        )
+        self.assertHolidayName(name, self.no_estimated_holidays, dts)
+        self.assertHolidayName(name, self.no_estimated_holidays, range(1970, 2050))
+
+    def test_eid_al_adha(self):
+        name = "عيد الأضحى"
+        dts = (
+            "2019-08-10",
+            "2019-08-11",
+            "2019-08-12",
+            "2019-08-13",
+            "2020-07-30",
+            "2020-07-31",
+            "2020-08-01",
+            "2020-08-02",
+            "2021-07-19",
+            "2021-07-20",
+            "2021-07-21",
+            "2021-07-22",
+            "2022-07-08",
+            "2022-07-09",
+            "2022-07-10",
+            "2022-07-11",
+            "2023-06-27",
+            "2023-06-28",
+            "2023-06-29",
+            "2023-06-30",
+            "2024-06-16",
+            "2024-06-17",
+            "2024-06-18",
+            "2024-06-19",
+        )
+        self.assertHolidayName(name, dts)
+        self.assertHolidayName(name, self.no_estimated_holidays, range(1970, 2050))
+
+    def test_2019(self):
+        self.assertHolidays(
+            Oman(years=2019),
+            ("2019-04-03", "الإسراء والمعراج"),
+            ("2019-06-03", "عيد الفطر (مُقدَّر)"),
+            ("2019-06-04", "عيد الفطر"),
+            ("2019-06-05", "عيد الفطر"),
+            ("2019-06-06", "عيد الفطر"),
+            ("2019-07-23", "يوم النهضة"),
+            ("2019-08-10", "عيد الأضحى"),
+            ("2019-08-11", "عيد الأضحى"),
+            ("2019-08-12", "عيد الأضحى"),
+            ("2019-08-13", "عيد الأضحى"),
+            ("2019-09-01", "رأس السنة الهجرية"),
+            ("2019-11-09", "مولد النبي"),
+        )
+
+    def test_2021(self):
+        self.assertHolidays(
+            Oman(years=2021),
+            ("2021-01-11", "اليوم الوطني لتولي السلطان"),
+            ("2021-03-11", "الإسراء والمعراج"),
+            ("2021-05-11", "عيد الفطر (مُقدَّر)"),
+            ("2021-05-12", "عيد الفطر"),
+            ("2021-05-13", "عيد الفطر"),
+            ("2021-05-14", "عيد الفطر"),
+            ("2021-05-15", "عيد الفطر"),
+            ("2021-07-19", "عيد الأضحى"),
+            ("2021-07-20", "عيد الأضحى"),
+            ("2021-07-21", "عيد الأضحى"),
+            ("2021-07-22", "عيد الأضحى"),
+            ("2021-08-10", "رأس السنة الهجرية"),
+            ("2021-10-19", "مولد النبي"),
+            ("2021-11-18", "يوم وطني"),
+            ("2021-11-19", "يوم وطني"),
+        )
+
+    def test_l10n_default(self):
+        self.assertLocalizedHolidays(
+            ("2023-01-11", "اليوم الوطني لتولي السلطان"),
+            ("2023-02-19", "الإسراء والمعراج"),
+            ("2023-04-20", "عيد الفطر"),
+            ("2023-04-21", "عيد الفطر"),
+            ("2023-04-22", "عيد الفطر"),
+            ("2023-04-23", "عيد الفطر"),
+            ("2023-04-24", "عيد الفطر"),
+            ("2023-06-27", "عيد الأضحى"),
+            ("2023-06-28", "عيد الأضحى"),
+            ("2023-06-29", "عيد الأضحى"),
+            ("2023-06-30", "عيد الأضحى"),
+            ("2023-07-20", "رأس السنة الهجرية"),
+            ("2023-09-28", "مولد النبي"),
+            ("2023-11-18", "يوم وطني"),
+            ("2023-11-19", "يوم وطني"),
+        )
+
+    def test_l10n_en_us(self):
+        self.assertLocalizedHolidays(
+            "en_US",
+            ("2023-01-11", "Sultan's Accession Day"),
+            ("2023-02-19", "Isra' and Mi'raj"),
+            ("2023-04-20", "Eid al-Fitr"),
+            ("2023-04-21", "Eid al-Fitr"),
+            ("2023-04-22", "Eid al-Fitr"),
+            ("2023-04-23", "Eid al-Fitr"),
+            ("2023-04-24", "Eid al-Fitr"),
+            ("2023-06-27", "Eid al-Adha"),
+            ("2023-06-28", "Eid al-Adha"),
+            ("2023-06-29", "Eid al-Adha"),
+            ("2023-06-30", "Eid al-Adha"),
+            ("2023-07-20", "Islamic New Year"),
+            ("2023-09-28", "Prophet's Birthday"),
+            ("2023-11-18", "National Day"),
+            ("2023-11-19", "National Day"),
+        )