Repository: vacanza/holidays
Pull request #2123 (2024-11-12 12:33:23)

Update Thailand holidays: 2025-2026 Bridge Public Holidays
<!--
  Thanks for contributing to holidays!
-->

## Proposed change

<!--
  Describe the big picture of your changes.
  Don't forget to link your PR to an existing issue if any.
-->

Adds 3 Bridge Public Holidays for Thailand in 2025-2026 as per the [Nov 12, 2024 Special Decree](https://www.thaipbs.or.th/news/content/346216), which are:
- June 2nd, 2025: HM Queen Suthida's Birthday Long Holidays (resulting in a 4-day period)
- August 11th, 2025: Mother's Day Long Holidays (resulting in a 4-day period)
- January 2nd, 2026: New Year's Long Holidays (resulting in a 5-day period)

## Type of change

<!--
  Type of change you want to introduce. Please, check one (1) box only!
  If your PR requires multiple boxes to be checked, most likely it needs to
  be split into multiple PRs.
-->

- [ ] New country/market holidays support (thank you!)
- [x] Supported country/market holidays update (calendar discrepancy fix, localization)
- [ ] Existing code/documentation/test/process quality improvement (best practice, cleanup, refactoring, optimization)
- [ ] Dependency update (version deprecation/pin/upgrade)
- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] Breaking change (a code change causing existing functionality to break)
- [ ] New feature (new `holidays` functionality in general)

## Checklist

<!--
  Put an `x` in the boxes that apply. You can change them after PR is created.
-->

- [x] I've followed the [contributing guidelines][contributing-guidelines]
- [x] I've successfully run `make check`, all checks and tests are green

<!--
  Thanks again for your contribution!
-->

[contributing-guidelines]: https://github.com/vacanza/holidays/blob/dev/CONTRIBUTING.rst
[docs]: https://github.com/vacanza/holidays/tree/dev/docs/source


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

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


codecov[bot]: ## [Codecov](https://app.codecov.io/gh/vacanza/holidays/pull/2123?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 [(`2482d99`)](https://app.codecov.io/gh/vacanza/holidays/commit/2482d99a1c4c99bb7f67aa78c7f904a7e2951bd2?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza) to head [(`4f7e94d`)](https://app.codecov.io/gh/vacanza/holidays/commit/4f7e94dfb6860cb21e557d22c20b0d4cf43a8514?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     #2123   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          193       193           
  Lines        11639     11639           
  Branches      1756      1756           
=========================================
  Hits         11639     11639           
```

</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/vacanza/holidays/pull/2123?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/holidays/countries/thailand.py b/holidays/countries/thailand.py
index 32f773ff..e3f58f5b 100644
--- a/holidays/countries/thailand.py
+++ b/holidays/countries/thailand.py
@@ -40,6 +40,7 @@ class Thailand(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiC
             - https://resolution.soc.go.th/?prep_id=196007
             - https://github.com/vacanza/holidays/pull/929
             - https://www.thairath.co.th/lifestyle/life/2812118
+            - https://www.thaipbs.or.th/news/content/346216
         - [New Year's Day]
             `wikisource.org <http://tiny.cc/wa_wiki_thai_newyear_2483>`_
         - [National Children's Day]
@@ -832,6 +833,11 @@ class ThailandStaticHolidays:
             (APR, 12, thai_bridge_public_holiday),
             (DEC, 30, thai_bridge_public_holiday),
         ),
+        2025: (
+            (JUN, 2, thai_bridge_public_holiday),
+            (AUG, 11, thai_bridge_public_holiday),
+        ),
+        2026: (JAN, 2, thai_bridge_public_holiday),
     }
     special_workday_holidays = {1999: (MAY, 14, tr("วันพืชมงคล"))}
 
diff --git a/snapshots/countries/TH_COMMON.json b/snapshots/countries/TH_COMMON.json
index debc0c28..565f2aff 100644
--- a/snapshots/countries/TH_COMMON.json
+++ b/snapshots/countries/TH_COMMON.json
@@ -2097,10 +2097,12 @@
     "2025-05-09": "Royal Ploughing Ceremony",
     "2025-05-11": "Visakha Bucha",
     "2025-05-12": "Visakha Bucha (in lieu)",
+    "2025-06-02": "Bridge Public Holiday",
     "2025-06-03": "HM Queen Suthida's Birthday",
     "2025-07-10": "Asarnha Bucha",
     "2025-07-11": "Buddhist Lent Day",
     "2025-07-28": "HM King Maha Vajiralongkorn's Birthday",
+    "2025-08-11": "Bridge Public Holiday",
     "2025-08-12": "HM Queen Sirikit The Queen Mother's Birthday; National Mother's Day",
     "2025-08-18": "National Science Day",
     "2025-09-28": "Thai National Flag Day",
@@ -2111,6 +2113,7 @@
     "2025-12-10": "Constitution Day",
     "2025-12-31": "New Year's Eve",
     "2026-01-01": "New Year's Day",
+    "2026-01-02": "Bridge Public Holiday",
     "2026-01-10": "National Children's Day",
     "2026-01-13": "National Aviation Day",
     "2026-01-14": "National Forest Conservation Day",


Test patch:
diff --git a/tests/countries/test_thailand.py b/tests/countries/test_thailand.py
index 6a4ab287..d8f0121d 100644
--- a/tests/countries/test_thailand.py
+++ b/tests/countries/test_thailand.py
@@ -105,6 +105,9 @@ class TestThailand(CommonCountryTests, TestCase):
             "2023-12-29",
             "2024-04-12",
             "2024-12-30",
+            "2025-06-02",
+            "2025-08-11",
+            "2026-01-02",
         )
         dt_observed = (
             "2007-12-24",