Repository: vacanza/holidays
Pull request #2099 (2024-11-01 15:42:37)

Simplify PR template
<!--
  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.
-->

Simplify PR template

## 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!)
- [ ] Supported country/market holidays update (calendar discrepancy fix, localization)
- [x] 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 run `make pre-commit`, it didn't generate any changes
- [x] I've run `make test`, all tests passed locally

<!--
  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


codecov[bot]: ## [Codecov](https://app.codecov.io/gh/vacanza/holidays/pull/2099?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 [(`0ae7f41`)](https://app.codecov.io/gh/vacanza/holidays/commit/0ae7f419390da73ba6c37d8bd670869ebd886097?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza) to head [(`25f57fd`)](https://app.codecov.io/gh/vacanza/holidays/commit/25f57fd7026ed711fa47ce11f0e5e0d06f507e36?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     #2099   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          191       191           
  Lines        11537     11537           
  Branches      1738      1738           
=========================================
  Hits         11537     11537           
```

</details>

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


Patch:
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 1e8a4681..11de1c52 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -34,8 +34,7 @@ Your PR description goes here.
 -->
 
 - [ ] I've followed the [contributing guidelines][contributing-guidelines]
-- [ ] I've run `make pre-commit`, it didn't generate any changes
-- [ ] I've run `make test`, all tests passed locally
+- [ ] I've successfully run `make check`, all checks and tests are green
 
 <!--
   Thanks again for your contribution!
diff --git a/README.rst b/README.rst
index 9a04d173..419aba78 100644
--- a/README.rst
+++ b/README.rst
@@ -513,7 +513,7 @@ All other default values are highlighted with bold:
    * - Indonesia
      - ID
      -
-     - en_US, **id**, uk
+     - en_US, **id**, th, uk
      - GOVERNMENT
    * - Iran
      - IR
diff --git a/holidays/countries/indonesia.py b/holidays/countries/indonesia.py
index e833a0d0..e31e7d08 100644
--- a/holidays/countries/indonesia.py
+++ b/holidays/countries/indonesia.py
@@ -27,11 +27,11 @@ from holidays.groups import (
     IslamicHolidays,
     StaticHolidays,
 )
-from holidays.holiday_base import HolidayBase
+from holidays.observed_holiday_base import ObservedHolidayBase
 
 
 class Indonesia(
-    HolidayBase,
+    ObservedHolidayBase,
     BuddhistCalendarHolidays,
     ChineseCalendarHolidays,
     ChristianHolidays,
@@ -42,16 +42,22 @@ class Indonesia(
     """
     References:
     - https://en.wikipedia.org/wiki/Public_holidays_in_Indonesia
+    - https://id.wikipedia.org/wiki/Hari_libur_di_Indonesia
+    - https://www.liburnasional.com/sejarah/
     - https://www.timeanddate.com/holidays/indonesia
-    - https://www.officeholidays.com/countries/indonesia
     - https://en.wikipedia.org/wiki/Nyepi
+    - https://bali.com/bali/travel-guide/culture/nyepi-balinese-new-year/
     """
 
     country = "ID"
     default_language = "id"
     # %s (estimated).
     estimated_label = tr("%s (perkiraan)")
-    supported_languages = ("en_US", "id", "uk")
+    # %s (observed).
+    observed_label = tr("Pegangti %s")
+    # %s (observed, estimated).
+    observed_estimated_label = tr("Pegangti %s (perkiraan)")
+    supported_languages = ("en_US", "id", "th", "uk")
     supported_categories = (GOVERNMENT, PUBLIC)
 
     def __init__(self, *args, **kwargs):
@@ -70,10 +76,78 @@ class Indonesia(
         # New Year's Day.
         self._add_new_years_day(tr("Tahun Baru Masehi"))
 
-        if self._year <= 1967 or self._year >= 2003:
-            # Lunar New Year.
-            self._add_chinese_new_years_day(tr("Tahun Baru Imlek"))
+        # Independence Day.
+        self._add_holiday_aug_17(tr("Hari Kemerdekaan Republik Indonesia"))
+
+        # Keputusan Presiden no 24 tahun 1953. (1953-01-01; Removed)
+        if self._year <= 1952:
+            # Armed Forces Day.
+            self._add_holiday_oct_5(tr("Hari Angkatan Perang"))
+
+            # Heroes' Day.
+            self._add_holiday_nov_10(tr("Hari Pahlawan"))
+
+        # Keputusan Presiden no 24 tahun 1953. (1953-01-01; Added Nationally)
+        if self._year >= 1953:
+            # Christmas Day.
+            self._add_christmas_day(tr("Hari Raya Natal"))
+
+            # Eid al-Fitr.
+            self._add_eid_al_fitr_day(tr("Hari Raya Idul Fitri"))
+
+            # Eid al-Fitr Second Day.
+            self._add_eid_al_fitr_day_two(tr("Hari kedua dari Hari Raya Idul Fitri"))
+
+            # Eid al-Adha.
+            self._add_eid_al_adha_day(tr("Hari Raya Idul Adha"))
+
+        # Keputusan Presiden no 24 tahun 1953. (1953-01-01; Added Nationally)
+        # Keputusan Presiden no 21 tahun 1963. (1963-10-15; Moved to Denominative-based)
+        # Keputusan Presiden no 251 tahun 1967. (1967-12-16; Removed)
+        if 1953 <= self._year <= 1963:
+            # Easter Monday.
+            self._add_easter_monday(tr("Hari kedua Paskah"))
+
+            # Whit Monday.
+            self._add_whit_monday(tr("Hari kedua Pentakosta"))
+
+            # Nuzul Al Quran.
+            self._add_nuzul_al_quran_day(tr("Nuzululqur'an"))
+
+        # Keputusan Presiden no 24 tahun 1953. (1953-01-01; Added Nationally)
+        # Keputusan Presiden no 21 tahun 1963. (1963-10-15; Moved to Denominative-based)
+        # Keputusan Presiden no 251 tahun 1967. (1967-12-16; Added Nationally)
+        if 1953 <= self._year <= 1962 or self._year >= 1968:
+            # Isra' and Mi'raj.
+            self._add_isra_and_miraj_day(tr("Isra Mikraj Nabi Muhammad"))
+
+        # (Same as above, was before 1963 cut-off date)
+        if 1953 <= self._year <= 1963 or self._year >= 1968:
+            # Ascension Day.
+            self._add_ascension_thursday(tr("Kenaikan Yesus Kristus"))
 
+            # Islamic New Year.
+            self._add_islamic_new_year_day(tr("Tahun Baru Islam"))
+
+            # Prophet's Birthday.
+            self._add_mawlid_day(tr("Maulid Nabi Muhammad"))
+
+        # Keputusan Presiden no 21 tahun 1963. (1963-10-15; Added Denominative-based)
+        # Keputusan Presiden no 251 tahun 1967. (1967-12-16; Added Nationally)
+        # Keputusan Presiden no 10 tahun 1971. (1971-03-15; Removed)
+        if 1968 <= self._year <= 1970:
+            # Assumption Day.
+            self._add_assumption_of_mary_day(tr("Mikraj Santa Maria"))
+
+        # Keputusan Presiden no 24 tahun 1953. (1953-01-01; Added Nationally)
+        # Keputusan Presiden no 21 tahun 1963. (1963-10-15; Moved to Denominative-based)
+        # Keputusan Presiden no 251 tahun 1967. (1967-12-16; Removed)
+        # Keputusan Presiden no 10 tahun 1971. (1971-03-15; Added Nationally)
+        if 1953 <= self._year <= 1963 or self._year >= 1971:
+            # Good Friday.
+            self._add_good_friday(tr("Wafat Yesus Kristus"))
+
+        # Keputusan Presiden no 3 tahun 1983. (1983-01-19; Added Nationally)
         if self._year >= 1983:
             dates_obs = {
                 2009: (MAR, 26),
@@ -94,79 +168,40 @@ class Indonesia(
                 2024: (MAR, 11),
                 2025: (MAR, 29),
                 2026: (MAR, 19),
+                2027: (MAR, 8),
+                2028: (MAR, 26),
+                2029: (MAR, 15),
+                2030: (MAR, 5),
             }
             if self._year in dates_obs:
                 # Day of Silence.
                 self._add_holiday(tr("Hari Suci Nyepi"), dates_obs[self._year])
 
-        if 1953 <= self._year <= 1962 or self._year >= 1971:
-            # Good Friday.
-            self._add_good_friday(tr("Wafat Yesus Kristus"))
-
-        if 1953 <= self._year <= 1962:
-            # Easter Monday.
-            self._add_easter_monday(tr("Hari kedua Paskah"))
-
-        if self._year >= 1983:
-            # Buddha's Birthday.
+            # Vesak Day.
             self._add_vesak(tr("Hari Raya Waisak"))
 
-        if 1953 <= self._year <= 1968 or self._year >= 2014:
+        # Keputusan Presiden no 19 tahun 2002. (2002-04-09; Added Nationally)
+        if self._year >= 2003:
+            # Lunar New Year.
+            self._add_chinese_new_years_day(tr("Tahun Baru Imlek"))
+
+        # Keputusan Presiden no 24 tahun 1953. (1953-01-01; Added Nationally)
+        # Keputusan Presiden no 148 tahun 1968. (1968-04-18; Removed)
+        # Keputusan Presiden no 24 tahun 2013. (2013-07-29; Added Nationally)
+        if 1953 <= self._year <= 1967 or self._year >= 2014:
             # International Labor Day.
             self._add_labor_day(tr("Hari Buruh Internasional"))
 
-        if 1953 <= self._year <= 1962 or self._year >= 1968:
-            # Ascension Day.
-            self._add_ascension_thursday(tr("Kenaikan Yesus Kristus"))
-
-        if 1953 <= self._year <= 1962:
-            # Whit Monday.
-            self._add_whit_monday(tr("Hari kedua Pentakosta"))
-
+        # Keputusan Presiden no 24 tahun 2016. (2016-06-01; Added Nationally)
         if self._year >= 2016:
             # Pancasila Day.
             self._add_holiday_jun_1(tr("Hari Lahir Pancasila"))
 
-        if 1968 <= self._year <= 1970:
-            # Assumption Day.
-            self._add_assumption_of_mary_day(tr("Mikraj Santa Maria"))
-
-        # Independence Day.
-        self._add_holiday_aug_17(tr("Hari Kemerdekaan Republik Indonesia"))
-
-        if self._year <= 1952:
-            # Armed Forces Day.
-            self._add_holiday_oct_5(tr("Hari Angkatan Perang"))
-
-            # Heroes' Day.
-            self._add_holiday_nov_10(tr("Hari Pahlawan"))
-
-        if self._year >= 1953:
-            # Christmas Day.
-            self._add_christmas_day(tr("Hari Raya Natal"))
-
-            # Eid al-Fitr.
-            self._add_eid_al_fitr_day(tr("Hari Raya Idulfitri"))
-
-            # Eid al-Fitr Second Day.
-            self._add_eid_al_fitr_day_two(tr("Hari kedua dari Hari Raya Idulfitri"))
-
-            # Eid al-Adha.
-            self._add_eid_al_adha_day(tr("Hari Raya Iduladha"))
-
-        if 1953 <= self._year <= 1962 or self._year >= 1968:
-            # Islamic New Year.
-            self._add_islamic_new_year_day(tr("Tahun Baru Islam"))
-
-            # Prophet's Birthday.
-            self._add_mawlid_day(tr("Maulid Nabi Muhammad"))
-
-            # Isra' and Mi'raj.
-            self._add_isra_and_miraj_day(tr("Isra Mikraj Nabi Muhammad"))
-
-        if 1953 <= self._year <= 1962:
-            # Nuzul Al Quran.
-            self._add_nuzul_al_quran_day(tr("Nuzululqur'an"))
+        # Keputusan Presiden no 8 tahun 2024. (2024-01-29; Added Nationally)
+        # This KEPPRES overwrites all pre-existing ones.
+        if self._year >= 2024:
+            # Easter Sunday.
+            self._add_easter_sunday(tr("Kebangkitan Yesus Kristus"))
 
 
 class ID(Indonesia):
@@ -196,6 +231,8 @@ class IndonesiaBuddhistHolidays(_CustomBuddhistHolidays):
         2021: (MAY, 26),
         2022: (MAY, 16),
         2023: (JUN, 4),
+        2024: (MAY, 23),
+        2025: (MAY, 12),
     }
 
 
@@ -222,6 +259,8 @@ class IndonesiaChineseHolidays(_CustomChineseHolidays):
         2021: (FEB, 12),
         2022: (FEB, 1),
         2023: (JAN, 22),
+        2024: (FEB, 10),
+        2025: (JAN, 29),
     }
 
 
@@ -250,6 +289,8 @@ class IndonesiaIslamicHolidays(_CustomIslamicHolidays):
         2021: (JUL, 20),
         2022: (JUL, 10),
         2023: (JUN, 29),
+        2024: (JUN, 17),
+        2025: (JUN, 6),
     }
 
     EID_AL_FITR_DATES = {
@@ -277,6 +318,7 @@ class IndonesiaIslamicHolidays(_CustomIslamicHolidays):
         2022: (MAY, 2),
         2023: (APR, 22),
         2024: (APR, 10),
+        2025: (MAR, 31),
     }
 
     HIJRI_NEW_YEAR_DATES = {
@@ -303,6 +345,8 @@ class IndonesiaIslamicHolidays(_CustomIslamicHolidays):
         2021: (AUG, 11),
         2022: (JUL, 30),
         2023: (JUL, 19),
+        2024: (JUL, 7),
+        2025: (JUN, 27),
     }
 
     ISRA_AND_MIRAJ_DATES = {
@@ -329,6 +373,8 @@ class IndonesiaIslamicHolidays(_CustomIslamicHolidays):
         2021: (MAR, 11),
         2022: (FEB, 28),
         2023: (FEB, 18),
+        2024: (FEB, 6),
+        2025: (JAN, 27),
     }
 
     MAWLID_DATES = {
@@ -349,33 +395,260 @@ class IndonesiaIslamicHolidays(_CustomIslamicHolidays):
         2020: (OCT, 29),
         2021: (OCT, 19),
         2022: (OCT, 8),
+        2023: (SEP, 28),
+        2024: (SEP, 16),
+        2025: (SEP, 5),
     }
 
 
 class IndonesiaStaticHolidays:
-    # Election Day.
-    election_day = tr("Hari Pemilihan")
+    """
+    References (Election Days):
+    - https://peraturan.bpk.go.id/Details/58370/keppres-no-53-tahun-1999
+    - https://peraturan.bpk.go.id/Details/55580/keppres-no-26-tahun-2004
+    - https://peraturan.bpk.go.id/Details/55662/keppres-no-55-tahun-2004
+    - https://peraturan.bpk.go.id/Details/55763/keppres-no-75-tahun-2004
+    - https://peraturan.bpk.go.id/Details/55345/keppres-no-7-tahun-2009
+    - https://peraturan.bpk.go.id/Details/55369/keppres-no-17-tahun-2009
+    - https://peraturan.bpk.go.id/Details/57563/keppres-no-14-tahun-2014
+    - https://peraturan.bpk.go.id/Details/57581/keppres-no-24-tahun-2014
+    - https://peraturan.bpk.go.id/Details/54477/keppres-no-25-tahun-2015
+    - https://peraturan.bpk.go.id/Details/57397/keppres-no-3-tahun-2017
+    - https://peraturan.bpk.go.id/Details/82669/keppres-no-15-tahun-2018
+    - https://peraturan.bpk.go.id/Details/104497/keppres-no-10-tahun-2019
+    - https://peraturan.bpk.go.id/Details/152704/keppres-no-22-tahun-2020
+    - https://peraturan.bpk.go.id/Details/277337/keppres-no-10-tahun-2024
+
+    References (Joint Holidays):
+    - https://data.santoslolowang.com/viewing/Agama_Nasional_Indonesia/kepbersama_2002.pdf/
+    - https://nasional.tempo.co/read/5515/tahun-depan-libur-hari-raya-berubah
+    - https://nasional.tempo.co/read/45224/2005-pemerintah-tetapkan-13-hari-libur-nasional
+    - https://news.detik.com/berita/d-562326/30-maret-libur-hari-nyepi-31-maret-ditetapkan-cuti-bersama
+    - https://news.detik.com/berita/d-836627/dari-12-hari-jatah-cuti-tahun-ini-dipaksa-cuti-bareng-11-hari
+    - https://news.detik.com/berita/d-787189/inilah-jadwal-libur-dan-cuti-bersama-2008
+    - https://news.detik.com/berita/d-889403/cuti-bersama-dihapus-sisa-4-hari-untuk-lebaran-natal
+    - https://news.detik.com/berita/d-1263142/kamis-24-desember-cuti-bersama
+    - https://news.detik.com/berita/d-1179419/daftar-libur-dan-cuti-bersama-2010
+    - https://news.detik.com/berita/d-1378563/daftar-hari-libur-nasional-dan-cuti-bersama-2011
+    - https://news.detik.com/berita/d-1639209/pemerintah-tetapkan-senin-16-mei-2011-cuti-bersama
+    - https://news.detik.com/berita/d-1831855/cuti-bersama-tahun-2012-bertambah-1-hari-jadi-6-hari
+    - https://news.detik.com/berita/d-1969257/ini-dia-jadwal-hari-libur-nasional-cuti-bersama-tahun-2013
+    - https://news.detik.com/berita/d-2335984/daftar-cuti-bersama-dan-hari-libur-nasional-2014-termasuk-may-day
+    - https://news.detik.com/berita/d-2576131/ini-daftar-hari-libur-dan-cuti-bersama-tahun-2015
+    - https://bkpsdm.salatiga.go.id/pelaksanaan-hari-libur-nasional-dan-cuti-bersama-tahun-2015.html
+    - https://news.detik.com/berita/d-2952083/ini-rincian-libur-dan-cuti-bersama-2016
+    - https://setkab.go.id/tidak-kurangi-hak-cuti-tahunan-presiden-jokowi-tetapkan-23-juni-sebagai-cuti-bersama-idul-fitri/
+    - https://setkab.go.id/pelayanan-publik-tetap-jalan-presiden-jokowi-tetapkan-cuti-bersama-pns-tahun-2018/
+    - https://setkab.go.id/keppres-no-132019-cuti-bersama-pns-pada-idul-fitri-1440h-tanggal-3-4-dan-7-juni/
+    - https://setkab.go.id/pemerintah-keluarkan-skb-3-menteri-hapus-tiga-hari-cuti-bersama-2020/
+    - https://setkab.go.id/inilah-perubahan-hari-libur-nasional-dan-cuti-bersama-tahun-2021/
+    - https://setkab.go.id/presiden-jokowi-terbitkan-keppres-4-tahun-2022-tentang-cuti-bersama-asn-tahun-2022/
+    - https://news.detik.com/berita/d-6468002/apakah-ada-cuti-bersama-natal-2022-cek-infonya-di-sini
+    - https://setkab.go.id/presiden-tandatangani-keppres-perubahan-cuti-bersama-bagi-asn/
+    - https://setkab.go.id/inilah-keppres-7-2024-tentang-cuti-bersama-asn-tahun-2024/
+    - https://setkab.go.id/pemerintah-tetapkan-hari-libur-nasional-dan-cuti-bersama-tahun-2025/
+    """
+
+    # General Election Day.
+    general_election_day = tr("Hari Pemilihan Unum")
+    # Presidential Election Day.
+    presidential_election_day = tr("Hari Pemilihan Presiden")
+    # Legislative Election Day.
+    legislative_election_day = tr("Hari Pemilihan Legislatif")
+    # Local Election Day.
+    local_election_day = tr("Hari Pemilihan Kepala Daerah")
+
     # Eid al-Fitr Joint Holiday.
-    eid_al_fitr_joint_holiday = tr("Cuti Bersama Hari Raya Idulfitri")
+    eid_al_fitr_joint_holiday = tr("Cuti Bersama Hari Raya Idul Fitri")
+    # Eid al-Adha Joint Holiday.
+    eid_al_adha_joint_holiday = tr("Cuti Bersama Hari Raya Idul Adha")
+    # Prophet's Birthday Joint Holiday.
+    mawlid_joint_holiday = tr("Cuti Bersama Maulid Nabi Muhammad")
+    # Islamic New Year Joint Holiday.
+    islamic_new_year_joint_holiday = tr("Cuti Bersama Tahun Baru Islam")
+    # Ascension Joint Holiday.
+    ascension_joint_holiday = tr("Cuti Bersama Kenaikan Yesus Kristus")
     # Christmas Joint Holiday.
     christmas_joint_holiday = tr("Cuti Bersama Hari Raya Natal")
     # Lunar New Year Joint Holiday.
     lunar_new_year_joint_holiday = tr("Cuti Bersama Tahun Baru Imlek")
     # Day of Silence Joint Holiday.
     day_of_silence_joint_holiday = tr("Cuti Bersama Hari Suci Nyepi")
+    # Vesak Joint Holiday.
+    vesak_joint_holiday = tr("Cuti Bersama Hari Raya Waisak")
+    # New Year's Joint Holiday.
+    new_years_joint_holiday = tr("Cuti Bersama Tahun Baru Masehi")
 
     special_public_holidays = {
-        2018: (JUN, 27, election_day),
-        2019: (APR, 17, election_day),
-        2020: (DEC, 9, election_day),
+        1999: (JUN, 7, legislative_election_day),
+        2004: (
+            (APR, 5, legislative_election_day),
+            (JUL, 5, presidential_election_day),
+            (SEP, 20, presidential_election_day),
+        ),
+        2009: (
+            (APR, 9, legislative_election_day),
+            (JUL, 8, presidential_election_day),
+        ),
+        2014: (
+            (APR, 9, legislative_election_day),
+            (JUL, 9, presidential_election_day),
+        ),
+        2015: (DEC, 9, local_election_day),
+        2017: (FEB, 15, local_election_day),
+        2018: (JUN, 27, local_election_day),
+        2019: (APR, 17, general_election_day),
+        2020: (DEC, 9, local_election_day),
+        2024: (FEB, 14, general_election_day),
+    }
+    special_public_holidays_observed = {
+        # Eid al-Fitr.
+        2004: (NOV, 16, tr("Hari Raya Idul Fitri")),
     }
     special_government_holidays = {
+        # Cuti Bersama (Joint Holidays/Collective Leaves).
+        # This was first implemented in 2002.
+        2002: (
+            (DEC, 5, eid_al_fitr_joint_holiday),
+            (DEC, 9, eid_al_fitr_joint_holiday),
+            (DEC, 10, eid_al_fitr_joint_holiday),
+            (DEC, 26, christmas_joint_holiday),
+        ),
+        2003: (
+            (NOV, 24, eid_al_fitr_joint_holiday),
+            (NOV, 27, eid_al_fitr_joint_holiday),
+            (NOV, 28, eid_al_fitr_joint_holiday),
+            (DEC, 26, christmas_joint_holiday),
+        ),
+        2004: (
+            (NOV, 17, eid_al_fitr_joint_holiday),
+            (NOV, 18, eid_al_fitr_joint_holiday),
+            (NOV, 19, eid_al_fitr_joint_holiday),
+        ),
+        2005: (
+            (NOV, 2, eid_al_fitr_joint_holiday),
+            (NOV, 5, eid_al_fitr_joint_holiday),
+            (NOV, 7, eid_al_fitr_joint_holiday),
+            (NOV, 8, eid_al_fitr_joint_holiday),
+        ),
+        2006: (
+            (MAR, 31, day_of_silence_joint_holiday),
+            (MAY, 26, ascension_joint_holiday),
+            # Independence Day Joint Holiday.
+            (AUG, 18, tr("Cuti Bersama Hari Kemerdekaan Republik Indonesia")),
+            (OCT, 23, eid_al_fitr_joint_holiday),
+            (OCT, 26, eid_al_fitr_joint_holiday),
+            (OCT, 27, eid_al_fitr_joint_holiday),
+        ),
+        2007: (
+            (MAY, 18, ascension_joint_holiday),
+            (OCT, 12, eid_al_fitr_joint_holiday),
+            (OCT, 15, eid_al_fitr_joint_holiday),
+            (OCT, 16, eid_al_fitr_joint_holiday),
+            (OCT, 17, eid_al_fitr_joint_holiday),
+            (OCT, 18, eid_al_fitr_joint_holiday),
+            (OCT, 19, eid_al_fitr_joint_holiday),
+            (DEC, 21, christmas_joint_holiday),
+            (DEC, 24, christmas_joint_holiday),
+            (DEC, 26, christmas_joint_holiday),
+            (DEC, 31, new_years_joint_holiday),
+        ),
+        2008: (
+            (JAN, 11, islamic_new_year_joint_holiday),
+            (SEP, 29, eid_al_fitr_joint_holiday),
+            (SEP, 30, eid_al_fitr_joint_holiday),
+            (OCT, 3, eid_al_fitr_joint_holiday),
+            (DEC, 26, christmas_joint_holiday),
+        ),
+        2009: (
+            (JAN, 2, new_years_joint_holiday),
+            (SEP, 18, eid_al_fitr_joint_holiday),
+            (SEP, 23, eid_al_fitr_joint_holiday),
+            (DEC, 24, christmas_joint_holiday),
+        ),
+        2010: (
+            (SEP, 9, eid_al_fitr_joint_holiday),
+            (SEP, 13, eid_al_fitr_joint_holiday),
+            (DEC, 24, christmas_joint_holiday),
+        ),
+        2011: (
+            (MAY, 16, vesak_joint_holiday),
+            (AUG, 29, eid_al_fitr_joint_holiday),
+            (SEP, 1, eid_al_fitr_joint_holiday),
+            (SEP, 2, eid_al_fitr_joint_holiday),
+            (DEC, 26, christmas_joint_holiday),
+        ),
+        2012: (
+            (MAY, 18, ascension_joint_holiday),
+            (AUG, 21, eid_al_fitr_joint_holiday),
+            (AUG, 22, eid_al_fitr_joint_holiday),
+            (NOV, 16, islamic_new_year_joint_holiday),
+            (DEC, 24, christmas_joint_holiday),
+            (DEC, 31, new_years_joint_holiday),
+        ),
+        2013: (
+            (AUG, 5, eid_al_fitr_joint_holiday),
+            (AUG, 6, eid_al_fitr_joint_holiday),
+            (AUG, 7, eid_al_fitr_joint_holiday),
+            (OCT, 14, eid_al_adha_joint_holiday),
+            (DEC, 26, christmas_joint_holiday),
+        ),
+        2014: (
+            (JUL, 30, eid_al_fitr_joint_holiday),
+            (JUL, 31, eid_al_fitr_joint_holiday),
+            (AUG, 1, eid_al_fitr_joint_holiday),
+            (DEC, 26, christmas_joint_holiday),
+        ),
+        2015: (
+            (JUL, 16, eid_al_fitr_joint_holiday),
+            (JUL, 20, eid_al_fitr_joint_holiday),
+            (JUL, 21, eid_al_fitr_joint_holiday),
+        ),
+        2016: (
+            (JUL, 4, eid_al_fitr_joint_holiday),
+            (JUL, 5, eid_al_fitr_joint_holiday),
+            (JUL, 8, eid_al_fitr_joint_holiday),
+            (DEC, 26, christmas_joint_holiday),
+        ),
+        2017: (
+            (JUN, 23, eid_al_fitr_joint_holiday),
+            (JUN, 27, eid_al_fitr_joint_holiday),
+            (JUN, 28, eid_al_fitr_joint_holiday),
+            (JUN, 29, eid_al_fitr_joint_holiday),
+            (JUN, 30, eid_al_fitr_joint_holiday),
+            (DEC, 26, christmas_joint_holiday),
+        ),
+        2018: (
+            (JUN, 11, eid_al_fitr_joint_holiday),
+            (JUN, 12, eid_al_fitr_joint_holiday),
+            (JUN, 13, eid_al_fitr_joint_holiday),
+            (JUN, 14, eid_al_fitr_joint_holiday),
+            (JUN, 18, eid_al_fitr_joint_holiday),
+            (JUN, 19, eid_al_fitr_joint_holiday),
+            (JUN, 20, eid_al_fitr_joint_holiday),
+            (DEC, 24, christmas_joint_holiday),
+        ),
+        2019: (
+            (JUN, 3, eid_al_fitr_joint_holiday),
+            (JUN, 4, eid_al_fitr_joint_holiday),
+            (JUN, 7, eid_al_fitr_joint_holiday),
+            (DEC, 24, christmas_joint_holiday),
+        ),
+        2020: (
+            (AUG, 21, islamic_new_year_joint_holiday),
+            (OCT, 28, mawlid_joint_holiday),
+            (OCT, 30, mawlid_joint_holiday),
+            (DEC, 24, christmas_joint_holiday),
+        ),
+        2021: (
+            (MAY, 12, eid_al_fitr_joint_holiday),
+            (DEC, 24, christmas_joint_holiday),
+        ),
         2022: (
             (APR, 29, eid_al_fitr_joint_holiday),
             (MAY, 4, eid_al_fitr_joint_holiday),
             (MAY, 5, eid_al_fitr_joint_holiday),
             (MAY, 6, eid_al_fitr_joint_holiday),
-            (DEC, 26, christmas_joint_holiday),
         ),
         2023: (
             (JAN, 23, lunar_new_year_joint_holiday),
@@ -385,6 +658,36 @@ class IndonesiaStaticHolidays:
             (APR, 21, eid_al_fitr_joint_holiday),
             (APR, 24, eid_al_fitr_joint_holiday),
             (APR, 25, eid_al_fitr_joint_holiday),
+            (JUN, 2, vesak_joint_holiday),
+            (JUN, 28, eid_al_adha_joint_holiday),
+            (JUN, 30, eid_al_adha_joint_holiday),
             (DEC, 26, christmas_joint_holiday),
         ),
+        2024: (
+            (FEB, 9, lunar_new_year_joint_holiday),
+            (MAR, 12, day_of_silence_joint_holiday),
+            (APR, 8, eid_al_fitr_joint_holiday),
+            (APR, 9, eid_al_fitr_joint_holiday),
+            (APR, 12, eid_al_fitr_joint_holiday),
+            (APR, 15, eid_al_fitr_joint_holiday),
+            (MAY, 10, ascension_joint_holiday),
+            (MAY, 24, vesak_joint_holiday),
+            (JUN, 18, eid_al_adha_joint_holiday),
+            (DEC, 26, christmas_joint_holiday),
+        ),
+        2025: (
+            (JAN, 28, lunar_new_year_joint_holiday),
+            (MAR, 28, day_of_silence_joint_holiday),
+            (APR, 2, eid_al_fitr_joint_holiday),
+            (APR, 3, eid_al_fitr_joint_holiday),
+            (APR, 4, eid_al_fitr_joint_holiday),
+            (APR, 7, eid_al_fitr_joint_holiday),
+            (MAY, 13, vesak_joint_holiday),
+            (MAY, 30, ascension_joint_holiday),
+            (JUN, 9, eid_al_adha_joint_holiday),
+            (DEC, 26, christmas_joint_holiday),
+        ),
+    }
+    special_government_holidays_observed = {
+        2020: (DEC, 31, eid_al_fitr_joint_holiday),
     }
diff --git a/holidays/locale/en_US/LC_MESSAGES/ID.po b/holidays/locale/en_US/LC_MESSAGES/ID.po
index 4f0357b7..5f5e5fd2 100644
--- a/holidays/locale/en_US/LC_MESSAGES/ID.po
+++ b/holidays/locale/en_US/LC_MESSAGES/ID.po
@@ -14,30 +14,42 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.57\n"
+"Project-Id-Version: Holidays 0.60\n"
 "POT-Creation-Date: 2023-07-23 14:09+0300\n"
-"PO-Revision-Date: 2024-09-07 17:22+0300\n"
-"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
-"Language-Team: Holidays localization team\n"
+"PO-Revision-Date: 2024-10-30 16:44+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.2\n"
+"X-Generator: Poedit 3.5\n"
 
 #. %s (estimated).
 #, c-format
 msgid "%s (perkiraan)"
 msgstr "%s (estimated)"
 
-#. Election Day.
-msgid "Hari Pemilihan"
-msgstr "Election Day"
+#. General Election Day.
+msgid "Hari Pemilihan Unum"
+msgstr "General Election Day"
+
+#. Presidential Election Day.
+msgid "Hari Pemilihan Presiden"
+msgstr "Presidential Election Day"
+
+#. Legislative Election Day.
+msgid "Hari Pemilihan Legislatif"
+msgstr "Legislative Election Day"
+
+#. Local Election Day.
+msgid "Hari Pemilihan Kepala Daerah"
+msgstr "Local Election Day"
 
 #. Eid al-Fitr Joint Holiday.
-msgid "Cuti Bersama Hari Raya Idulfitri"
+msgid "Cuti Bersama Hari Raya Idul Fitri"
 msgstr "Eid al-Fitr Joint Holiday"
 
 #. Christmas Joint Holiday.
@@ -72,9 +84,9 @@ msgstr "Good Friday"
 msgid "Hari kedua Paskah"
 msgstr "Easter Monday"
 
-#. Buddha's Birthday.
+#. Vesak Day.
 msgid "Hari Raya Waisak"
-msgstr "Buddha's Birthday"
+msgstr "Vesak Day"
 
 #. International Labor Day.
 msgid "Hari Buruh Internasional"
@@ -113,15 +125,15 @@ msgid "Hari Raya Natal"
 msgstr "Christmas Day"
 
 #. Eid al-Fitr.
-msgid "Hari Raya Idulfitri"
+msgid "Hari Raya Idul Fitri"
 msgstr "Eid al-Fitr"
 
 #. Eid al-Fitr Second Day.
-msgid "Hari kedua dari Hari Raya Idulfitri"
+msgid "Hari kedua dari Hari Raya Idul Fitri"
 msgstr "Eid al-Fitr Second Day"
 
 #. Eid al-Adha.
-msgid "Hari Raya Iduladha"
+msgid "Hari Raya Idul Adha"
 msgstr "Eid al-Adha"
 
 #. Islamic New Year.
@@ -139,3 +151,45 @@ msgstr "Isra' and Mi'raj"
 #. Nuzul Al Quran.
 msgid "Nuzululqur'an"
 msgstr "Nuzul Al Quran"
+
+#. Eid al-Adha Joint Holiday.
+msgid "Cuti Bersama Hari Raya Idul Adha"
+msgstr "Eid al-Adha Joint Holiday"
+
+#. Prophet's Birthday Joint Holiday.
+msgid "Cuti Bersama Maulid Nabi Muhammad"
+msgstr "Prophet's Birthday Joint Holiday"
+
+#. Ascension Joint Holiday.
+msgid "Cuti Bersama Kenaikan Yesus Kristus"
+msgstr "Ascension Joint Holiday"
+
+#. Vesak Joint Holiday.
+msgid "Cuti Bersama Hari Raya Waisak"
+msgstr "Vesak Joint Holiday"
+
+#. %s (observed).
+#, c-format
+msgid "Pegangti %s"
+msgstr "%s (observed)"
+
+#. %s (observed, estimated).
+#, c-format
+msgid "Pegangti %s (perkiraan)"
+msgstr "%s (observed, estimated)"
+
+#. Islamic New Year Joint Holiday.
+msgid "Cuti Bersama Tahun Baru Islam"
+msgstr "Islamic New Year Joint Holiday"
+
+#. New Year's Joint Holiday.
+msgid "Cuti Bersama Tahun Baru Masehi"
+msgstr "New Year's Joint Holiday"
+
+#. Independence Day Joint Holiday.
+msgid "Cuti Bersama Hari Kemerdekaan Republik Indonesia"
+msgstr "Independence Day Joint Holiday"
+
+#. Easter Sunday.
+msgid "Kebangkitan Yesus Kristus"
+msgstr "Easter Sunday"
diff --git a/holidays/locale/id/LC_MESSAGES/ID.po b/holidays/locale/id/LC_MESSAGES/ID.po
index e2aff91e..558f4441 100644
--- a/holidays/locale/id/LC_MESSAGES/ID.po
+++ b/holidays/locale/id/LC_MESSAGES/ID.po
@@ -14,30 +14,42 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.30\n"
+"Project-Id-Version: Holidays 0.60\n"
 "POT-Creation-Date: 2023-07-23 14:09+0300\n"
-"PO-Revision-Date: 2023-07-23 14:12+0300\n"
-"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
-"Language-Team: Holidays localization team\n"
+"PO-Revision-Date: 2024-10-30 16:45+0700\n"
+"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
+"Language-Team: Holidays Localization Team\n"
 "Language: id\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "Generated-By: Lingua 4.15.0\n"
-"X-Generator: Poedit 3.2.2\n"
+"X-Generator: Poedit 3.5\n"
 
 #. %s (estimated).
 #, c-format
 msgid "%s (perkiraan)"
 msgstr ""
 
-#. Election Day.
-msgid "Hari Pemilihan"
+#. General Election Day.
+msgid "Hari Pemilihan Unum"
+msgstr ""
+
+#. Presidential Election Day.
+msgid "Hari Pemilihan Presiden"
+msgstr ""
+
+#. Legislative Election Day.
+msgid "Hari Pemilihan Legislatif"
+msgstr ""
+
+#. Local Election Day.
+msgid "Hari Pemilihan Kepala Daerah"
 msgstr ""
 
 #. Eid al-Fitr Joint Holiday.
-msgid "Cuti Bersama Hari Raya Idulfitri"
+msgid "Cuti Bersama Hari Raya Idul Fitri"
 msgstr ""
 
 #. Christmas Joint Holiday.
@@ -72,7 +84,7 @@ msgstr ""
 msgid "Hari kedua Paskah"
 msgstr ""
 
-#. Buddha's Birthday.
+#. Vesak Day.
 msgid "Hari Raya Waisak"
 msgstr ""
 
@@ -113,15 +125,15 @@ msgid "Hari Raya Natal"
 msgstr ""
 
 #. Eid al-Fitr.
-msgid "Hari Raya Idulfitri"
+msgid "Hari Raya Idul Fitri"
 msgstr ""
 
 #. Eid al-Fitr Second Day.
-msgid "Hari kedua dari Hari Raya Idulfitri"
+msgid "Hari kedua dari Hari Raya Idul Fitri"
 msgstr ""
 
 #. Eid al-Adha.
-msgid "Hari Raya Iduladha"
+msgid "Hari Raya Idul Adha"
 msgstr ""
 
 #. Islamic New Year.
@@ -139,3 +151,45 @@ msgstr ""
 #. Nuzul Al Quran.
 msgid "Nuzululqur'an"
 msgstr ""
+
+#. Eid al-Adha Joint Holiday.
+msgid "Cuti Bersama Hari Raya Idul Adha"
+msgstr ""
+
+#. Prophet's Birthday Joint Holiday.
+msgid "Cuti Bersama Maulid Nabi Muhammad"
+msgstr ""
+
+#. Ascension Joint Holiday.
+msgid "Cuti Bersama Kenaikan Yesus Kristus"
+msgstr ""
+
+#. Vesak Joint Holiday.
+msgid "Cuti Bersama Hari Raya Waisak"
+msgstr ""
+
+#. %s (observed).
+#, c-format
+msgid "Pegangti %s"
+msgstr ""
+
+#. %s (observed, estimated).
+#, c-format
+msgid "Pegangti %s (perkiraan)"
+msgstr ""
+
+#. Islamic New Year Joint Holiday.
+msgid "Cuti Bersama Tahun Baru Islam"
+msgstr ""
+
+#. New Year's Joint Holiday.
+msgid "Cuti Bersama Tahun Baru Masehi"
+msgstr ""
+
+#. Independence Day Joint Holiday.
+msgid "Cuti Bersama Hari Kemerdekaan Republik Indonesia"
+msgstr ""
+
+#. Easter Sunday.
+msgid "Kebangkitan Yesus Kristus"
+msgstr ""
diff --git a/holidays/locale/th/LC_MESSAGES/ID.po b/holidays/locale/th/LC_MESSAGES/ID.po
new file mode 100644
index 00000000..d5d6c2ad
--- /dev/null
+++ b/holidays/locale/th/LC_MESSAGES/ID.po
@@ -0,0 +1,195 @@
+#  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)
+#
+# Indonesia holidays th localization.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Holidays 0.60\n"
+"POT-Creation-Date: 2023-07-23 14:09+0300\n"
+"PO-Revision-Date: 2024-10-30 17:08+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"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Generated-By: Lingua 4.15.0\n"
+"X-Generator: Poedit 3.5\n"
+
+#. %s (estimated).
+#, c-format
+msgid "%s (perkiraan)"
+msgstr "%s (โดยประมาณ)"
+
+#. General Election Day.
+msgid "Hari Pemilihan Unum"
+msgstr "วันเลือกตั้งทั่วไป"
+
+#. Presidential Election Day.
+msgid "Hari Pemilihan Presiden"
+msgstr "วันเลือกตั้งประธานาธิบดี"
+
+#. Legislative Election Day.
+msgid "Hari Pemilihan Legislatif"
+msgstr "วันเลือกตั้งสมาชิกสภาผู้แทนราษฎร"
+
+#. Local Election Day.
+msgid "Hari Pemilihan Kepala Daerah"
+msgstr "วันเลือกตั้งท้องถิ่น"
+
+#. Eid al-Fitr Joint Holiday.
+msgid "Cuti Bersama Hari Raya Idul Fitri"
+msgstr "หยุดร่วมพิเศษวันอีฎิ้ลฟิตริ"
+
+#. Christmas Joint Holiday.
+msgid "Cuti Bersama Hari Raya Natal"
+msgstr "หยุดร่วมพิเศษวันคริสต์มาส"
+
+#. Lunar New Year Joint Holiday.
+msgid "Cuti Bersama Tahun Baru Imlek"
+msgstr "หยุดร่วมพิเศษวันตรุษจีน"
+
+#. Day of Silence Joint Holiday.
+msgid "Cuti Bersama Hari Suci Nyepi"
+msgstr "หยุดร่วมพิเศษวันแห่งความเงียบ"
+
+#. New Year's Day.
+msgid "Tahun Baru Masehi"
+msgstr "วันขึ้นปีใหม่"
+
+#. Lunar New Year.
+msgid "Tahun Baru Imlek"
+msgstr "วันตรุษจีน"
+
+#. Day of Silence.
+msgid "Hari Suci Nyepi"
+msgstr "วันแห่งความเงียบ"
+
+#. Good Friday.
+msgid "Wafat Yesus Kristus"
+msgstr "วันศุกร์ประเสริฐ"
+
+#. Easter Monday.
+msgid "Hari kedua Paskah"
+msgstr "วันจันทร์อีสเตอร์"
+
+#. Vesak Day.
+msgid "Hari Raya Waisak"
+msgstr "วันวิสาขบูชา"
+
+#. International Labor Day.
+msgid "Hari Buruh Internasional"
+msgstr "วันแรงงานสากล"
+
+#. Ascension Day.
+msgid "Kenaikan Yesus Kristus"
+msgstr "วันสมโภชพระเยซูเจ้าเสด็จขึ้นสวรรค์"
+
+#. Whit Monday.
+msgid "Hari kedua Pentakosta"
+msgstr "วันจันทร์หลังวันสมโภชพระจิตเจ้า"
+
+#. Pancasila Day.
+msgid "Hari Lahir Pancasila"
+msgstr "วันปัญจศีล"
+
+#. Assumption Day.
+msgid "Mikraj Santa Maria"
+msgstr "วันสมโภชแม่พระรับเกียรติยกขึ้นสวรรค์"
+
+#. Independence Day.
+msgid "Hari Kemerdekaan Republik Indonesia"
+msgstr "วันประกาศอิสรภาพสาธารณรัฐอินโดนีเซีย"
+
+#. Armed Forces Day.
+msgid "Hari Angkatan Perang"
+msgstr "วันกองทัพสาธารณรัฐอินโดนีเซีย"
+
+#. Heroes' Day.
+msgid "Hari Pahlawan"
+msgstr "วันวีรบุรุษอินโดนีเซีย"
+
+#. Christmas Day.
+msgid "Hari Raya Natal"
+msgstr "วันคริสต์มาส"
+
+#. Eid al-Fitr.
+msgid "Hari Raya Idul Fitri"
+msgstr "วันอีฎิ้ลฟิตริ"
+
+#. Eid al-Fitr Second Day.
+msgid "Hari kedua dari Hari Raya Idul Fitri"
+msgstr "วันอีฎิ้ลฟิตริวันที่สอง"
+
+#. Eid al-Adha.
+msgid "Hari Raya Idul Adha"
+msgstr "วันอีดิ้ลอัฎฮา"
+
+#. Islamic New Year.
+msgid "Tahun Baru Islam"
+msgstr "วันขึ้นปีใหม่อิสลาม"
+
+#. Prophet's Birthday.
+msgid "Maulid Nabi Muhammad"
+msgstr "วันเมาลิดนบี"
+
+#. Isra' and Mi'raj.
+msgid "Isra Mikraj Nabi Muhammad"
+msgstr "วันเมี๊ยะราจ"
+
+#. Nuzul Al Quran.
+msgid "Nuzululqur'an"
+msgstr "วันนูซุลอัลกุรอาน"
+
+#. Eid al-Adha Joint Holiday.
+msgid "Cuti Bersama Hari Raya Idul Adha"
+msgstr "หยุดร่วมพิเศษวันอีดิ้ลอัฎฮา"
+
+#. Prophet's Birthday Joint Holiday.
+msgid "Cuti Bersama Maulid Nabi Muhammad"
+msgstr "หยุดร่วมพิเศษวันเมาลิดนบี"
+
+#. Ascension Joint Holiday.
+msgid "Cuti Bersama Kenaikan Yesus Kristus"
+msgstr "หยุดร่วมพิเศษวันสมโภชพระเยซูเจ้าเสด็จขึ้นสวรรค์"
+
+#. Vesak Joint Holiday.
+msgid "Cuti Bersama Hari Raya Waisak"
+msgstr "หยุดร่วมพิเศษวันวิสาขบูชา"
+
+#. %s (observed).
+#, c-format
+msgid "Pegangti %s"
+msgstr "ชดเชย%s"
+
+#. %s (observed, estimated).
+#, c-format
+msgid "Pegangti %s (perkiraan)"
+msgstr "ชดเชย%s (โดยประมาณ)"
+
+#. Islamic New Year Joint Holiday.
+msgid "Cuti Bersama Tahun Baru Islam"
+msgstr "หยุดร่วมพิเศษวันขึ้นปีใหม่อิสลาม"
+
+#. New Year's Joint Holiday.
+msgid "Cuti Bersama Tahun Baru Masehi"
+msgstr "หยุดร่วมพิเศษวันขึ้นปีใหม่"
+
+#. Independence Day Joint Holiday.
+msgid "Cuti Bersama Hari Kemerdekaan Republik Indonesia"
+msgstr "หยุดร่วมพิเศษวันประกาศอิสรภาพสาธารณรัฐอินโดนีเซีย"
+
+#. Easter Sunday.
+msgid "Kebangkitan Yesus Kristus"
+msgstr "วันอาทิตย์อีสเตอร์"
diff --git a/holidays/locale/uk/LC_MESSAGES/ID.po b/holidays/locale/uk/LC_MESSAGES/ID.po
index 93153d29..c68a1efd 100644
--- a/holidays/locale/uk/LC_MESSAGES/ID.po
+++ b/holidays/locale/uk/LC_MESSAGES/ID.po
@@ -14,30 +14,42 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.30\n"
+"Project-Id-Version: Holidays 0.60\n"
 "POT-Creation-Date: 2023-07-23 14:09+0300\n"
-"PO-Revision-Date: 2023-07-23 14:28+0300\n"
-"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
-"Language-Team: Holidays localization team\n"
+"PO-Revision-Date: 2024-10-30 16:45+0700\n"
+"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
+"Language-Team: Holidays Localization Team\n"
 "Language: uk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
 "Generated-By: Lingua 4.15.0\n"
-"X-Generator: Poedit 3.2.2\n"
+"X-Generator: Poedit 3.5\n"
 
 #. %s (estimated).
 #, c-format
 msgid "%s (perkiraan)"
 msgstr "%s (приблизна дата)"
 
-#. Election Day.
-msgid "Hari Pemilihan"
-msgstr "День виборів"
+#. General Election Day.
+msgid "Hari Pemilihan Unum"
+msgstr "День загальних виборів"
+
+#. Presidential Election Day.
+msgid "Hari Pemilihan Presiden"
+msgstr "День президентських виборів"
+
+#. Legislative Election Day.
+msgid "Hari Pemilihan Legislatif"
+msgstr "День парламентських виборів"
+
+#. Local Election Day.
+msgid "Hari Pemilihan Kepala Daerah"
+msgstr "День місцевих виборів"
 
 #. Eid al-Fitr Joint Holiday.
-msgid "Cuti Bersama Hari Raya Idulfitri"
+msgid "Cuti Bersama Hari Raya Idul Fitri"
 msgstr "Додатковий вихідний на Курбан-байрам"
 
 #. Christmas Joint Holiday.
@@ -72,7 +84,7 @@ msgstr "Страсна пʼятниця"
 msgid "Hari kedua Paskah"
 msgstr "Великодній понеділок"
 
-#. Buddha's Birthday.
+#. Vesak Day.
 msgid "Hari Raya Waisak"
 msgstr "День народження Будди"
 
@@ -113,15 +125,15 @@ msgid "Hari Raya Natal"
 msgstr "Різдво Христове"
 
 #. Eid al-Fitr.
-msgid "Hari Raya Idulfitri"
+msgid "Hari Raya Idul Fitri"
 msgstr "Рамазан-байрам"
 
 #. Eid al-Fitr Second Day.
-msgid "Hari kedua dari Hari Raya Idulfitri"
+msgid "Hari kedua dari Hari Raya Idul Fitri"
 msgstr "Другий день Рамазан-байрам"
 
 #. Eid al-Adha.
-msgid "Hari Raya Iduladha"
+msgid "Hari Raya Idul Adha"
 msgstr "Курбан-байрам"
 
 #. Islamic New Year.
@@ -139,3 +151,45 @@ msgstr "Вознесіння пророка Мухаммада"
 #. Nuzul Al Quran.
 msgid "Nuzululqur'an"
 msgstr "Річниця обʼявлення Корану"
+
+#. Eid al-Adha Joint Holiday.
+msgid "Cuti Bersama Hari Raya Idul Adha"
+msgstr "Додатковий вихідний на Курбан-байрам"
+
+#. Prophet's Birthday Joint Holiday.
+msgid "Cuti Bersama Maulid Nabi Muhammad"
+msgstr "Додатковий вихідний на День народження пророка Мухаммада"
+
+#. Ascension Joint Holiday.
+msgid "Cuti Bersama Kenaikan Yesus Kristus"
+msgstr "Додатковий вихідний на Вознесіння Господнє"
+
+#. Vesak Joint Holiday.
+msgid "Cuti Bersama Hari Raya Waisak"
+msgstr "Додатковий вихідний на День народження Будди"
+
+#. %s (observed).
+#, c-format
+msgid "Pegangti %s"
+msgstr "%s (вихідний)"
+
+#. %s (observed, estimated).
+#, c-format
+msgid "Pegangti %s (perkiraan)"
+msgstr "%s (вихідний, приблизна дата)"
+
+#. Islamic New Year Joint Holiday.
+msgid "Cuti Bersama Tahun Baru Islam"
+msgstr "Додатковий вихідний на Ісламський Новий рік"
+
+#. New Year's Joint Holiday.
+msgid "Cuti Bersama Tahun Baru Masehi"
+msgstr "Додатковий вихідний на Новий рік"
+
+#. Independence Day Joint Holiday.
+msgid "Cuti Bersama Hari Kemerdekaan Republik Indonesia"
+msgstr "Додатковий вихідний на День незалежності Республіки Індонезія"
+
+#. Easter Sunday.
+msgid "Kebangkitan Yesus Kristus"
+msgstr "Великдень"
diff --git a/snapshots/countries/ID_COMMON.json b/snapshots/countries/ID_COMMON.json
index 34619f98..b631f90e 100644
--- a/snapshots/countries/ID_COMMON.json
+++ b/snapshots/countries/ID_COMMON.json
@@ -1,21 +1,17 @@
 {
     "1950-01-01": "New Year's Day",
-    "1950-02-17": "Lunar New Year (estimated)",
     "1950-08-17": "Independence Day",
     "1950-10-05": "Armed Forces Day",
     "1950-11-10": "Heroes' Day",
     "1951-01-01": "New Year's Day",
-    "1951-02-06": "Lunar New Year (estimated)",
     "1951-08-17": "Independence Day",
     "1951-10-05": "Armed Forces Day",
     "1951-11-10": "Heroes' Day",
     "1952-01-01": "New Year's Day",
-    "1952-01-27": "Lunar New Year (estimated)",
     "1952-08-17": "Independence Day",
     "1952-10-05": "Armed Forces Day",
     "1952-11-10": "Heroes' Day",
     "1953-01-01": "New Year's Day",
-    "1953-02-14": "Lunar New Year (estimated)",
     "1953-04-03": "Good Friday",
     "1953-04-06": "Easter Monday",
     "1953-04-12": "Isra' and Mi'raj (estimated)",
@@ -31,7 +27,6 @@
     "1953-11-19": "Prophet's Birthday (estimated)",
     "1953-12-25": "Christmas Day",
     "1954-01-01": "New Year's Day",
-    "1954-02-03": "Lunar New Year (estimated)",
     "1954-04-01": "Isra' and Mi'raj (estimated)",
     "1954-04-16": "Good Friday",
     "1954-04-19": "Easter Monday",
@@ -47,7 +42,6 @@
     "1954-11-08": "Prophet's Birthday (estimated)",
     "1954-12-25": "Christmas Day",
     "1955-01-01": "New Year's Day",
-    "1955-01-24": "Lunar New Year (estimated)",
     "1955-03-21": "Isra' and Mi'raj (estimated)",
     "1955-04-08": "Good Friday",
     "1955-04-11": "Easter Monday",
@@ -63,7 +57,6 @@
     "1955-10-29": "Prophet's Birthday (estimated)",
     "1955-12-25": "Christmas Day",
     "1956-01-01": "New Year's Day",
-    "1956-02-12": "Lunar New Year (estimated)",
     "1956-03-10": "Isra' and Mi'raj (estimated)",
     "1956-03-30": "Good Friday",
     "1956-04-02": "Easter Monday",
@@ -79,7 +72,6 @@
     "1956-10-17": "Prophet's Birthday (estimated)",
     "1956-12-25": "Christmas Day",
     "1957-01-01": "New Year's Day",
-    "1957-01-31": "Lunar New Year (estimated)",
     "1957-02-27": "Isra' and Mi'raj (estimated)",
     "1957-04-17": "Nuzul Al Quran (estimated)",
     "1957-04-19": "Good Friday",
@@ -95,7 +87,6 @@
     "1957-12-25": "Christmas Day",
     "1958-01-01": "New Year's Day",
     "1958-02-16": "Isra' and Mi'raj (estimated)",
-    "1958-02-18": "Lunar New Year (estimated)",
     "1958-04-04": "Good Friday",
     "1958-04-06": "Nuzul Al Quran (estimated)",
     "1958-04-07": "Easter Monday",
@@ -111,7 +102,6 @@
     "1958-12-25": "Christmas Day",
     "1959-01-01": "New Year's Day",
     "1959-02-06": "Isra' and Mi'raj (estimated)",
-    "1959-02-08": "Lunar New Year (estimated)",
     "1959-03-27": "Good Friday; Nuzul Al Quran (estimated)",
     "1959-03-30": "Easter Monday",
     "1959-04-10": "Eid al-Fitr (estimated)",
@@ -126,7 +116,6 @@
     "1959-12-25": "Christmas Day",
     "1960-01-01": "New Year's Day",
     "1960-01-26": "Isra' and Mi'raj (estimated)",
-    "1960-01-28": "Lunar New Year (estimated)",
     "1960-03-15": "Nuzul Al Quran (estimated)",
     "1960-03-28": "Eid al-Fitr (estimated)",
     "1960-03-29": "Eid al-Fitr Second Day (estimated)",
@@ -142,7 +131,6 @@
     "1960-12-25": "Christmas Day",
     "1961-01-01": "New Year's Day",
     "1961-01-14": "Isra' and Mi'raj (estimated)",
-    "1961-02-15": "Lunar New Year (estimated)",
     "1961-03-04": "Nuzul Al Quran (estimated)",
     "1961-03-18": "Eid al-Fitr (estimated)",
     "1961-03-19": "Eid al-Fitr Second Day (estimated)",
@@ -158,7 +146,6 @@
     "1961-12-25": "Christmas Day",
     "1962-01-01": "New Year's Day",
     "1962-01-04": "Isra' and Mi'raj (estimated)",
-    "1962-02-05": "Lunar New Year (estimated)",
     "1962-02-21": "Nuzul Al Quran (estimated)",
     "1962-03-07": "Eid al-Fitr (estimated)",
     "1962-03-08": "Eid al-Fitr Second Day (estimated)",
@@ -174,15 +161,20 @@
     "1962-12-24": "Isra' and Mi'raj (estimated)",
     "1962-12-25": "Christmas Day",
     "1963-01-01": "New Year's Day",
-    "1963-01-25": "Lunar New Year (estimated)",
+    "1963-02-11": "Nuzul Al Quran (estimated)",
     "1963-02-24": "Eid al-Fitr (estimated)",
     "1963-02-25": "Eid al-Fitr Second Day (estimated)",
+    "1963-04-12": "Good Friday",
+    "1963-04-15": "Easter Monday",
     "1963-05-01": "International Labor Day",
     "1963-05-03": "Eid al-Adha (estimated)",
+    "1963-05-23": "Ascension Day",
+    "1963-05-24": "Islamic New Year (estimated)",
+    "1963-06-03": "Whit Monday",
+    "1963-08-02": "Prophet's Birthday (estimated)",
     "1963-08-17": "Independence Day",
     "1963-12-25": "Christmas Day",
     "1964-01-01": "New Year's Day",
-    "1964-02-13": "Lunar New Year (estimated)",
     "1964-02-14": "Eid al-Fitr (estimated)",
     "1964-02-15": "Eid al-Fitr Second Day (estimated)",
     "1964-04-22": "Eid al-Adha (estimated)",
@@ -190,14 +182,13 @@
     "1964-08-17": "Independence Day",
     "1964-12-25": "Christmas Day",
     "1965-01-01": "New Year's Day",
-    "1965-02-02": "Eid al-Fitr (estimated); Lunar New Year (estimated)",
+    "1965-02-02": "Eid al-Fitr (estimated)",
     "1965-02-03": "Eid al-Fitr Second Day (estimated)",
     "1965-04-11": "Eid al-Adha (estimated)",
     "1965-05-01": "International Labor Day",
     "1965-08-17": "Independence Day",
     "1965-12-25": "Christmas Day",
     "1966-01-01": "New Year's Day",
-    "1966-01-21": "Lunar New Year (estimated)",
     "1966-01-22": "Eid al-Fitr (estimated)",
     "1966-01-23": "Eid al-Fitr Second Day (estimated)",
     "1966-04-01": "Eid al-Adha (estimated)",
@@ -207,7 +198,6 @@
     "1967-01-01": "New Year's Day",
     "1967-01-12": "Eid al-Fitr (estimated)",
     "1967-01-13": "Eid al-Fitr Second Day (estimated)",
-    "1967-02-09": "Lunar New Year (estimated)",
     "1967-03-21": "Eid al-Adha (estimated)",
     "1967-05-01": "International Labor Day",
     "1967-08-17": "Independence Day",
@@ -216,7 +206,6 @@
     "1968-01-02": "Eid al-Fitr Second Day (estimated)",
     "1968-03-09": "Eid al-Adha (estimated)",
     "1968-03-30": "Islamic New Year (estimated)",
-    "1968-05-01": "International Labor Day",
     "1968-05-23": "Ascension Day",
     "1968-06-08": "Prophet's Birthday (estimated)",
     "1968-08-15": "Assumption Day",
@@ -385,7 +374,7 @@
     "1983-04-01": "Good Friday",
     "1983-05-10": "Isra' and Mi'raj (estimated)",
     "1983-05-12": "Ascension Day",
-    "1983-05-27": "Buddha's Birthday (estimated)",
+    "1983-05-27": "Vesak Day (estimated)",
     "1983-07-11": "Eid al-Fitr (estimated)",
     "1983-07-12": "Eid al-Fitr Second Day (estimated)",
     "1983-08-17": "Independence Day",
@@ -396,7 +385,7 @@
     "1984-01-01": "New Year's Day",
     "1984-04-20": "Good Friday",
     "1984-04-28": "Isra' and Mi'raj (estimated)",
-    "1984-05-15": "Buddha's Birthday (estimated)",
+    "1984-05-15": "Vesak Day (estimated)",
     "1984-05-31": "Ascension Day",
     "1984-06-30": "Eid al-Fitr (estimated)",
     "1984-07-01": "Eid al-Fitr Second Day (estimated)",
@@ -409,7 +398,7 @@
     "1985-04-05": "Good Friday",
     "1985-04-17": "Isra' and Mi'raj (estimated)",
     "1985-05-16": "Ascension Day",
-    "1985-06-03": "Buddha's Birthday (estimated)",
+    "1985-06-03": "Vesak Day (estimated)",
     "1985-06-19": "Eid al-Fitr (estimated)",
     "1985-06-20": "Eid al-Fitr Second Day (estimated)",
     "1985-08-17": "Independence Day",
@@ -421,7 +410,7 @@
     "1986-03-28": "Good Friday",
     "1986-04-06": "Isra' and Mi'raj (estimated)",
     "1986-05-08": "Ascension Day",
-    "1986-05-23": "Buddha's Birthday (estimated)",
+    "1986-05-23": "Vesak Day (estimated)",
     "1986-06-08": "Eid al-Fitr (estimated)",
     "1986-06-09": "Eid al-Fitr Second Day (estimated)",
     "1986-08-15": "Eid al-Adha (estimated)",
@@ -432,7 +421,7 @@
     "1987-01-01": "New Year's Day",
     "1987-03-27": "Isra' and Mi'raj (estimated)",
     "1987-04-17": "Good Friday",
-    "1987-05-12": "Buddha's Birthday (estimated)",
+    "1987-05-12": "Vesak Day (estimated)",
     "1987-05-28": "Ascension Day; Eid al-Fitr (estimated)",
     "1987-05-29": "Eid al-Fitr Second Day (estimated)",
     "1987-08-04": "Eid al-Adha (estimated)",
@@ -446,7 +435,7 @@
     "1988-05-12": "Ascension Day",
     "1988-05-16": "Eid al-Fitr (estimated)",
     "1988-05-17": "Eid al-Fitr Second Day (estimated)",
-    "1988-05-30": "Buddha's Birthday (estimated)",
+    "1988-05-30": "Vesak Day (estimated)",
     "1988-07-23": "Eid al-Adha (estimated)",
     "1988-08-13": "Islamic New Year (estimated)",
     "1988-08-17": "Independence Day",
@@ -458,7 +447,7 @@
     "1989-05-04": "Ascension Day",
     "1989-05-06": "Eid al-Fitr (estimated)",
     "1989-05-07": "Eid al-Fitr Second Day (estimated)",
-    "1989-05-19": "Buddha's Birthday (estimated)",
+    "1989-05-19": "Vesak Day (estimated)",
     "1989-07-13": "Eid al-Adha (estimated)",
     "1989-08-02": "Islamic New Year (estimated)",
     "1989-08-17": "Independence Day",
@@ -469,7 +458,7 @@
     "1990-04-13": "Good Friday",
     "1990-04-26": "Eid al-Fitr (estimated)",
     "1990-04-27": "Eid al-Fitr Second Day (estimated)",
-    "1990-05-09": "Buddha's Birthday (estimated)",
+    "1990-05-09": "Vesak Day (estimated)",
     "1990-05-24": "Ascension Day",
     "1990-07-02": "Eid al-Adha (estimated)",
     "1990-07-23": "Islamic New Year (estimated)",
@@ -482,7 +471,7 @@
     "1991-04-15": "Eid al-Fitr (estimated)",
     "1991-04-16": "Eid al-Fitr Second Day (estimated)",
     "1991-05-09": "Ascension Day",
-    "1991-05-28": "Buddha's Birthday (estimated)",
+    "1991-05-28": "Vesak Day (estimated)",
     "1991-06-22": "Eid al-Adha (estimated)",
     "1991-07-12": "Islamic New Year (estimated)",
     "1991-08-17": "Independence Day",
@@ -493,7 +482,7 @@
     "1992-04-04": "Eid al-Fitr (estimated)",
     "1992-04-05": "Eid al-Fitr Second Day (estimated)",
     "1992-04-17": "Good Friday",
-    "1992-05-17": "Buddha's Birthday (estimated)",
+    "1992-05-17": "Vesak Day (estimated)",
     "1992-05-28": "Ascension Day",
     "1992-06-11": "Eid al-Adha (estimated)",
     "1992-07-01": "Islamic New Year (estimated)",
@@ -507,7 +496,7 @@
     "1993-04-09": "Good Friday",
     "1993-05-20": "Ascension Day",
     "1993-05-31": "Eid al-Adha (estimated)",
-    "1993-06-04": "Buddha's Birthday (estimated)",
+    "1993-06-04": "Vesak Day (estimated)",
     "1993-06-21": "Islamic New Year (estimated)",
     "1993-08-17": "Independence Day",
     "1993-08-29": "Prophet's Birthday (estimated)",
@@ -519,7 +508,7 @@
     "1994-04-01": "Good Friday",
     "1994-05-12": "Ascension Day",
     "1994-05-20": "Eid al-Adha (estimated)",
-    "1994-05-25": "Buddha's Birthday (estimated)",
+    "1994-05-25": "Vesak Day (estimated)",
     "1994-06-10": "Islamic New Year (estimated)",
     "1994-08-17": "Independence Day",
     "1994-08-19": "Prophet's Birthday (estimated)",
@@ -530,7 +519,7 @@
     "1995-03-03": "Eid al-Fitr Second Day (estimated)",
     "1995-04-14": "Good Friday",
     "1995-05-09": "Eid al-Adha (estimated)",
-    "1995-05-14": "Buddha's Birthday (estimated)",
+    "1995-05-14": "Vesak Day (estimated)",
     "1995-05-25": "Ascension Day",
     "1995-05-30": "Islamic New Year (estimated)",
     "1995-08-08": "Prophet's Birthday (estimated)",
@@ -544,7 +533,7 @@
     "1996-04-27": "Eid al-Adha (estimated)",
     "1996-05-16": "Ascension Day",
     "1996-05-18": "Islamic New Year (estimated)",
-    "1996-05-31": "Buddha's Birthday (estimated)",
+    "1996-05-31": "Vesak Day (estimated)",
     "1996-07-27": "Prophet's Birthday (estimated)",
     "1996-08-17": "Independence Day",
     "1996-12-08": "Isra' and Mi'raj (estimated)",
@@ -556,7 +545,7 @@
     "1997-04-17": "Eid al-Adha (estimated)",
     "1997-05-07": "Islamic New Year (estimated)",
     "1997-05-08": "Ascension Day",
-    "1997-05-21": "Buddha's Birthday (estimated)",
+    "1997-05-21": "Vesak Day (estimated)",
     "1997-07-16": "Prophet's Birthday (estimated)",
     "1997-08-17": "Independence Day",
     "1997-11-27": "Isra' and Mi'raj (estimated)",
@@ -567,7 +556,7 @@
     "1998-04-07": "Eid al-Adha (estimated)",
     "1998-04-10": "Good Friday",
     "1998-04-27": "Islamic New Year (estimated)",
-    "1998-05-10": "Buddha's Birthday (estimated)",
+    "1998-05-10": "Vesak Day (estimated)",
     "1998-05-21": "Ascension Day",
     "1998-07-06": "Prophet's Birthday (estimated)",
     "1998-08-17": "Independence Day",
@@ -580,7 +569,8 @@
     "1999-04-02": "Good Friday",
     "1999-04-17": "Islamic New Year (estimated)",
     "1999-05-13": "Ascension Day",
-    "1999-05-29": "Buddha's Birthday (estimated)",
+    "1999-05-29": "Vesak Day (estimated)",
+    "1999-06-07": "Legislative Election Day",
     "1999-06-26": "Prophet's Birthday (estimated)",
     "1999-08-17": "Independence Day",
     "1999-11-05": "Isra' and Mi'raj (estimated)",
@@ -591,7 +581,7 @@
     "2000-03-16": "Eid al-Adha (estimated)",
     "2000-04-06": "Islamic New Year (estimated)",
     "2000-04-21": "Good Friday",
-    "2000-05-18": "Buddha's Birthday (estimated)",
+    "2000-05-18": "Vesak Day (estimated)",
     "2000-06-01": "Ascension Day",
     "2000-06-14": "Prophet's Birthday (estimated)",
     "2000-08-17": "Independence Day",
@@ -603,7 +593,7 @@
     "2001-03-06": "Eid al-Adha",
     "2001-03-26": "Islamic New Year",
     "2001-04-13": "Good Friday",
-    "2001-05-07": "Buddha's Birthday (estimated)",
+    "2001-05-07": "Vesak Day (estimated)",
     "2001-05-24": "Ascension Day",
     "2001-06-04": "Prophet's Birthday (estimated)",
     "2001-08-17": "Independence Day",
@@ -617,37 +607,52 @@
     "2002-03-29": "Good Friday",
     "2002-05-09": "Ascension Day",
     "2002-05-24": "Prophet's Birthday (estimated)",
-    "2002-05-26": "Buddha's Birthday (estimated)",
+    "2002-05-26": "Vesak Day (estimated)",
     "2002-08-17": "Independence Day",
     "2002-10-04": "Isra' and Mi'raj",
+    "2002-12-05": "Eid al-Fitr Joint Holiday",
     "2002-12-06": "Eid al-Fitr",
     "2002-12-07": "Eid al-Fitr Second Day",
+    "2002-12-09": "Eid al-Fitr Joint Holiday",
+    "2002-12-10": "Eid al-Fitr Joint Holiday",
     "2002-12-25": "Christmas Day",
+    "2002-12-26": "Christmas Joint Holiday",
     "2003-01-01": "New Year's Day",
     "2003-02-01": "Lunar New Year",
     "2003-02-12": "Eid al-Adha",
     "2003-03-05": "Islamic New Year",
     "2003-04-18": "Good Friday",
     "2003-05-13": "Prophet's Birthday (estimated)",
-    "2003-05-15": "Buddha's Birthday (estimated)",
+    "2003-05-15": "Vesak Day (estimated)",
     "2003-05-29": "Ascension Day",
     "2003-08-17": "Independence Day",
     "2003-09-24": "Isra' and Mi'raj",
+    "2003-11-24": "Eid al-Fitr Joint Holiday",
     "2003-11-25": "Eid al-Fitr",
     "2003-11-26": "Eid al-Fitr Second Day",
+    "2003-11-27": "Eid al-Fitr Joint Holiday",
+    "2003-11-28": "Eid al-Fitr Joint Holiday",
     "2003-12-25": "Christmas Day",
+    "2003-12-26": "Christmas Joint Holiday",
     "2004-01-01": "New Year's Day",
     "2004-01-22": "Lunar New Year",
     "2004-02-02": "Eid al-Adha",
     "2004-02-22": "Islamic New Year",
+    "2004-04-05": "Legislative Election Day",
     "2004-04-09": "Good Friday",
     "2004-05-01": "Prophet's Birthday (estimated)",
     "2004-05-20": "Ascension Day",
-    "2004-06-02": "Buddha's Birthday (estimated)",
+    "2004-06-02": "Vesak Day (estimated)",
+    "2004-07-05": "Presidential Election Day",
     "2004-08-17": "Independence Day",
     "2004-09-12": "Isra' and Mi'raj",
+    "2004-09-20": "Presidential Election Day",
     "2004-11-14": "Eid al-Fitr",
     "2004-11-15": "Eid al-Fitr Second Day",
+    "2004-11-16": "Eid al-Fitr (observed)",
+    "2004-11-17": "Eid al-Fitr Joint Holiday",
+    "2004-11-18": "Eid al-Fitr Joint Holiday",
+    "2004-11-19": "Eid al-Fitr Joint Holiday",
     "2004-12-25": "Christmas Day",
     "2005-01-01": "New Year's Day",
     "2005-01-21": "Eid al-Adha",
@@ -656,24 +661,34 @@
     "2005-03-25": "Good Friday",
     "2005-04-21": "Prophet's Birthday (estimated)",
     "2005-05-05": "Ascension Day",
-    "2005-05-22": "Buddha's Birthday (estimated)",
+    "2005-05-22": "Vesak Day (estimated)",
     "2005-08-17": "Independence Day",
     "2005-09-01": "Isra' and Mi'raj",
+    "2005-11-02": "Eid al-Fitr Joint Holiday",
     "2005-11-03": "Eid al-Fitr",
     "2005-11-04": "Eid al-Fitr Second Day",
+    "2005-11-05": "Eid al-Fitr Joint Holiday",
+    "2005-11-07": "Eid al-Fitr Joint Holiday",
+    "2005-11-08": "Eid al-Fitr Joint Holiday",
     "2005-12-25": "Christmas Day",
     "2006-01-01": "New Year's Day",
     "2006-01-10": "Eid al-Adha",
     "2006-01-30": "Lunar New Year",
     "2006-01-31": "Islamic New Year",
+    "2006-03-31": "Day of Silence Joint Holiday",
     "2006-04-10": "Prophet's Birthday",
     "2006-04-14": "Good Friday",
-    "2006-05-12": "Buddha's Birthday (estimated)",
+    "2006-05-12": "Vesak Day (estimated)",
     "2006-05-25": "Ascension Day",
+    "2006-05-26": "Ascension Joint Holiday",
     "2006-08-17": "Independence Day",
+    "2006-08-18": "Independence Day Joint Holiday",
     "2006-08-22": "Isra' and Mi'raj",
+    "2006-10-23": "Eid al-Fitr Joint Holiday",
     "2006-10-24": "Eid al-Fitr",
     "2006-10-25": "Eid al-Fitr Second Day",
+    "2006-10-26": "Eid al-Fitr Joint Holiday",
+    "2006-10-27": "Eid al-Fitr Joint Holiday",
     "2006-12-25": "Christmas Day",
     "2006-12-31": "Eid al-Adha",
     "2007-01-01": "New Year's Day",
@@ -682,40 +697,62 @@
     "2007-03-31": "Prophet's Birthday",
     "2007-04-06": "Good Friday",
     "2007-05-17": "Ascension Day",
-    "2007-06-01": "Buddha's Birthday",
+    "2007-05-18": "Ascension Joint Holiday",
+    "2007-06-01": "Vesak Day",
     "2007-08-11": "Isra' and Mi'raj",
     "2007-08-17": "Independence Day",
+    "2007-10-12": "Eid al-Fitr Joint Holiday",
     "2007-10-13": "Eid al-Fitr",
     "2007-10-14": "Eid al-Fitr Second Day",
+    "2007-10-15": "Eid al-Fitr Joint Holiday",
+    "2007-10-16": "Eid al-Fitr Joint Holiday",
+    "2007-10-17": "Eid al-Fitr Joint Holiday",
+    "2007-10-18": "Eid al-Fitr Joint Holiday",
+    "2007-10-19": "Eid al-Fitr Joint Holiday",
     "2007-12-20": "Eid al-Adha",
+    "2007-12-21": "Christmas Joint Holiday",
+    "2007-12-24": "Christmas Joint Holiday",
     "2007-12-25": "Christmas Day",
+    "2007-12-26": "Christmas Joint Holiday",
+    "2007-12-31": "New Year's Joint Holiday",
     "2008-01-01": "New Year's Day",
     "2008-01-10": "Islamic New Year",
+    "2008-01-11": "Islamic New Year Joint Holiday",
     "2008-02-07": "Lunar New Year",
     "2008-03-20": "Prophet's Birthday",
     "2008-03-21": "Good Friday",
     "2008-05-01": "Ascension Day",
-    "2008-05-20": "Buddha's Birthday",
+    "2008-05-20": "Vesak Day",
     "2008-07-31": "Isra' and Mi'raj",
     "2008-08-17": "Independence Day",
+    "2008-09-29": "Eid al-Fitr Joint Holiday",
+    "2008-09-30": "Eid al-Fitr Joint Holiday",
     "2008-10-01": "Eid al-Fitr",
     "2008-10-02": "Eid al-Fitr Second Day",
+    "2008-10-03": "Eid al-Fitr Joint Holiday",
     "2008-12-08": "Eid al-Adha",
     "2008-12-25": "Christmas Day",
+    "2008-12-26": "Christmas Joint Holiday",
     "2008-12-29": "Islamic New Year",
     "2009-01-01": "New Year's Day",
+    "2009-01-02": "New Year's Joint Holiday",
     "2009-01-26": "Lunar New Year",
     "2009-03-09": "Prophet's Birthday",
     "2009-03-26": "Day of Silence",
+    "2009-04-09": "Legislative Election Day",
     "2009-04-10": "Good Friday",
-    "2009-05-09": "Buddha's Birthday",
+    "2009-05-09": "Vesak Day",
     "2009-05-21": "Ascension Day",
+    "2009-07-08": "Presidential Election Day",
     "2009-07-20": "Isra' and Mi'raj",
     "2009-08-17": "Independence Day",
+    "2009-09-18": "Eid al-Fitr Joint Holiday",
     "2009-09-20": "Eid al-Fitr",
     "2009-09-21": "Eid al-Fitr Second Day",
+    "2009-09-23": "Eid al-Fitr Joint Holiday",
     "2009-11-27": "Eid al-Adha",
     "2009-12-18": "Islamic New Year",
+    "2009-12-24": "Christmas Joint Holiday",
     "2009-12-25": "Christmas Day",
     "2010-01-01": "New Year's Day",
     "2010-02-15": "Lunar New Year",
@@ -723,71 +760,96 @@
     "2010-03-16": "Day of Silence",
     "2010-04-02": "Good Friday",
     "2010-05-13": "Ascension Day",
-    "2010-05-28": "Buddha's Birthday",
+    "2010-05-28": "Vesak Day",
     "2010-07-09": "Isra' and Mi'raj",
     "2010-08-17": "Independence Day",
+    "2010-09-09": "Eid al-Fitr Joint Holiday",
     "2010-09-10": "Eid al-Fitr",
     "2010-09-11": "Eid al-Fitr Second Day",
+    "2010-09-13": "Eid al-Fitr Joint Holiday",
     "2010-11-17": "Eid al-Adha",
     "2010-12-07": "Islamic New Year",
+    "2010-12-24": "Christmas Joint Holiday",
     "2010-12-25": "Christmas Day",
     "2011-01-01": "New Year's Day",
     "2011-02-03": "Lunar New Year",
     "2011-02-15": "Prophet's Birthday",
     "2011-03-05": "Day of Silence",
     "2011-04-22": "Good Friday",
-    "2011-05-17": "Buddha's Birthday",
+    "2011-05-16": "Vesak Joint Holiday",
+    "2011-05-17": "Vesak Day",
     "2011-06-02": "Ascension Day",
     "2011-06-29": "Isra' and Mi'raj",
     "2011-08-17": "Independence Day",
+    "2011-08-29": "Eid al-Fitr Joint Holiday",
     "2011-08-30": "Eid al-Fitr",
     "2011-08-31": "Eid al-Fitr Second Day",
+    "2011-09-01": "Eid al-Fitr Joint Holiday",
+    "2011-09-02": "Eid al-Fitr Joint Holiday",
     "2011-11-06": "Eid al-Adha",
     "2011-11-27": "Islamic New Year",
     "2011-12-25": "Christmas Day",
+    "2011-12-26": "Christmas Joint Holiday",
     "2012-01-01": "New Year's Day",
     "2012-01-23": "Lunar New Year",
     "2012-02-05": "Prophet's Birthday",
     "2012-03-23": "Day of Silence",
     "2012-04-06": "Good Friday",
-    "2012-05-06": "Buddha's Birthday",
+    "2012-05-06": "Vesak Day",
     "2012-05-17": "Ascension Day",
+    "2012-05-18": "Ascension Joint Holiday",
     "2012-06-17": "Isra' and Mi'raj",
     "2012-08-17": "Independence Day",
     "2012-08-19": "Eid al-Fitr",
     "2012-08-20": "Eid al-Fitr Second Day",
+    "2012-08-21": "Eid al-Fitr Joint Holiday",
+    "2012-08-22": "Eid al-Fitr Joint Holiday",
     "2012-10-26": "Eid al-Adha",
     "2012-11-15": "Islamic New Year",
+    "2012-11-16": "Islamic New Year Joint Holiday",
+    "2012-12-24": "Christmas Joint Holiday",
     "2012-12-25": "Christmas Day",
+    "2012-12-31": "New Year's Joint Holiday",
     "2013-01-01": "New Year's Day",
     "2013-01-24": "Prophet's Birthday",
     "2013-02-11": "Lunar New Year",
     "2013-03-12": "Day of Silence",
     "2013-03-29": "Good Friday",
     "2013-05-09": "Ascension Day",
-    "2013-05-25": "Buddha's Birthday",
+    "2013-05-25": "Vesak Day",
     "2013-06-06": "Isra' and Mi'raj",
+    "2013-08-05": "Eid al-Fitr Joint Holiday",
+    "2013-08-06": "Eid al-Fitr Joint Holiday",
+    "2013-08-07": "Eid al-Fitr Joint Holiday",
     "2013-08-08": "Eid al-Fitr",
     "2013-08-09": "Eid al-Fitr Second Day",
     "2013-08-17": "Independence Day",
+    "2013-10-14": "Eid al-Adha Joint Holiday",
     "2013-10-15": "Eid al-Adha",
     "2013-11-05": "Islamic New Year",
     "2013-12-25": "Christmas Day",
+    "2013-12-26": "Christmas Joint Holiday",
     "2014-01-01": "New Year's Day",
     "2014-01-14": "Prophet's Birthday",
     "2014-01-31": "Lunar New Year",
     "2014-03-31": "Day of Silence",
+    "2014-04-09": "Legislative Election Day",
     "2014-04-18": "Good Friday",
     "2014-05-01": "International Labor Day",
-    "2014-05-15": "Buddha's Birthday",
+    "2014-05-15": "Vesak Day",
     "2014-05-27": "Isra' and Mi'raj",
     "2014-05-29": "Ascension Day",
+    "2014-07-09": "Presidential Election Day",
     "2014-07-28": "Eid al-Fitr",
     "2014-07-29": "Eid al-Fitr Second Day",
+    "2014-07-30": "Eid al-Fitr Joint Holiday",
+    "2014-07-31": "Eid al-Fitr Joint Holiday",
+    "2014-08-01": "Eid al-Fitr Joint Holiday",
     "2014-08-17": "Independence Day",
     "2014-10-05": "Eid al-Adha",
     "2014-10-25": "Islamic New Year",
     "2014-12-25": "Christmas Day",
+    "2014-12-26": "Christmas Joint Holiday",
     "2015-01-01": "New Year's Day",
     "2015-01-03": "Prophet's Birthday",
     "2015-02-19": "Lunar New Year",
@@ -796,12 +858,16 @@
     "2015-05-01": "International Labor Day",
     "2015-05-14": "Ascension Day",
     "2015-05-16": "Isra' and Mi'raj",
-    "2015-06-02": "Buddha's Birthday",
+    "2015-06-02": "Vesak Day",
+    "2015-07-16": "Eid al-Fitr Joint Holiday",
     "2015-07-17": "Eid al-Fitr",
     "2015-07-18": "Eid al-Fitr Second Day",
+    "2015-07-20": "Eid al-Fitr Joint Holiday",
+    "2015-07-21": "Eid al-Fitr Joint Holiday",
     "2015-08-17": "Independence Day",
     "2015-09-24": "Eid al-Adha",
     "2015-10-14": "Islamic New Year",
+    "2015-12-09": "Local Election Day",
     "2015-12-24": "Prophet's Birthday",
     "2015-12-25": "Christmas Day",
     "2016-01-01": "New Year's Day",
@@ -811,31 +877,42 @@
     "2016-05-01": "International Labor Day",
     "2016-05-05": "Ascension Day",
     "2016-05-06": "Isra' and Mi'raj",
-    "2016-05-22": "Buddha's Birthday",
+    "2016-05-22": "Vesak Day",
     "2016-06-01": "Pancasila Day",
+    "2016-07-04": "Eid al-Fitr Joint Holiday",
+    "2016-07-05": "Eid al-Fitr Joint Holiday",
     "2016-07-06": "Eid al-Fitr",
     "2016-07-07": "Eid al-Fitr Second Day",
+    "2016-07-08": "Eid al-Fitr Joint Holiday",
     "2016-08-17": "Independence Day",
     "2016-09-12": "Eid al-Adha",
     "2016-10-02": "Islamic New Year",
     "2016-12-12": "Prophet's Birthday",
     "2016-12-25": "Christmas Day",
+    "2016-12-26": "Christmas Joint Holiday",
     "2017-01-01": "New Year's Day",
     "2017-01-28": "Lunar New Year",
+    "2017-02-15": "Local Election Day",
     "2017-03-28": "Day of Silence",
     "2017-04-14": "Good Friday",
     "2017-04-24": "Isra' and Mi'raj",
     "2017-05-01": "International Labor Day",
-    "2017-05-11": "Buddha's Birthday",
+    "2017-05-11": "Vesak Day",
     "2017-05-25": "Ascension Day",
     "2017-06-01": "Pancasila Day",
+    "2017-06-23": "Eid al-Fitr Joint Holiday",
     "2017-06-25": "Eid al-Fitr",
     "2017-06-26": "Eid al-Fitr Second Day",
+    "2017-06-27": "Eid al-Fitr Joint Holiday",
+    "2017-06-28": "Eid al-Fitr Joint Holiday",
+    "2017-06-29": "Eid al-Fitr Joint Holiday",
+    "2017-06-30": "Eid al-Fitr Joint Holiday",
     "2017-08-17": "Independence Day",
     "2017-09-01": "Eid al-Adha",
     "2017-09-21": "Islamic New Year",
     "2017-12-01": "Prophet's Birthday",
     "2017-12-25": "Christmas Day",
+    "2017-12-26": "Christmas Joint Holiday",
     "2018-01-01": "New Year's Day",
     "2018-02-16": "Lunar New Year",
     "2018-03-17": "Day of Silence",
@@ -843,32 +920,44 @@
     "2018-04-14": "Isra' and Mi'raj",
     "2018-05-01": "International Labor Day",
     "2018-05-10": "Ascension Day",
-    "2018-05-29": "Buddha's Birthday",
+    "2018-05-29": "Vesak Day",
     "2018-06-01": "Pancasila Day",
+    "2018-06-11": "Eid al-Fitr Joint Holiday",
+    "2018-06-12": "Eid al-Fitr Joint Holiday",
+    "2018-06-13": "Eid al-Fitr Joint Holiday",
+    "2018-06-14": "Eid al-Fitr Joint Holiday",
     "2018-06-15": "Eid al-Fitr",
     "2018-06-16": "Eid al-Fitr Second Day",
-    "2018-06-27": "Election Day",
+    "2018-06-18": "Eid al-Fitr Joint Holiday",
+    "2018-06-19": "Eid al-Fitr Joint Holiday",
+    "2018-06-20": "Eid al-Fitr Joint Holiday",
+    "2018-06-27": "Local Election Day",
     "2018-08-17": "Independence Day",
     "2018-08-22": "Eid al-Adha",
     "2018-09-11": "Islamic New Year",
     "2018-11-20": "Prophet's Birthday",
+    "2018-12-24": "Christmas Joint Holiday",
     "2018-12-25": "Christmas Day",
     "2019-01-01": "New Year's Day",
     "2019-02-05": "Lunar New Year",
     "2019-03-07": "Day of Silence",
     "2019-04-03": "Isra' and Mi'raj",
-    "2019-04-17": "Election Day",
+    "2019-04-17": "General Election Day",
     "2019-04-19": "Good Friday",
     "2019-05-01": "International Labor Day",
-    "2019-05-19": "Buddha's Birthday",
+    "2019-05-19": "Vesak Day",
     "2019-05-30": "Ascension Day",
     "2019-06-01": "Pancasila Day",
+    "2019-06-03": "Eid al-Fitr Joint Holiday",
+    "2019-06-04": "Eid al-Fitr Joint Holiday",
     "2019-06-05": "Eid al-Fitr",
     "2019-06-06": "Eid al-Fitr Second Day",
+    "2019-06-07": "Eid al-Fitr Joint Holiday",
     "2019-08-11": "Eid al-Adha",
     "2019-08-17": "Independence Day",
     "2019-09-01": "Islamic New Year",
     "2019-11-09": "Prophet's Birthday",
+    "2019-12-24": "Christmas Joint Holiday",
     "2019-12-25": "Christmas Day",
     "2020-01-01": "New Year's Day",
     "2020-01-25": "Lunar New Year",
@@ -876,7 +965,7 @@
     "2020-03-25": "Day of Silence",
     "2020-04-10": "Good Friday",
     "2020-05-01": "International Labor Day",
-    "2020-05-07": "Buddha's Birthday",
+    "2020-05-07": "Vesak Day",
     "2020-05-21": "Ascension Day",
     "2020-05-24": "Eid al-Fitr",
     "2020-05-25": "Eid al-Fitr Second Day",
@@ -884,23 +973,30 @@
     "2020-07-31": "Eid al-Adha",
     "2020-08-17": "Independence Day",
     "2020-08-20": "Islamic New Year",
+    "2020-08-21": "Islamic New Year Joint Holiday",
+    "2020-10-28": "Prophet's Birthday Joint Holiday",
     "2020-10-29": "Prophet's Birthday",
-    "2020-12-09": "Election Day",
+    "2020-10-30": "Prophet's Birthday Joint Holiday",
+    "2020-12-09": "Local Election Day",
+    "2020-12-24": "Christmas Joint Holiday",
     "2020-12-25": "Christmas Day",
+    "2020-12-31": "Eid al-Fitr Joint Holiday (observed)",
     "2021-01-01": "New Year's Day",
     "2021-02-12": "Lunar New Year",
     "2021-03-11": "Isra' and Mi'raj",
     "2021-03-14": "Day of Silence",
     "2021-04-02": "Good Friday",
     "2021-05-01": "International Labor Day",
+    "2021-05-12": "Eid al-Fitr Joint Holiday",
     "2021-05-13": "Ascension Day; Eid al-Fitr",
     "2021-05-14": "Eid al-Fitr Second Day",
-    "2021-05-26": "Buddha's Birthday",
+    "2021-05-26": "Vesak Day",
     "2021-06-01": "Pancasila Day",
     "2021-07-20": "Eid al-Adha",
     "2021-08-11": "Islamic New Year",
     "2021-08-17": "Independence Day",
     "2021-10-19": "Prophet's Birthday",
+    "2021-12-24": "Christmas Joint Holiday",
     "2021-12-25": "Christmas Day",
     "2022-01-01": "New Year's Day",
     "2022-02-01": "Lunar New Year",
@@ -914,7 +1010,7 @@
     "2022-05-04": "Eid al-Fitr Joint Holiday",
     "2022-05-05": "Eid al-Fitr Joint Holiday",
     "2022-05-06": "Eid al-Fitr Joint Holiday",
-    "2022-05-16": "Buddha's Birthday",
+    "2022-05-16": "Vesak Day",
     "2022-05-26": "Ascension Day",
     "2022-06-01": "Pancasila Day",
     "2022-07-10": "Eid al-Adha",
@@ -922,7 +1018,6 @@
     "2022-08-17": "Independence Day",
     "2022-10-08": "Prophet's Birthday",
     "2022-12-25": "Christmas Day",
-    "2022-12-26": "Christmas Joint Holiday",
     "2023-01-01": "New Year's Day",
     "2023-01-22": "Lunar New Year",
     "2023-01-23": "Lunar New Year Joint Holiday",
@@ -940,45 +1035,71 @@
     "2023-05-01": "International Labor Day",
     "2023-05-18": "Ascension Day",
     "2023-06-01": "Pancasila Day",
-    "2023-06-04": "Buddha's Birthday",
+    "2023-06-02": "Vesak Joint Holiday",
+    "2023-06-04": "Vesak Day",
+    "2023-06-28": "Eid al-Adha Joint Holiday",
     "2023-06-29": "Eid al-Adha",
+    "2023-06-30": "Eid al-Adha Joint Holiday",
     "2023-07-19": "Islamic New Year",
     "2023-08-17": "Independence Day",
-    "2023-09-27": "Prophet's Birthday (estimated)",
+    "2023-09-28": "Prophet's Birthday",
     "2023-12-25": "Christmas Day",
     "2023-12-26": "Christmas Joint Holiday",
     "2024-01-01": "New Year's Day",
-    "2024-02-08": "Isra' and Mi'raj (estimated)",
-    "2024-02-10": "Lunar New Year (estimated)",
+    "2024-02-06": "Isra' and Mi'raj",
+    "2024-02-09": "Lunar New Year Joint Holiday",
+    "2024-02-10": "Lunar New Year",
+    "2024-02-14": "General Election Day",
     "2024-03-11": "Day of Silence",
+    "2024-03-12": "Day of Silence Joint Holiday",
     "2024-03-29": "Good Friday",
+    "2024-03-31": "Easter Sunday",
+    "2024-04-08": "Eid al-Fitr Joint Holiday",
+    "2024-04-09": "Eid al-Fitr Joint Holiday",
     "2024-04-10": "Eid al-Fitr",
     "2024-04-11": "Eid al-Fitr Second Day",
+    "2024-04-12": "Eid al-Fitr Joint Holiday",
+    "2024-04-15": "Eid al-Fitr Joint Holiday",
     "2024-05-01": "International Labor Day",
     "2024-05-09": "Ascension Day",
-    "2024-05-22": "Buddha's Birthday (estimated)",
+    "2024-05-10": "Ascension Joint Holiday",
+    "2024-05-23": "Vesak Day",
+    "2024-05-24": "Vesak Joint Holiday",
     "2024-06-01": "Pancasila Day",
-    "2024-06-16": "Eid al-Adha (estimated)",
-    "2024-07-07": "Islamic New Year (estimated)",
+    "2024-06-17": "Eid al-Adha",
+    "2024-06-18": "Eid al-Adha Joint Holiday",
+    "2024-07-07": "Islamic New Year",
     "2024-08-17": "Independence Day",
-    "2024-09-15": "Prophet's Birthday (estimated)",
+    "2024-09-16": "Prophet's Birthday",
     "2024-12-25": "Christmas Day",
+    "2024-12-26": "Christmas Joint Holiday",
     "2025-01-01": "New Year's Day",
-    "2025-01-27": "Isra' and Mi'raj (estimated)",
-    "2025-01-29": "Lunar New Year (estimated)",
+    "2025-01-27": "Isra' and Mi'raj",
+    "2025-01-28": "Lunar New Year Joint Holiday",
+    "2025-01-29": "Lunar New Year",
+    "2025-03-28": "Day of Silence Joint Holiday",
     "2025-03-29": "Day of Silence",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr Second Day (estimated)",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr Second Day",
+    "2025-04-02": "Eid al-Fitr Joint Holiday",
+    "2025-04-03": "Eid al-Fitr Joint Holiday",
+    "2025-04-04": "Eid al-Fitr Joint Holiday",
+    "2025-04-07": "Eid al-Fitr Joint Holiday",
     "2025-04-18": "Good Friday",
+    "2025-04-20": "Easter Sunday",
     "2025-05-01": "International Labor Day",
-    "2025-05-11": "Buddha's Birthday (estimated)",
+    "2025-05-12": "Vesak Day",
+    "2025-05-13": "Vesak Joint Holiday",
     "2025-05-29": "Ascension Day",
+    "2025-05-30": "Ascension Joint Holiday",
     "2025-06-01": "Pancasila Day",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-06": "Eid al-Adha",
+    "2025-06-09": "Eid al-Adha Joint Holiday",
+    "2025-06-27": "Islamic New Year",
     "2025-08-17": "Independence Day",
-    "2025-09-04": "Prophet's Birthday (estimated)",
+    "2025-09-05": "Prophet's Birthday",
     "2025-12-25": "Christmas Day",
+    "2025-12-26": "Christmas Joint Holiday",
     "2026-01-01": "New Year's Day",
     "2026-01-16": "Isra' and Mi'raj (estimated)",
     "2026-02-17": "Lunar New Year (estimated)",
@@ -986,10 +1107,11 @@
     "2026-03-20": "Eid al-Fitr (estimated)",
     "2026-03-21": "Eid al-Fitr Second Day (estimated)",
     "2026-04-03": "Good Friday",
+    "2026-04-05": "Easter Sunday",
     "2026-05-01": "International Labor Day",
     "2026-05-14": "Ascension Day",
     "2026-05-27": "Eid al-Adha (estimated)",
-    "2026-05-31": "Buddha's Birthday (estimated)",
+    "2026-05-31": "Vesak Day (estimated)",
     "2026-06-01": "Pancasila Day",
     "2026-06-16": "Islamic New Year (estimated)",
     "2026-08-17": "Independence Day",
@@ -998,13 +1120,15 @@
     "2027-01-01": "New Year's Day",
     "2027-01-05": "Isra' and Mi'raj (estimated)",
     "2027-02-06": "Lunar New Year (estimated)",
+    "2027-03-08": "Day of Silence",
     "2027-03-09": "Eid al-Fitr (estimated)",
     "2027-03-10": "Eid al-Fitr Second Day (estimated)",
     "2027-03-26": "Good Friday",
+    "2027-03-28": "Easter Sunday",
     "2027-05-01": "International Labor Day",
     "2027-05-06": "Ascension Day",
     "2027-05-16": "Eid al-Adha (estimated)",
-    "2027-05-20": "Buddha's Birthday (estimated)",
+    "2027-05-20": "Vesak Day (estimated)",
     "2027-06-01": "Pancasila Day",
     "2027-06-06": "Islamic New Year (estimated)",
     "2027-08-14": "Prophet's Birthday (estimated)",
@@ -1014,10 +1138,12 @@
     "2028-01-26": "Lunar New Year (estimated)",
     "2028-02-26": "Eid al-Fitr (estimated)",
     "2028-02-27": "Eid al-Fitr Second Day (estimated)",
+    "2028-03-26": "Day of Silence",
     "2028-04-14": "Good Friday",
+    "2028-04-16": "Easter Sunday",
     "2028-05-01": "International Labor Day",
     "2028-05-05": "Eid al-Adha (estimated)",
-    "2028-05-09": "Buddha's Birthday (estimated)",
+    "2028-05-09": "Vesak Day (estimated)",
     "2028-05-25": "Ascension Day; Islamic New Year (estimated)",
     "2028-06-01": "Pancasila Day",
     "2028-08-03": "Prophet's Birthday (estimated)",
@@ -1028,12 +1154,14 @@
     "2029-02-13": "Lunar New Year (estimated)",
     "2029-02-14": "Eid al-Fitr (estimated)",
     "2029-02-15": "Eid al-Fitr Second Day (estimated)",
+    "2029-03-15": "Day of Silence",
     "2029-03-30": "Good Friday",
+    "2029-04-01": "Easter Sunday",
     "2029-04-24": "Eid al-Adha (estimated)",
     "2029-05-01": "International Labor Day",
     "2029-05-10": "Ascension Day",
     "2029-05-14": "Islamic New Year (estimated)",
-    "2029-05-27": "Buddha's Birthday (estimated)",
+    "2029-05-27": "Vesak Day (estimated)",
     "2029-06-01": "Pancasila Day",
     "2029-07-24": "Prophet's Birthday (estimated)",
     "2029-08-17": "Independence Day",
@@ -1043,11 +1171,13 @@
     "2030-02-03": "Lunar New Year (estimated)",
     "2030-02-04": "Eid al-Fitr (estimated)",
     "2030-02-05": "Eid al-Fitr Second Day (estimated)",
+    "2030-03-05": "Day of Silence",
     "2030-04-13": "Eid al-Adha (estimated)",
     "2030-04-19": "Good Friday",
+    "2030-04-21": "Easter Sunday",
     "2030-05-01": "International Labor Day",
     "2030-05-03": "Islamic New Year (estimated)",
-    "2030-05-16": "Buddha's Birthday (estimated)",
+    "2030-05-16": "Vesak Day (estimated)",
     "2030-05-30": "Ascension Day",
     "2030-06-01": "Pancasila Day",
     "2030-07-13": "Prophet's Birthday (estimated)",
@@ -1060,11 +1190,12 @@
     "2031-01-25": "Eid al-Fitr Second Day (estimated)",
     "2031-04-02": "Eid al-Adha (estimated)",
     "2031-04-11": "Good Friday",
+    "2031-04-13": "Easter Sunday",
     "2031-04-23": "Islamic New Year (estimated)",
     "2031-05-01": "International Labor Day",
     "2031-05-22": "Ascension Day",
     "2031-06-01": "Pancasila Day",
-    "2031-06-04": "Buddha's Birthday (estimated)",
+    "2031-06-04": "Vesak Day (estimated)",
     "2031-07-02": "Prophet's Birthday (estimated)",
     "2031-08-17": "Independence Day",
     "2031-11-12": "Isra' and Mi'raj (estimated)",
@@ -1075,10 +1206,11 @@
     "2032-02-11": "Lunar New Year (estimated)",
     "2032-03-22": "Eid al-Adha (estimated)",
     "2032-03-26": "Good Friday",
+    "2032-03-28": "Easter Sunday",
     "2032-04-11": "Islamic New Year (estimated)",
     "2032-05-01": "International Labor Day",
     "2032-05-06": "Ascension Day",
-    "2032-05-23": "Buddha's Birthday (estimated)",
+    "2032-05-23": "Vesak Day (estimated)",
     "2032-06-01": "Pancasila Day",
     "2032-06-20": "Prophet's Birthday (estimated)",
     "2032-08-17": "Independence Day",
@@ -1091,8 +1223,9 @@
     "2033-03-11": "Eid al-Adha (estimated)",
     "2033-04-01": "Islamic New Year (estimated)",
     "2033-04-15": "Good Friday",
+    "2033-04-17": "Easter Sunday",
     "2033-05-01": "International Labor Day",
-    "2033-05-13": "Buddha's Birthday (estimated)",
+    "2033-05-13": "Vesak Day (estimated)",
     "2033-05-26": "Ascension Day",
     "2033-06-01": "Pancasila Day",
     "2033-06-09": "Prophet's Birthday (estimated)",
@@ -1106,10 +1239,11 @@
     "2034-03-01": "Eid al-Adha (estimated)",
     "2034-03-21": "Islamic New Year (estimated)",
     "2034-04-07": "Good Friday",
+    "2034-04-09": "Easter Sunday",
     "2034-05-01": "International Labor Day",
     "2034-05-18": "Ascension Day",
     "2034-05-30": "Prophet's Birthday (estimated)",
-    "2034-06-01": "Buddha's Birthday (estimated); Pancasila Day",
+    "2034-06-01": "Pancasila Day; Vesak Day (estimated)",
     "2034-08-17": "Independence Day",
     "2034-10-10": "Isra' and Mi'raj (estimated)",
     "2034-12-12": "Eid al-Fitr (estimated)",
@@ -1120,10 +1254,11 @@
     "2035-02-18": "Eid al-Adha (estimated)",
     "2035-03-11": "Islamic New Year (estimated)",
     "2035-03-23": "Good Friday",
+    "2035-03-25": "Easter Sunday",
     "2035-05-01": "International Labor Day",
     "2035-05-03": "Ascension Day",
     "2035-05-20": "Prophet's Birthday (estimated)",
-    "2035-05-22": "Buddha's Birthday (estimated)",
+    "2035-05-22": "Vesak Day (estimated)",
     "2035-06-01": "Pancasila Day",
     "2035-08-17": "Independence Day",
     "2035-09-29": "Isra' and Mi'raj (estimated)",
@@ -1135,9 +1270,10 @@
     "2036-02-07": "Eid al-Adha (estimated)",
     "2036-02-28": "Islamic New Year (estimated)",
     "2036-04-11": "Good Friday",
+    "2036-04-13": "Easter Sunday",
     "2036-05-01": "International Labor Day",
     "2036-05-08": "Prophet's Birthday (estimated)",
-    "2036-05-10": "Buddha's Birthday (estimated)",
+    "2036-05-10": "Vesak Day (estimated)",
     "2036-05-22": "Ascension Day",
     "2036-06-01": "Pancasila Day",
     "2036-08-17": "Independence Day",
@@ -1150,10 +1286,11 @@
     "2037-02-15": "Lunar New Year (estimated)",
     "2037-02-16": "Islamic New Year (estimated)",
     "2037-04-03": "Good Friday",
+    "2037-04-05": "Easter Sunday",
     "2037-04-28": "Prophet's Birthday (estimated)",
     "2037-05-01": "International Labor Day",
     "2037-05-14": "Ascension Day",
-    "2037-05-29": "Buddha's Birthday (estimated)",
+    "2037-05-29": "Vesak Day (estimated)",
     "2037-06-01": "Pancasila Day",
     "2037-08-17": "Independence Day",
     "2037-09-07": "Isra' and Mi'raj (estimated)",
@@ -1166,8 +1303,9 @@
     "2038-02-05": "Islamic New Year (estimated)",
     "2038-04-17": "Prophet's Birthday (estimated)",
     "2038-04-23": "Good Friday",
+    "2038-04-25": "Easter Sunday",
     "2038-05-01": "International Labor Day",
-    "2038-05-18": "Buddha's Birthday (estimated)",
+    "2038-05-18": "Vesak Day (estimated)",
     "2038-06-01": "Pancasila Day",
     "2038-06-03": "Ascension Day",
     "2038-08-17": "Independence Day",
@@ -1181,8 +1319,9 @@
     "2039-01-26": "Islamic New Year (estimated)",
     "2039-04-06": "Prophet's Birthday (estimated)",
     "2039-04-08": "Good Friday",
+    "2039-04-10": "Easter Sunday",
     "2039-05-01": "International Labor Day",
-    "2039-05-07": "Buddha's Birthday (estimated)",
+    "2039-05-07": "Vesak Day (estimated)",
     "2039-05-19": "Ascension Day",
     "2039-06-01": "Pancasila Day",
     "2039-08-17": "Independence Day; Isra' and Mi'raj (estimated)",
@@ -1195,9 +1334,10 @@
     "2040-02-12": "Lunar New Year (estimated)",
     "2040-03-25": "Prophet's Birthday (estimated)",
     "2040-03-30": "Good Friday",
+    "2040-04-01": "Easter Sunday",
     "2040-05-01": "International Labor Day",
     "2040-05-10": "Ascension Day",
-    "2040-05-25": "Buddha's Birthday (estimated)",
+    "2040-05-25": "Vesak Day (estimated)",
     "2040-06-01": "Pancasila Day",
     "2040-08-05": "Isra' and Mi'raj (estimated)",
     "2040-08-17": "Independence Day",
@@ -1210,8 +1350,9 @@
     "2041-02-01": "Lunar New Year (estimated)",
     "2041-03-15": "Prophet's Birthday (estimated)",
     "2041-04-19": "Good Friday",
+    "2041-04-21": "Easter Sunday",
     "2041-05-01": "International Labor Day",
-    "2041-05-14": "Buddha's Birthday (estimated)",
+    "2041-05-14": "Vesak Day (estimated)",
     "2041-05-30": "Ascension Day",
     "2041-06-01": "Pancasila Day",
     "2041-07-25": "Isra' and Mi'raj (estimated)",
@@ -1225,10 +1366,11 @@
     "2042-01-22": "Lunar New Year (estimated)",
     "2042-03-04": "Prophet's Birthday (estimated)",
     "2042-04-04": "Good Friday",
+    "2042-04-06": "Easter Sunday",
     "2042-05-01": "International Labor Day",
     "2042-05-15": "Ascension Day",
     "2042-06-01": "Pancasila Day",
-    "2042-06-02": "Buddha's Birthday (estimated)",
+    "2042-06-02": "Vesak Day (estimated)",
     "2042-07-15": "Isra' and Mi'raj (estimated)",
     "2042-08-17": "Independence Day",
     "2042-09-15": "Eid al-Fitr (estimated)",
@@ -1240,9 +1382,10 @@
     "2043-02-10": "Lunar New Year (estimated)",
     "2043-02-22": "Prophet's Birthday (estimated)",
     "2043-03-27": "Good Friday",
+    "2043-03-29": "Easter Sunday",
     "2043-05-01": "International Labor Day",
     "2043-05-07": "Ascension Day",
-    "2043-05-23": "Buddha's Birthday (estimated)",
+    "2043-05-23": "Vesak Day (estimated)",
     "2043-06-01": "Pancasila Day",
     "2043-07-04": "Isra' and Mi'raj (estimated)",
     "2043-08-17": "Independence Day",
@@ -1255,8 +1398,9 @@
     "2044-01-30": "Lunar New Year (estimated)",
     "2044-02-11": "Prophet's Birthday (estimated)",
     "2044-04-15": "Good Friday",
+    "2044-04-17": "Easter Sunday",
     "2044-05-01": "International Labor Day",
-    "2044-05-12": "Buddha's Birthday (estimated)",
+    "2044-05-12": "Vesak Day (estimated)",
     "2044-05-26": "Ascension Day",
     "2044-06-01": "Pancasila Day",
     "2044-06-23": "Isra' and Mi'raj (estimated)",
@@ -1270,9 +1414,10 @@
     "2045-01-30": "Prophet's Birthday (estimated)",
     "2045-02-17": "Lunar New Year (estimated)",
     "2045-04-07": "Good Friday",
+    "2045-04-09": "Easter Sunday",
     "2045-05-01": "International Labor Day",
     "2045-05-18": "Ascension Day",
-    "2045-05-31": "Buddha's Birthday (estimated)",
+    "2045-05-31": "Vesak Day (estimated)",
     "2045-06-01": "Pancasila Day",
     "2045-06-13": "Isra' and Mi'raj (estimated)",
     "2045-08-14": "Eid al-Fitr (estimated)",
@@ -1285,9 +1430,10 @@
     "2046-01-19": "Prophet's Birthday (estimated)",
     "2046-02-06": "Lunar New Year (estimated)",
     "2046-03-23": "Good Friday",
+    "2046-03-25": "Easter Sunday",
     "2046-05-01": "International Labor Day",
     "2046-05-03": "Ascension Day",
-    "2046-05-20": "Buddha's Birthday (estimated)",
+    "2046-05-20": "Vesak Day (estimated)",
     "2046-06-01": "Pancasila Day",
     "2046-06-02": "Isra' and Mi'raj (estimated)",
     "2046-08-03": "Eid al-Fitr (estimated)",
@@ -1300,8 +1446,9 @@
     "2047-01-08": "Prophet's Birthday (estimated)",
     "2047-01-26": "Lunar New Year (estimated)",
     "2047-04-12": "Good Friday",
+    "2047-04-14": "Easter Sunday",
     "2047-05-01": "International Labor Day",
-    "2047-05-09": "Buddha's Birthday (estimated)",
+    "2047-05-09": "Vesak Day (estimated)",
     "2047-05-22": "Isra' and Mi'raj (estimated)",
     "2047-05-23": "Ascension Day",
     "2047-06-01": "Pancasila Day",
@@ -1315,10 +1462,11 @@
     "2048-01-01": "New Year's Day",
     "2048-02-14": "Lunar New Year (estimated)",
     "2048-04-03": "Good Friday",
+    "2048-04-05": "Easter Sunday",
     "2048-05-01": "International Labor Day",
     "2048-05-10": "Isra' and Mi'raj (estimated)",
     "2048-05-14": "Ascension Day",
-    "2048-05-27": "Buddha's Birthday (estimated)",
+    "2048-05-27": "Vesak Day (estimated)",
     "2048-06-01": "Pancasila Day",
     "2048-07-12": "Eid al-Fitr (estimated)",
     "2048-07-13": "Eid al-Fitr Second Day (estimated)",
@@ -1330,9 +1478,10 @@
     "2049-01-01": "New Year's Day",
     "2049-02-02": "Lunar New Year (estimated)",
     "2049-04-16": "Good Friday",
+    "2049-04-18": "Easter Sunday",
     "2049-04-29": "Isra' and Mi'raj (estimated)",
     "2049-05-01": "International Labor Day",
-    "2049-05-16": "Buddha's Birthday (estimated)",
+    "2049-05-16": "Vesak Day (estimated)",
     "2049-05-27": "Ascension Day",
     "2049-06-01": "Pancasila Day",
     "2049-07-01": "Eid al-Fitr (estimated)",
@@ -1345,11 +1494,12 @@
     "2050-01-01": "New Year's Day",
     "2050-01-23": "Lunar New Year (estimated)",
     "2050-04-08": "Good Friday",
+    "2050-04-10": "Easter Sunday",
     "2050-04-19": "Isra' and Mi'raj (estimated)",
     "2050-05-01": "International Labor Day",
     "2050-05-19": "Ascension Day",
     "2050-06-01": "Pancasila Day",
-    "2050-06-04": "Buddha's Birthday (estimated)",
+    "2050-06-04": "Vesak Day (estimated)",
     "2050-06-20": "Eid al-Fitr (estimated)",
     "2050-06-21": "Eid al-Fitr Second Day (estimated)",
     "2050-08-17": "Independence Day",


Test patch:
diff --git a/tests/countries/test_indonesia.py b/tests/countries/test_indonesia.py
index 33b76a5c..8140ea49 100644
--- a/tests/countries/test_indonesia.py
+++ b/tests/countries/test_indonesia.py
@@ -12,7 +12,7 @@
 
 from unittest import TestCase
 
-from holidays.constants import GOVERNMENT
+from holidays.constants import GOVERNMENT, PUBLIC
 from holidays.countries.indonesia import Indonesia, ID, IDN
 from tests.common import CommonCountryTests
 
@@ -20,25 +20,138 @@ from tests.common import CommonCountryTests
 class TestIndonesia(CommonCountryTests, TestCase):
     @classmethod
     def setUpClass(cls):
-        super().setUpClass(Indonesia, years=range(1946, 2050))
+        super().setUpClass(Indonesia, years=range(1946, 2050), years_non_observed=(2004, 2020))
 
     def test_country_aliases(self):
         self.assertAliases(Indonesia, ID, IDN)
 
     def test_no_holidays(self):
-        self.assertNoHolidays(Indonesia(years=1945))
+        self.assertNoHolidays(Indonesia(years=1945, categories=(GOVERNMENT, PUBLIC)))
 
     def test_special(self):
-        self.assertHoliday("2018-06-27", "2019-04-17", "2020-12-09")
+        dt = (
+            # All Election Types.
+            "1999-06-07",
+            "2004-04-05",
+            "2004-07-05",
+            "2004-09-20",
+            "2009-04-09",
+            "2009-07-08",
+            "2014-04-09",
+            "2014-07-09",
+            "2015-12-09",
+            "2017-02-15",
+            "2018-06-27",
+            "2019-04-17",
+            "2020-12-09",
+            "2024-02-14",
+        )
+        dt_observed = ("2004-11-16",)
+        self.assertHoliday(dt, dt_observed)
+        self.assertNoNonObservedHoliday(dt_observed)
 
     def test_special_government(self):
-        self.assertHoliday(
-            Indonesia(categories=GOVERNMENT),
+        dt = (
+            # Joint Holidays (Cuti Bersama)
+            "2002-12-05",
+            "2002-12-09",
+            "2002-12-10",
+            "2002-12-26",
+            "2003-11-24",
+            "2003-11-27",
+            "2003-11-28",
+            "2003-12-26",
+            "2004-11-17",
+            "2004-11-18",
+            "2004-11-19",
+            "2005-11-02",
+            "2005-11-05",
+            "2005-11-07",
+            "2005-11-08",
+            "2006-03-31",
+            "2006-05-26",
+            "2006-08-18",
+            "2006-10-23",
+            "2006-10-26",
+            "2006-10-27",
+            "2007-05-18",
+            "2007-10-12",
+            "2007-10-15",
+            "2007-10-16",
+            "2007-10-17",
+            "2007-10-18",
+            "2007-10-19",
+            "2007-12-21",
+            "2007-12-24",
+            "2007-12-26",
+            "2007-12-31",
+            "2008-01-11",
+            "2008-09-29",
+            "2008-09-30",
+            "2008-10-03",
+            "2008-12-26",
+            "2009-01-02",
+            "2009-09-18",
+            "2009-09-23",
+            "2009-12-24",
+            "2010-09-09",
+            "2010-09-13",
+            "2010-12-24",
+            "2011-05-16",
+            "2011-08-29",
+            "2011-09-01",
+            "2011-09-02",
+            "2011-12-26",
+            "2012-05-18",
+            "2012-08-21",
+            "2012-08-22",
+            "2012-11-16",
+            "2012-12-24",
+            "2012-12-31",
+            "2013-08-05",
+            "2013-08-06",
+            "2013-08-07",
+            "2013-10-14",
+            "2013-12-26",
+            "2014-07-30",
+            "2014-07-31",
+            "2014-08-01",
+            "2014-12-26",
+            "2015-07-16",
+            "2015-07-20",
+            "2015-07-21",
+            "2016-07-04",
+            "2016-07-05",
+            "2016-07-08",
+            "2016-12-26",
+            "2017-06-23",
+            "2017-06-27",
+            "2017-06-28",
+            "2017-06-29",
+            "2017-06-30",
+            "2017-12-26",
+            "2018-06-11",
+            "2018-06-12",
+            "2018-06-13",
+            "2018-06-14",
+            "2018-06-18",
+            "2018-06-19",
+            "2018-06-20",
+            "2018-12-24",
+            "2019-06-03",
+            "2019-06-04",
+            "2019-06-07",
+            "2019-12-24",
+            "2020-08-21",
+            "2020-10-28",
+            "2020-10-30",
+            "2020-12-24",
+            "2021-05-12",
+            "2021-12-24",
             "2022-04-29",
             "2022-05-04",
             "2022-05-05",
             "2022-05-06",
-            "2022-12-26",
             "2023-01-23",
             "2023-03-23",
             "2023-04-19",
@@ -46,7 +159,36 @@ class TestIndonesia(CommonCountryTests, TestCase):
             "2023-04-21",
             "2023-04-24",
             "2023-04-25",
+            "2023-06-02",
+            "2023-06-28",
+            "2023-06-30",
             "2023-12-26",
+            "2024-02-09",
+            "2024-03-12",
+            "2024-04-08",
+            "2024-04-09",
+            "2024-04-12",
+            "2024-04-15",
+            "2024-05-10",
+            "2024-05-24",
+            "2024-06-18",
+            "2024-12-26",
+            "2025-01-28",
+            "2025-03-28",
+            "2025-04-02",
+            "2025-04-03",
+            "2025-04-04",
+            "2025-04-07",
+            "2025-05-13",
+            "2025-05-30",
+            "2025-06-09",
+            "2025-12-26",
+        )
+        dt_observed = ("2020-12-31",)
+        self.assertHoliday(Indonesia(categories=GOVERNMENT), dt, dt_observed)
+        self.assertNoNonObservedHoliday(
+            Indonesia(categories=GOVERNMENT, observed=False),
+            dt_observed,
         )
 
     def test_new_years_day(self):
@@ -78,10 +220,8 @@ class TestIndonesia(CommonCountryTests, TestCase):
             "2022-02-01",
         )
         years_found = {dt.year for dt in self.holidays.get_named(name, lookup="startswith")}
-        self.assertTrue(
-            set(range(1946, 2050)).difference(set(range(1968, 2003))).issubset(years_found)
-        )
-        self.assertFalse(set(range(1968, 2003)).intersection(years_found))
+        self.assertTrue(set(range(2003, 2050)).issubset(years_found))
+        self.assertFalse(set(range(1946, 2003)).intersection(years_found))
 
     def test_day_of_silence(self):
         name = "Hari Suci Nyepi"
@@ -108,8 +248,23 @@ class TestIndonesia(CommonCountryTests, TestCase):
             "2022-04-15",
             "2023-04-07",
         )
-        self.assertHolidayName(name, range(1953, 1963), range(1971, 2050))
-        self.assertNoHolidayName(name, range(1946, 1953), range(1963, 1971))
+        self.assertHolidayName(name, range(1953, 1964), range(1971, 2050))
+        self.assertNoHolidayName(name, range(1946, 1953), range(1964, 1971))
+
+    def test_easter_sunday(self):
+        name = "Kebangkitan Yesus Kristus"
+        self.assertHolidayName(
+            name,
+            "2024-03-31",
+            "2025-04-20",
+            "2026-04-05",
+            "2027-03-28",
+            "2028-04-16",
+            "2029-04-01",
+            "2030-04-21",
+        )
+        self.assertHolidayName(name, range(2024, 2050))
+        self.assertNoHolidayName(name, range(1946, 2024))
 
     def test_easter_monday(self):
         name = "Hari kedua Paskah"
@@ -126,10 +281,10 @@ class TestIndonesia(CommonCountryTests, TestCase):
             "1961-04-03",
             "1962-04-23",
         )
-        self.assertHolidayName(name, range(1953, 1963))
-        self.assertNoHolidayName(name, range(1946, 1953), range(1963, 2050))
+        self.assertHolidayName(name, range(1953, 1964))
+        self.assertNoHolidayName(name, range(1946, 1953), range(1964, 2050))
 
-    def test_buddhas_birthday(self):
+    def test_vesak_day(self):
         name = "Hari Raya Waisak"
         self.assertHolidayName(
             name,
@@ -146,12 +301,12 @@ class TestIndonesia(CommonCountryTests, TestCase):
 
     def test_labor_day(self):
         name = "Hari Buruh Internasional"
-        self.assertHolidayName(name, (f"{year}-05-01" for year in range(1953, 1969)))
+        self.assertHolidayName(name, (f"{year}-05-01" for year in range(1953, 1968)))
         self.assertHolidayName(name, (f"{year}-05-01" for year in range(2014, 2050)))
         self.assertNoHoliday(
-            f"{year}-05-01" for year in set(range(1969, 2014)).difference({2004, 2008})
+            f"{year}-05-01" for year in set(range(1968, 2014)).difference({2004, 2008})
         )
-        self.assertNoHolidayName(name, range(1969, 2014))
+        self.assertNoHolidayName(name, range(1968, 2014))
 
     def test_ascension_day(self):
         name = "Kenaikan Yesus Kristus"
@@ -164,8 +319,8 @@ class TestIndonesia(CommonCountryTests, TestCase):
             "2022-05-26",
             "2023-05-18",
         )
-        self.assertHolidayName(name, range(1953, 1963), range(1968, 2050))
-        self.assertNoHolidayName(name, range(1946, 1953), range(1963, 1968))
+        self.assertHolidayName(name, range(1953, 1964), range(1968, 2050))
+        self.assertNoHolidayName(name, range(1946, 1953), range(1964, 1968))
 
     def test_whit_monday(self):
         name = "Hari kedua Pentakosta"
@@ -182,8 +337,8 @@ class TestIndonesia(CommonCountryTests, TestCase):
             "1961-05-22",
             "1962-06-11",
         )
-        self.assertHolidayName(name, range(1953, 1963))
-        self.assertNoHolidayName(name, range(1946, 1953), range(1963, 2050))
+        self.assertHolidayName(name, range(1953, 1964))
+        self.assertNoHolidayName(name, range(1946, 1953), range(1964, 2050))
 
     def test_pancasila_day(self):
         name = "Hari Lahir Pancasila"
@@ -228,11 +383,10 @@ class TestIndonesia(CommonCountryTests, TestCase):
     def test_christmas_day(self):
         name = "Hari Raya Natal"
         self.assertHolidayName(name, (f"{year}-12-25" for year in range(1953, 2050)))
-        self.assertNoHoliday(f"{year}-12-25" for year in range(1946, 1953))
-        self.assertNoHolidayName(name, range(1946, 1953))
+        self.assertNoHolidayName(name, (f"{year}-12-25" for year in range(1946, 1953)))
 
     def test_eid_al_fitr(self):
-        name = "Hari Raya Idulfitri"
+        name = "Hari Raya Idul Fitri"
         self.assertHolidayName(
             name,
             "2018-06-15",
@@ -247,7 +401,7 @@ class TestIndonesia(CommonCountryTests, TestCase):
         self.assertFalse(set(range(1946, 1953)).intersection(years_found))
 
     def test_eid_al_fitr_second_day(self):
-        name = "Hari kedua dari Hari Raya Idulfitri"
+        name = "Hari kedua dari Hari Raya Idul Fitri"
         self.assertHolidayName(
             name,
             "2018-06-16",
@@ -262,7 +416,7 @@ class TestIndonesia(CommonCountryTests, TestCase):
         self.assertFalse(set(range(1946, 1953)).intersection(years_found))
 
     def test_eid_al_adha(self):
-        name = "Hari Raya Iduladha"
+        name = "Hari Raya Idul Adha"
         self.assertHolidayName(
             name,
             "2018-08-22",
@@ -290,10 +444,10 @@ class TestIndonesia(CommonCountryTests, TestCase):
             "2023-07-19",
         )
         years_found = {dt.year for dt in self.holidays.get_named(name, lookup="startswith")}
-        self.assertTrue(set(range(1953, 1963)).issubset(years_found))
+        self.assertTrue(set(range(1953, 1964)).issubset(years_found))
         self.assertTrue(set(range(1968, 2050)).issubset(years_found))
         self.assertFalse(set(range(1946, 1953)).intersection(years_found))
-        self.assertFalse(set(range(1963, 1968)).intersection(years_found))
+        self.assertFalse(set(range(1964, 1968)).intersection(years_found))
 
     def test_prophets_birthday(self):
         name = "Maulid Nabi Muhammad"
@@ -306,12 +460,12 @@ class TestIndonesia(CommonCountryTests, TestCase):
             "2022-10-08",
         )
         years_found = {dt.year for dt in self.holidays.get_named(name, lookup="startswith")}
-        self.assertTrue(set(range(1953, 1963)).issubset(years_found))
+        self.assertTrue(set(range(1953, 1964)).issubset(years_found))
         self.assertTrue(set(range(1968, 2050)).issubset(years_found))
         self.assertFalse(set(range(1946, 1953)).intersection(years_found))
-        self.assertFalse(set(range(1963, 1968)).intersection(years_found))
+        self.assertFalse(set(range(1964, 1968)).intersection(years_found))
 
-    def test_prophets_ascension(self):
+    def test_isra_and_miraj(self):
         name = "Isra Mikraj Nabi Muhammad"
         self.assertHolidayName(
             name,
@@ -343,9 +497,9 @@ class TestIndonesia(CommonCountryTests, TestCase):
             "1962-02-21",
         )
         years_found = {dt.year for dt in self.holidays.get_named(name, lookup="startswith")}
-        self.assertTrue(set(range(1953, 1963)).issubset(years_found))
+        self.assertTrue(set(range(1953, 1964)).issubset(years_found))
         self.assertFalse(set(range(1946, 1953)).intersection(years_found))
-        self.assertFalse(set(range(1963, 2050)).intersection(years_found))
+        self.assertFalse(set(range(1964, 2050)).intersection(years_found))
 
     def test_2021(self):
         self.assertHolidays(
@@ -356,11 +510,11 @@ class TestIndonesia(CommonCountryTests, TestCase):
             ("2021-03-14", "Hari Suci Nyepi"),
             ("2021-04-02", "Wafat Yesus Kristus"),
             ("2021-05-01", "Hari Buruh Internasional"),
-            ("2021-05-13", "Hari Raya Idulfitri; Kenaikan Yesus Kristus"),
-            ("2021-05-14", "Hari kedua dari Hari Raya Idulfitri"),
+            ("2021-05-13", "Hari Raya Idul Fitri; Kenaikan Yesus Kristus"),
+            ("2021-05-14", "Hari kedua dari Hari Raya Idul Fitri"),
             ("2021-05-26", "Hari Raya Waisak"),
             ("2021-06-01", "Hari Lahir Pancasila"),
-            ("2021-07-20", "Hari Raya Iduladha"),
+            ("2021-07-20", "Hari Raya Idul Adha"),
             ("2021-08-11", "Tahun Baru Islam"),
             ("2021-08-17", "Hari Kemerdekaan Republik Indonesia"),
             ("2021-10-19", "Maulid Nabi Muhammad"),
@@ -376,12 +530,12 @@ class TestIndonesia(CommonCountryTests, TestCase):
             ("2022-03-03", "Hari Suci Nyepi"),
             ("2022-04-15", "Wafat Yesus Kristus"),
             ("2022-05-01", "Hari Buruh Internasional"),
-            ("2022-05-02", "Hari Raya Idulfitri"),
-            ("2022-05-03", "Hari kedua dari Hari Raya Idulfitri"),
+            ("2022-05-02", "Hari Raya Idul Fitri"),
+            ("2022-05-03", "Hari kedua dari Hari Raya Idul Fitri"),
             ("2022-05-16", "Hari Raya Waisak"),
             ("2022-05-26", "Kenaikan Yesus Kristus"),
             ("2022-06-01", "Hari Lahir Pancasila"),
-            ("2022-07-10", "Hari Raya Iduladha"),
+            ("2022-07-10", "Hari Raya Idul Adha"),
             ("2022-07-30", "Tahun Baru Islam"),
             ("2022-08-17", "Hari Kemerdekaan Republik Indonesia"),
             ("2022-10-08", "Maulid Nabi Muhammad"),
@@ -395,22 +549,21 @@ class TestIndonesia(CommonCountryTests, TestCase):
             ("2022-02-28", "Isra Mikraj Nabi Muhammad"),
             ("2022-03-03", "Hari Suci Nyepi"),
             ("2022-04-15", "Wafat Yesus Kristus"),
-            ("2022-04-29", "Cuti Bersama Hari Raya Idulfitri"),
+            ("2022-04-29", "Cuti Bersama Hari Raya Idul Fitri"),
             ("2022-05-01", "Hari Buruh Internasional"),
-            ("2022-05-02", "Hari Raya Idulfitri"),
-            ("2022-05-03", "Hari kedua dari Hari Raya Idulfitri"),
-            ("2022-05-04", "Cuti Bersama Hari Raya Idulfitri"),
-            ("2022-05-05", "Cuti Bersama Hari Raya Idulfitri"),
-            ("2022-05-06", "Cuti Bersama Hari Raya Idulfitri"),
+            ("2022-05-02", "Hari Raya Idul Fitri"),
+            ("2022-05-03", "Hari kedua dari Hari Raya Idul Fitri"),
+            ("2022-05-04", "Cuti Bersama Hari Raya Idul Fitri"),
+            ("2022-05-05", "Cuti Bersama Hari Raya Idul Fitri"),
+            ("2022-05-06", "Cuti Bersama Hari Raya Idul Fitri"),
             ("2022-05-16", "Hari Raya Waisak"),
             ("2022-05-26", "Kenaikan Yesus Kristus"),
             ("2022-06-01", "Hari Lahir Pancasila"),
-            ("2022-07-10", "Hari Raya Iduladha"),
+            ("2022-07-10", "Hari Raya Idul Adha"),
             ("2022-07-30", "Tahun Baru Islam"),
             ("2022-08-17", "Hari Kemerdekaan Republik Indonesia"),
             ("2022-10-08", "Maulid Nabi Muhammad"),
             ("2022-12-25", "Hari Raya Natal"),
-            ("2022-12-26", "Cuti Bersama Hari Raya Natal"),
         )
 
     def test_l10n_en_us(self):
@@ -428,7 +581,7 @@ class TestIndonesia(CommonCountryTests, TestCase):
             ("2022-05-04", "Eid al-Fitr Joint Holiday"),
             ("2022-05-05", "Eid al-Fitr Joint Holiday"),
             ("2022-05-06", "Eid al-Fitr Joint Holiday"),
-            ("2022-05-16", "Buddha's Birthday"),
+            ("2022-05-16", "Vesak Day"),
             ("2022-05-26", "Ascension Day"),
             ("2022-06-01", "Pancasila Day"),
             ("2022-07-10", "Eid al-Adha"),
@@ -436,7 +589,31 @@ class TestIndonesia(CommonCountryTests, TestCase):
             ("2022-08-17", "Independence Day"),
             ("2022-10-08", "Prophet's Birthday"),
             ("2022-12-25", "Christmas Day"),
-            ("2022-12-26", "Christmas Joint Holiday"),
+        )
+
+    def test_l10n_th(self):
+        self.assertLocalizedHolidays(
+            "th",
+            ("2022-01-01", "วันขึ้นปีใหม่"),
+            ("2022-02-01", "วันตรุษจีน"),
+            ("2022-02-28", "วันเมี๊ยะราจ"),
+            ("2022-03-03", "วันแห่งความเงียบ"),
+            ("2022-04-15", "วันศุกร์ประเสริฐ"),
+            ("2022-04-29", "หยุดร่วมพิเศษวันอีฎิ้ลฟิตริ"),
+            ("2022-05-01", "วันแรงงานสากล"),
+            ("2022-05-02", "วันอีฎิ้ลฟิตริ"),
+            ("2022-05-03", "วันอีฎิ้ลฟิตริวันที่สอง"),
+            ("2022-05-04", "หยุดร่วมพิเศษวันอีฎิ้ลฟิตริ"),
+            ("2022-05-05", "หยุดร่วมพิเศษวันอีฎิ้ลฟิตริ"),
+            ("2022-05-06", "หยุดร่วมพิเศษวันอีฎิ้ลฟิตริ"),
+            ("2022-05-16", "วันวิสาขบูชา"),
+            ("2022-05-26", "วันสมโภชพระเยซูเจ้าเสด็จขึ้นสวรรค์"),
+            ("2022-06-01", "วันปัญจศีล"),
+            ("2022-07-10", "วันอีดิ้ลอัฎฮา"),
+            ("2022-07-30", "วันขึ้นปีใหม่อิสลาม"),
+            ("2022-08-17", "วันประกาศอิสรภาพสาธารณรัฐอินโดนีเซีย"),
+            ("2022-10-08", "วันเมาลิดนบี"),
+            ("2022-12-25", "วันคริสต์มาส"),
         )
 
     def test_l10n_uk(self):
@@ -462,5 +639,4 @@ class TestIndonesia(CommonCountryTests, TestCase):
             ("2022-08-17", "День незалежності Республіки Індонезія"),
             ("2022-10-08", "День народження пророка Мухаммада"),
             ("2022-12-25", "Різдво Христове"),
-            ("2022-12-26", "Додатковий вихідний на Різдво Христове"),
         )