Repository: vacanza/holidays
Pull request #2571 (2025-05-27 17:26:39)

Add Bermuda holidays
Resolves #2412.

<!--
  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.
-->

Add Bermuda holidays

## Type of change

<!--
  Type of change you want to introduce. Please, check one (1) box only!
  If your PR requires multiple boxes to be checked, most likely it needs to
  be split into multiple PRs.
-->

- [X] New country/market holidays support (thank you!)
- [ ] Supported country/market holidays update (calendar discrepancy fix, localization)
- [ ] Existing code/documentation/test/process quality improvement (best practice, cleanup, refactoring, optimization)
- [ ] Dependency update (version deprecation/pin/upgrade)
- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] Breaking change (a code change causing existing functionality to break)
- [ ] New feature (new `holidays` functionality in general)

## Checklist

<!--
  Put an `x` in the boxes that apply. You can change them after PR is created.
-->

- [X] I've followed the [contributing guidelines][contributing-guidelines]
- [X] I've successfully run `make check`, all checks and tests are green

<!--
  Thanks again for your contribution!
-->

[contributing-guidelines]: https://github.com/vacanza/holidays/blob/dev/CONTRIBUTING.md
[docs]: https://github.com/vacanza/holidays/tree/dev/docs/source


coderabbitai[bot]: <!-- This is an auto-generated comment: summarize by coderabbit.ai -->
<!-- This is an auto-generated comment: review in progress by coderabbit.ai -->

> [!NOTE]
> Currently processing new changes in this PR. This may take a few minutes, please wait...
> 
> <details>
> <summary>📥 Commits</summary>
> 
> Reviewing files that changed from the base of the PR and between 8108d6048b4bb54b74d617bc102d1dca92800f37 and e9a130e8a8cc51972f5677fff4529aa013a18174.
> 
> </details>
> 
> <details>
> <summary>📒 Files selected for processing (5)</summary>
> 
> * `README.md` (2 hunks)
> * `holidays/countries/__init__.py` (1 hunks)
> * `holidays/countries/bermuda.py` (1 hunks)
> * `holidays/registry.py` (1 hunks)
> * `tests/countries/test_bermuda.py` (1 hunks)
> 
> </details>
> 
> ```ascii
>  _____________________________________________________
> < The fifth dentist recommends we all floss our code. >
>  -----------------------------------------------------
>   \
>    \   \
>         \ /\
>         ( )
>       .( o ).
> ```

<!-- end of auto-generated comment: review in progress by coderabbit.ai -->
<!-- usage_tips_start -->

> [!TIP]
> <details>
> <summary>CodeRabbit can approve the review once all CodeRabbit's comments are resolved.</summary>
> 
> Enable the `reviews.request_changes_workflow` setting in your project's settings in CodeRabbit to automatically approve the review once all CodeRabbit's comments are resolved.
> 
> </details>

<!-- usage_tips_end -->
<!-- finishing_touch_checkbox_start -->

<details open="true">
<summary>✨ Finishing Touches</summary>

- [ ] <!-- {"checkboxId": "7962f53c-55bc-4827-bfbf-6a18da830691"} --> 📝 Generate Docstrings

</details>

<!-- finishing_touch_checkbox_end -->
<!-- tips_start -->

---

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=vacanza/holidays&utm_content=2571):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Explain this complex logic.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai explain this code block.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and explain its main purpose.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

### Support

Need help? Create a ticket on our [support page](https://www.coderabbit.ai/contact-us/support) for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->
kritibirda26: I could not find the original text of the Public Holidays Amendment Act 1947, only the consolidated version containing all the amendments. But I have implemented the holidays by trying to reconstruct it from the amendments and old captures from Internet Archive.
codecov[bot]: ## [Codecov](https://app.codecov.io/gh/vacanza/holidays/pull/2571?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 [(`5679ece`)](https://app.codecov.io/gh/vacanza/holidays/commit/5679eceaa9a84ca68ff88d973b2f5f36779eeef5?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza) to head [(`e9a130e`)](https://app.codecov.io/gh/vacanza/holidays/commit/e9a130e8a8cc51972f5677fff4529aa013a18174?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).
> Report is 4 commits behind head on dev.

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


```diff
@@            Coverage Diff            @@
##               dev     #2571   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          221       222    +1     
  Lines        14134     14189   +55     
  Branches      1983      1992    +9     
=========================================
+ Hits         14134     14189   +55     
```

</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/vacanza/holidays/pull/2571?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).

<details><summary> :rocket: New features to boost your workflow: </summary>

- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
</details>
sonarqubecloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2571) **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=2571&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=2571&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=2571&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=2571&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=2571&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2571)


sonarqubecloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2571) **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=2571&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=2571&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=2571&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=2571&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=2571&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2571)


KJhellico: Already LGTM, but maybe it's worth adding l10n (en_BM, en_US), since Labour Day holiday is present?

Patch:
diff --git a/README.md b/README.md
index 028d2801..37fd984c 100644
--- a/README.md
+++ b/README.md
@@ -105,7 +105,7 @@ and detailed information.
 
 ## Available Countries
 
-We currently support 180 country codes. The standard way to refer to a country is by using its [ISO
+We currently support 181 country codes. The standard way to refer to a country is by using its [ISO
 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes), the same used
 for domain names, and for a subdivision its [ISO 3166-2
 code](https://en.wikipedia.org/wiki/ISO_3166-2). Some countries have common or foreign names or
@@ -301,6 +301,13 @@ any) in brackets, available languages and additional holiday categories. All cou
 <td>WORKDAY</td>
 </tr>
 <tr>
+<td>Bermuda</td>
+<td>BM</td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr>
 <td>Bolivia</td>
 <td>BO</td>
 <td>Departments: B (El Beni), C (Cochabamba), H (Chuquisaca), L (La Paz), N (Pando), O (Oruro), P (Potosí), S (Santa Cruz), T (Tarija)</td>
diff --git a/SPONSORSHIP.md b/SPONSORSHIP.md
index 8d1b14ae..787468ad 100644
--- a/SPONSORSHIP.md
+++ b/SPONSORSHIP.md
@@ -55,7 +55,7 @@ To participate in the sponsorship program, contributors must:
 
 ## Application and Selection Process
 
-To apply for a sponsored issue, simply comment on the issue expressing your interest in working on it. Please make sure the issue is labeled as eligible for the program (e.g. [sponsorship](https://github.com/vacanza/holidays/issues?q=state%3Aopen%20label%3A%22sponsorship%22), [sponsorship-medium](https://github.com/vacanza/holidays/issues?q=state%3Aopen%20label%3Asponsorship%3Amedium), [sponsorship-hard](https://github.com/vacanza/holidays/issues?q=state%3Aopen%20label%3Asponsorship%3Ahard)). Each sponsored issue will remain open for applications for at least **7 days** to give all eligible contributors a fair opportunity to participate.
+To apply for a sponsored issue, simply comment on the issue expressing your interest in working on it. Please make sure the issue is labeled as eligible for the program (e.g. [sponsorship](https://github.com/vacanza/holidays/issues?q=state:open%20label:sponsorship), [sponsorship-medium](https://github.com/vacanza/holidays/issues?q=state:open%20label:sponsorship:medium), [sponsorship-hard](https://github.com/vacanza/holidays/issues?q=state:open%20label:sponsorship:hard). Each sponsored issue will remain open for applications for at least **7 days** to give all eligible contributors a fair opportunity to participate.
 
 Before applying, please ensure that you meet the eligibility requirements:
 
diff --git a/holidays/countries/__init__.py b/holidays/countries/__init__.py
index a513780f..caee52b0 100644
--- a/holidays/countries/__init__.py
+++ b/holidays/countries/__init__.py
@@ -34,6 +34,7 @@ from .belarus import Belarus, BY, BLR
 from .belgium import Belgium, BE, BEL
 from .belize import Belize, BZ, BLZ
 from .benin import Benin, BJ, BEN
+from .bermuda import Bermuda, BM, BMU
 from .bolivia import Bolivia, BO, BOL
 from .bosnia_and_herzegovina import BosniaAndHerzegovina, BA, BIH
 from .botswana import Botswana, BW, BWA
diff --git a/holidays/countries/aland_islands.py b/holidays/countries/aland_islands.py
index efd754da..dc797930 100644
--- a/holidays/countries/aland_islands.py
+++ b/holidays/countries/aland_islands.py
@@ -25,7 +25,7 @@ class HolidaysAX(Finland):
 
     References:
         * <https://en.wikipedia.org/wiki/Public_holidays_in_Åland>
-        * <https://en.wikipedia.org/wiki/Åland%27s_Autonomy_Day>
+        * <https://en.wikipedia.org/wiki/Åland's_Autonomy_Day>
     """
 
     country = "AX"
diff --git a/holidays/countries/angola.py b/holidays/countries/angola.py
index a8fa3949..51549ada 100644
--- a/holidays/countries/angola.py
+++ b/holidays/countries/angola.py
@@ -36,8 +36,8 @@ class Angola(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
         * [Law #16/96](https://www.lexlink.eu/FileGet.aspx?FileId=3037036)
         * [Law #1/01](https://www.lexlink.eu/FileGet.aspx?FileId=3029035)
         * [Law #7/03](https://www.lexlink.eu/FileGet.aspx?FileId=3002131)
-        * [Law #10/11](https://equadros.gov.ao/documents/40468/0/lei_10_11-1+%281%29.pdf)
-        * [Law #11/18](https://equadros.gov.ao/documents/40468/0/Lei_no_11-18+%281%29.pdf)
+        * [Law #10/11](https://equadros.gov.ao/documents/40468/0/lei_10_11-1+(1).pdf)
+        * [Law #11/18](https://equadros.gov.ao/documents/40468/0/Lei_no_11-18+(1).pdf)
         * <https://www.officeholidays.com/countries/angola/>
         * <https://www.timeanddate.com/holidays/angola/>
     """
diff --git a/holidays/countries/argentina.py b/holidays/countries/argentina.py
index bdda17ab..62260069 100644
--- a/holidays/countries/argentina.py
+++ b/holidays/countries/argentina.py
@@ -41,7 +41,7 @@ class Argentina(
     """Argentina holidays.
 
     References:
-        * [Spanish Wikipedia](https://es.wikipedia.org/wiki/Anexo:D%C3%ADas_feriados_en_Argentina)
+        * [Spanish Wikipedia](https://es.wikipedia.org/wiki/Anexo:Días_festivos_en_Argentina)
         * [Decree-Law 2446](https://www.argentina.gob.ar/normativa/nacional/decreto_ley-2446-1956-161122/texto)
         * [Law 21329](https://www.argentina.gob.ar/normativa/nacional/ley-21329-65453/texto)
         * [Law 22655](https://www.argentina.gob.ar/normativa/nacional/ley-22655-140416/texto)
@@ -814,7 +814,7 @@ class ArgentinaStaticHolidays:
 
     Special Holidays References:
         * [Decree 615/2010](https://www.argentina.gob.ar/normativa/nacional/decreto-615-2010-166825/texto)
-        * [Joint Resolution 1159/2010](https://www.argentina.gob.ar/normativa/nacional/resoluci%C3%B3n-1159-2010-173748/texto)
+        * [Joint Resolution 1159/2010](https://www.argentina.gob.ar/normativa/nacional/resolución-1159-2010-173748/texto)
         * [Law 26721](https://www.argentina.gob.ar/normativa/nacional/ley-26721-191835/texto)
         * [Law 26763](https://www.argentina.gob.ar/normativa/nacional/ley-26763-201915/texto)
         * [Law 26837](https://www.argentina.gob.ar/normativa/nacional/ley-26837-207405/texto)
diff --git a/holidays/countries/azerbaijan.py b/holidays/countries/azerbaijan.py
index 9bf262f8..dfcf659b 100644
--- a/holidays/countries/azerbaijan.py
+++ b/holidays/countries/azerbaijan.py
@@ -29,7 +29,7 @@ class Azerbaijan(ObservedHolidayBase, InternationalHolidays, IslamicHolidays, St
 
     References:
         * <https://en.wikipedia.org/wiki/Public_holidays_in_Azerbaijan>
-        * <https://az.wikipedia.org/wiki/Az%C9%99rbaycan%C4%B1n_d%C3%B6vl%C9%99t_bayramlar%C4%B1_v%C9%99_x%C3%BCsusi_g%C3%BCnl%C9%99ri>
+        * <https://az.wikipedia.org/wiki/Azərbaycanın_dövlət_bayramları_və_xüsusi_günləri>
         * <https://www.sosial.gov.az/en/prod-calendar>
     """
 
diff --git a/holidays/countries/belgium.py b/holidays/countries/belgium.py
index bf5bbc8c..19d24f04 100644
--- a/holidays/countries/belgium.py
+++ b/holidays/countries/belgium.py
@@ -23,7 +23,7 @@ class Belgium(HolidayBase, ChristianHolidays, InternationalHolidays):
     References:
         * <https://en.wikipedia.org/wiki/Public_holidays_in_Belgium>
         * <https://www.belgium.be/nl/over_belgie/land/belgie_in_een_notendop/feestdagen>
-        * <https://nl.wikipedia.org/wiki/Feestdagen_in_Belgi%C3%AB>
+        * <https://nl.wikipedia.org/wiki/Feestdagen_in_België>
         * <https://www.nbb.be/en/about-national-bank/national-bank-belgium/public-holidays>
     """
 
diff --git a/holidays/countries/bermuda.py b/holidays/countries/bermuda.py
new file mode 100644
index 00000000..138a3bec
--- /dev/null
+++ b/holidays/countries/bermuda.py
@@ -0,0 +1,141 @@
+#  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 CONTRIBUTORS file)
+#           dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
+#           ryanss <ryanssdev@icloud.com> (c) 2014-2017
+#  Website: https://github.com/vacanza/holidays
+#  License: MIT (see LICENSE file)
+
+from holidays.calendars.gregorian import MAY, JUN, OCT, NOV
+from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
+from holidays.observed_holiday_base import (
+    ObservedHolidayBase,
+    SAT_SUN_TO_NEXT_MON,
+    SAT_SUN_TO_NEXT_MON_TUE,
+)
+
+
+class Bermuda(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
+    """Bermuda holidays.
+
+    References:
+        * [Public Holidays Act 1947](https://web.archive.org/web/20250527163956/https://www.bermudalaws.bm/Laws/Consolidated%20Law/1947/Public%20Holidays%20Act%201947)
+        * [Public Holidays Amendment Act 1999](https://web.archive.org/web/20250527163749/https://www.bermudalaws.bm/Laws/Annual%20Law/Acts/1999/Public%20Holidays%20Amendment%20Act%201999)
+        * [Public Holidays Amendment Act 2008](https://web.archive.org/web/20250527163810/https://www.bermudalaws.bm/Laws/Annual%20Law/Acts/2008/Public%20Holidays%20Amendment%20Act%202008)
+        * [Public Holidays Amendment (No. 2) Act 2009](https://web.archive.org/web/20250527163816/https://www.bermudalaws.bm/Laws/Annual%20Law/Acts/2009/Public%20Holidays%20Amendment%20%28No.%202%29%20Act%202009)
+        * [Public Holidays Amendment Act 2017](https://web.archive.org/web/20250527163819/https://www.bermudalaws.bm/Laws/Annual%20Law/Acts/2017/Public%20Holidays%20Amendment%20Act%202017)
+        * [Public Holidays Amendment Act 2020](https://web.archive.org/web/20250527163836/https://www.bermudalaws.bm/Laws/Annual%20Law/Acts/2020/Public%20Holidays%20Amendment%20Act%202020)
+        * [Government of Bermuda](https://web.archive.org/web/20250530055854/https://www.gov.bm/public-holidays)
+        * [Proclamation BR 149 / 2018](https://web.archive.org/web/20250530114331/https://www.bermudalaws.bm/Laws/Annual%20Law/Statutory%20Instruments/2018/Proclamation%20-%20Bermuda%20Day%20Public%20Holiday)
+    """
+
+    country = "BM"
+    observed_label = "%s (observed)"
+    start_year = 1948
+
+    def __init__(self, *args, **kwargs):
+        ChristianHolidays.__init__(self)
+        InternationalHolidays.__init__(self)
+        StaticHolidays.__init__(self, BermudaStaticHolidays)
+        kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON)
+        super().__init__(*args, **kwargs)
+
+    def _populate_public_holidays(self):
+        # New Year's Day.
+        self._add_observed(self._add_new_years_day("New Year's Day"))
+
+        # Good Friday.
+        self._add_good_friday("Good Friday")
+
+        # Bermuda Day.
+        name = "Bermuda Day"
+        if self._year <= 2017:
+            self._add_observed(self._add_holiday_may_24(name))
+        elif self._year == 2019:
+            self._add_holiday_may_24(name)
+        elif self._year <= 2020:
+            self._add_holiday_last_fri_of_may(name)
+        else:
+            self._add_holiday_3_days_prior_last_mon_of_may(name)
+
+        # Queen's Birthday.
+        name = "Queen's Birthday"
+        if self._year <= 1999:
+            self._add_holiday_3rd_mon_of_jun(name)
+        elif self._year <= 2008:
+            self._add_holiday_2_days_past_2nd_sat_of_jun(name)
+
+        # National Heroes Day.
+        name = "National Heroes Day"
+        if self._year == 2008:
+            self._add_holiday_2nd_mon_of_oct(name)
+        elif self._year >= 2009:
+            self._add_holiday_3rd_mon_of_jun(name)
+
+        self._add_holiday_4_days_prior_1st_mon_of_aug(
+            # Cup Match Day.
+            "Cup Match Day"
+            if self._year <= 1999
+            # Emancipation Day.
+            else "Emancipation Day"
+        )
+
+        self._add_holiday_3_days_prior_1st_mon_of_aug(
+            # Somers Day.
+            "Somers Day"
+            if self._year <= 2019
+            # Mary Prince Day.
+            else "Mary Prince Day"
+        )
+
+        # Labor Day.
+        self._add_holiday_1st_mon_of_sep("Labour Day")
+
+        # Remembrance Day.
+        self._add_observed(self._add_remembrance_day("Remembrance Day"))
+
+        # Christmas Day.
+        self._add_observed(self._add_christmas_day("Christmas Day"), rule=SAT_SUN_TO_NEXT_MON_TUE)
+
+        # Boxing Day.
+        self._add_observed(self._add_christmas_day_two("Boxing Day"), rule=SAT_SUN_TO_NEXT_MON_TUE)
+
+
+class BM(Bermuda):
+    pass
+
+
+class BMU(Bermuda):
+    pass
+
+
+class BermudaStaticHolidays:
+    """Bermuda special holidays.
+
+    References:
+        * [June 5, 2007 Holiday](https://web.archive.org/web/20250530122818/https://www.bermudalaws.bm/Laws/Annual%20Law/Statutory%20Instruments/2007/Proclamation)
+        * Portuguese Welcome 170th Anniversary
+            * <https://web.archive.org/web/20241210201648/https://www.royalgazette.com/other/news/article/20191025/portuguese-welcome-170th-anniversary-holiday/>
+            * <https://web.archive.org/web/20250530122008/https://www.bermudalaws.bm/Laws/Annual%20Law/Statutory%20Instruments/2018/Proclamation%20-%20Portguese%20Public%20Holiday>
+        * Flora Duffy Day
+            * <https://web.archive.org/web/20240613083451/https://bernews.com/2021/10/governor-signs-flora-duffy-day-proclamation/>
+            * <https://web.archive.org/web/20250530113359/https://www.bermudalaws.bm/Laws/Annual%20Law/Statutory%20Instruments/2021/Proclamation%20for%2018%20October%202021%20Holiday>
+        * The Coronation of His Majesty King Charles III Holiday
+            * <https://web.archive.org/web/20250222035055/https://gov.bm/articles/coronation-his-majesty-king-charles-iii-her-majesty-queen-consort>
+            * <https://web.archive.org/web/20250530112129/https://www.bermudalaws.bm/Laws/Annual%20Law/Statutory%20Instruments/2023/Proclamation%20for%208%20May%202023%20Holiday>
+    """
+
+    special_public_holidays = {
+        # Public Holiday.
+        2007: (JUN, 5, "Public Holiday"),
+        # Portuguese Welcome 170th Anniversary.
+        2019: (NOV, 4, "Portuguese Welcome 170th Anniversary"),
+        # Flora Duffy Day.
+        2021: (OCT, 18, "Flora Duffy Day"),
+        # The Coronation of His Majesty King Charles III.
+        2023: (MAY, 8, "The Coronation of His Majesty King Charles III"),
+    }
diff --git a/holidays/countries/chile.py b/holidays/countries/chile.py
index 9773986c..83eaee9c 100644
--- a/holidays/countries/chile.py
+++ b/holidays/countries/chile.py
@@ -32,7 +32,7 @@ class Chile(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stati
     References:
         * <https://www.feriados.cl>
         * [Excellent history of Chile holidays](http://www.feriadoschilenos.cl)
-        * <https://es.wikipedia.org/wiki/Anexo:D%C3%ADas_feriados_en_Chile>
+        * <https://es.wikipedia.org/wiki/Anexo:Días_feriados_en_Chile>
         * Law 2.977 (established official Chile holidays in its current form)
         * Law 20.983 (Day after New Year's Day, if it's a Sunday)
         * Law 19.668 (floating Monday holiday)
diff --git a/holidays/countries/curacao.py b/holidays/countries/curacao.py
index 506dbfea..92a1ad42 100644
--- a/holidays/countries/curacao.py
+++ b/holidays/countries/curacao.py
@@ -24,7 +24,7 @@ class Curacao(HolidayBase, ChristianHolidays, InternationalHolidays):
 
     References:
         * <https://loketdigital.gobiernu.cw/Loket/product/571960bbe1e5fe8712b10a1323630e70>
-        * <https://en.wikipedia.org/wiki/Public_holidays_in_Cura%C3%A7ao>
+        * <https://en.wikipedia.org/wiki/Public_holidays_in_Curaçao>
     """
 
     country = "CW"
diff --git a/holidays/countries/dominican_republic.py b/holidays/countries/dominican_republic.py
index e4ac70f6..51a0599a 100644
--- a/holidays/countries/dominican_republic.py
+++ b/holidays/countries/dominican_republic.py
@@ -26,7 +26,7 @@ class DominicanRepublic(ObservedHolidayBase, ChristianHolidays, InternationalHol
 
     References:
         * <http://ojd.org.do/Normativas/LABORAL/Leyes/Ley%20No.%20%20139-97.pdf>
-        * <https://es.wikipedia.org/wiki/Rep%C3%BAblica_Dominicana#D%C3%ADas_festivos_nacionales>
+        * <https://es.wikipedia.org/wiki/República_Dominicana#Días_festivos_nacionales>
     """
 
     country = "DO"
diff --git a/holidays/countries/ecuador.py b/holidays/countries/ecuador.py
index 53563a82..53068738 100644
--- a/holidays/countries/ecuador.py
+++ b/holidays/countries/ecuador.py
@@ -28,7 +28,7 @@ class Ecuador(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
 
     References:
         * <https://en.wikipedia.org/wiki/Public_holidays_in_Ecuador>
-        * [Código del Trabajo](https://biblioteca.defensoria.gob.ec/bitstream/37000/3364/1/C%C3%B3digo%20de%20Trabajo%20%2804-11-2021%29.pdf)
+        * [Código del Trabajo](https://biblioteca.defensoria.gob.ec/bitstream/37000/3364/1/Código%20de%20Trabajo%20(04-11-2021).pdf)
     """
 
     country = "EC"
diff --git a/holidays/countries/equatorial_guinea.py b/holidays/countries/equatorial_guinea.py
index 1fc2c7ac..4ac19c2d 100644
--- a/holidays/countries/equatorial_guinea.py
+++ b/holidays/countries/equatorial_guinea.py
@@ -23,7 +23,7 @@ class EquatorialGuinea(
     """Equatorial Guinea holidays.
 
     References:
-        * [Decree 9/2007](https://web.archive.org/web/20250518185011/https://boe.gob.gq/files/Decreto%20de%20Fijaci%C3%B3n%20de%20los%20D%C3%ADas%20Feriados%20en%20Guinea%20Ecuatorial.pdf)
+        * [Decree 9/2007](https://web.archive.org/web/20250518185011/https://boe.gob.gq/files/Decreto%20de%20Fijación%20de%20los%20Días%20Feriados%20en%20Guinea%20Ecuatorial.pdf)
         * <https://en.wikipedia.org/wiki/Public_holidays_in_Equatorial_Guinea>
         * <https://web.archive.org/web/20250503042253/https://www.timeanddate.com/holidays/guineaecuatorial/>
         * <https://web.archive.org/web/20250503042610/https://gq.usembassy.gov/holiday-calendar/>
diff --git a/holidays/countries/ethiopia.py b/holidays/countries/ethiopia.py
index 13a23ea3..0c077bad 100644
--- a/holidays/countries/ethiopia.py
+++ b/holidays/countries/ethiopia.py
@@ -29,7 +29,7 @@ class Ethiopia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHol
         * [Proclamation No. 1334/2024](https://lawethiopiacomment.wordpress.com/wp-content/uploads/2024/08/public-holiday-stamped.pdf)
         * <https://www.edarabia.com/ethiopia/public-holidays/>
         * <https://en.wikipedia.org/wiki/Public_holidays_in_Ethiopia>
-        * <https://en.wikipedia.org/wiki/Nations,_Nationalities_and_Peoples%27_Day>
+        * <https://en.wikipedia.org/wiki/Nations,_Nationalities_and_Peoples'_Day>
         * <https://www.timeanddate.com/holidays/ethiopia/>
     """
 
diff --git a/holidays/countries/finland.py b/holidays/countries/finland.py
index 1557b062..ad98660f 100644
--- a/holidays/countries/finland.py
+++ b/holidays/countries/finland.py
@@ -37,7 +37,7 @@ class Finland(HolidayBase, ChristianHolidays, InternationalHolidays):
         * <https://web.archive.org/web/20250515064749/https://itsenäisyys.fi/itsenaisyyspaivan-perinteet-vakiintuivat-jo-itsenaisyyden-alkuvuosina/>
         * <https://web.archive.org/web/20250515072453/https://yle.fi/a/20-152398>
         * <https://en.wikipedia.org/wiki/Independence_Day_(Finland)>
-        * <https://en.wikipedia.org/wiki/Åland%27s_Autonomy_Day>
+        * <https://en.wikipedia.org/wiki/Åland's_Autonomy_Day>
         * <https://web.archive.org/web/20250509184304/https://wiki.aineetonkulttuuriperinto.fi/wiki/Workers’_Labour_Day_on_May_1>
     """
 
diff --git a/holidays/countries/italy.py b/holidays/countries/italy.py
index b362cceb..8a134985 100644
--- a/holidays/countries/italy.py
+++ b/holidays/countries/italy.py
@@ -20,7 +20,7 @@ class Italy(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoliday
 
     References:
         * <https://en.wikipedia.org/wiki/Public_holidays_in_Italy>
-        * [Provinces holidays](https://it.wikipedia.org/wiki/Santi_patroni_cattolici_delle_citt%C3%A0_capoluogo_di_provincia_italiane)
+        * [Provinces holidays](https://it.wikipedia.org/wiki/Santi_patroni_cattolici_delle_città_capoluogo_di_provincia_italiane)
     """
 
     country = "IT"
diff --git a/holidays/countries/ivory_coast.py b/holidays/countries/ivory_coast.py
index b28e474e..3dde31bf 100644
--- a/holidays/countries/ivory_coast.py
+++ b/holidays/countries/ivory_coast.py
@@ -32,7 +32,7 @@ class IvoryCoast(
         * Decree No. 2011-371:
             * [page 1](https://web.archive.org/web/20180617165811/http://www.cgeci.org/cgeci/docs/documents/Doc-ferie-1.pdf)
             * [page 2](https://web.archive.org/web/20180826205106/http://www.cgeci.org/cgeci/docs/documents/Doc-ferie-2.pdf)
-        * <https://fr.wikipedia.org/wiki/Fêtes_et_jours_fériés_en_Côte_d%27Ivoire>
+        * <https://fr.wikipedia.org/wiki/Fêtes_et_jours_fériés_en_Côte_d'Ivoire>
         * <https://en.wikipedia.org/wiki/Public_holidays_in_Ivory_Coast>
         * <https://www.timeanddate.com/holidays/ivory-coast/>
         * [National Peace Day](https://en.wikipedia.org/wiki/Ivory_Coast#Independence)
diff --git a/holidays/countries/kazakhstan.py b/holidays/countries/kazakhstan.py
index 3a490a47..e886b148 100644
--- a/holidays/countries/kazakhstan.py
+++ b/holidays/countries/kazakhstan.py
@@ -32,8 +32,8 @@ class Kazakhstan(
     References:
         * <https://en.wikipedia.org/wiki/Public_holidays_in_Kazakhstan>
         * <https://egov.kz/cms/en/articles/holidays-calend>
-        * <https://adilet.zan.kz/kaz/docs/Z010000267%5F/history>
-        * <https://adilet.zan.kz/kaz/docs/Z990000493%5F#z63>
+        * <https://adilet.zan.kz/kaz/docs/Z010000267_/history>
+        * <https://adilet.zan.kz/kaz/docs/Z990000493_#z63>
 
     Islamic holidays:
         * [2025](https://en.inform.kz/news/first-day-of-ramadan-to-fall-on-march-1-2025-ca393f/)
@@ -174,33 +174,33 @@ class KazakhstanStaticHolidays:
     """Kazakhstan special holidays.
 
     References:
-        * [2000](https://adilet.zan.kz/kaz/docs/P000000642%5F)
+        * [2000](https://adilet.zan.kz/kaz/docs/P000000642_)
         * 2001:
-            * <https://adilet.zan.kz/kaz/docs/P010000282%5F>
-            * <https://adilet.zan.kz/kaz/docs/P010000515%5F>
-            * <https://adilet.zan.kz/kaz/docs/P010001604%5F>
-        * [2002](https://adilet.zan.kz/kaz/docs/P020000466%5F)
+            * <https://adilet.zan.kz/kaz/docs/P010000282_>
+            * <https://adilet.zan.kz/kaz/docs/P010000515_>
+            * <https://adilet.zan.kz/kaz/docs/P010001604_>
+        * [2002](https://adilet.zan.kz/kaz/docs/P020000466_)
         * 2003:
-            * <https://adilet.zan.kz/kaz/docs/P030000338%5F>
-            * <https://adilet.zan.kz/kaz/docs/P030001166%5F>
+            * <https://adilet.zan.kz/kaz/docs/P030000338_>
+            * <https://adilet.zan.kz/kaz/docs/P030001166_>
         * 2005:
-            * <https://adilet.zan.kz/kaz/docs/P050000142%5F>
-            * <https://adilet.zan.kz/kaz/docs/P050000751%5F>
-            * <https://adilet.zan.kz/kaz/docs/P050000949%5F>
+            * <https://adilet.zan.kz/kaz/docs/P050000142_>
+            * <https://adilet.zan.kz/kaz/docs/P050000751_>
+            * <https://adilet.zan.kz/kaz/docs/P050000949_>
         * 2006:
-            * <https://adilet.zan.kz/kaz/docs/P050001309%5F>
-            * <https://adilet.zan.kz/kaz/docs/P060000277%5F>
+            * <https://adilet.zan.kz/kaz/docs/P050001309_>
+            * <https://adilet.zan.kz/kaz/docs/P060000277_>
         * 2007:
-            * <https://adilet.zan.kz/kaz/docs/P070000148%5F>
-            * <https://adilet.zan.kz/kaz/docs/P070000165%5F>
-            * <https://adilet.zan.kz/kaz/docs/P070000713%5F>
-            * <https://adilet.zan.kz/kaz/docs/P070000925%5F>
-            * <https://adilet.zan.kz/kaz/docs/P070001113%5F>
-        * [2008](https://adilet.zan.kz/kaz/docs/P080000364%5F)
-        * [2009](https://adilet.zan.kz/kaz/docs/P090001936%5F)
+            * <https://adilet.zan.kz/kaz/docs/P070000148_>
+            * <https://adilet.zan.kz/kaz/docs/P070000165_>
+            * <https://adilet.zan.kz/kaz/docs/P070000713_>
+            * <https://adilet.zan.kz/kaz/docs/P070000925_>
+            * <https://adilet.zan.kz/kaz/docs/P070001113_>
+        * [2008](https://adilet.zan.kz/kaz/docs/P080000364_)
+        * [2009](https://adilet.zan.kz/kaz/docs/P090001936_)
         * 2010:
-            * <https://adilet.zan.kz/kaz/docs/P090002216%5F>
-            * <https://adilet.zan.kz/kaz/docs/P100000637%5F>
+            * <https://adilet.zan.kz/kaz/docs/P090002216_>
+            * <https://adilet.zan.kz/kaz/docs/P100000637_>
         * 2011:
             * <https://adilet.zan.kz/kaz/docs/P1100000167>
             * <https://adilet.zan.kz/kaz/docs/P1100000948>
diff --git a/holidays/countries/mexico.py b/holidays/countries/mexico.py
index db47e680..ebc38763 100644
--- a/holidays/countries/mexico.py
+++ b/holidays/countries/mexico.py
@@ -21,7 +21,7 @@ class Mexico(HolidayBase, ChristianHolidays, InternationalHolidays):
 
     References:
         * <https://en.wikipedia.org/wiki/Public_holidays_in_Mexico>
-        * <https://es.wikipedia.org/wiki/Anexo:D%C3%ADas_festivos_en_M%C3%A9xico>
+        * <https://es.wikipedia.org/wiki/Anexo:Días_festivos_en_México>
         * <https://www.gob.mx/cms/uploads/attachment/file/156203/1044_Ley_Federal_del_Trabajo.pdf>
         * <http://www.diputados.gob.mx/LeyesBiblio/ref/lft/LFT_orig_01abr70_ima.pdf>
         * <https://www.gob.mx/profedet/es/articulos/sabes-cuales-son-los-dias-de-descanso-obligatorio-para-este-2024>
diff --git a/holidays/countries/morocco.py b/holidays/countries/morocco.py
index 8cbcda84..06238dc8 100644
--- a/holidays/countries/morocco.py
+++ b/holidays/countries/morocco.py
@@ -20,7 +20,7 @@ class Morocco(HolidayBase, InternationalHolidays, IslamicHolidays):
     """Morocco holidays.
 
     References:
-        * <https://fr.wikipedia.org/wiki/F%C3%AAtes_et_jours_f%C3%A9ri%C3%A9s_au_Maroc>
+        * <https://fr.wikipedia.org/wiki/Fêtes_et_jours_fériés_au_Maroc>
         * <https://www.mmsp.gov.ma/fr/pratiques.aspx?id=38>
     """
 
diff --git a/holidays/countries/north_macedonia.py b/holidays/countries/north_macedonia.py
index 10a08e34..2b543eab 100644
--- a/holidays/countries/north_macedonia.py
+++ b/holidays/countries/north_macedonia.py
@@ -61,7 +61,7 @@ class NorthMacedonia(
 
     References:
         * <https://en.wikipedia.org/wiki/Public_holidays_in_North_Macedonia>
-        * [Law on Holidays 21/98](https://web.archive.org/web/20250404064336/https://www.mtsp.gov.mk/content/pdf/dokumenti/Zakon_Praznici_na_RM%20%282_2%29.pdf)
+        * [Law on Holidays 21/98](https://web.archive.org/web/20250404064336/https://www.mtsp.gov.mk/content/pdf/dokumenti/Zakon_Praznici_na_RM%20(2_2).pdf)
         * [Law Amending Law on Holidays 18/2007](https://web.archive.org/web/20250505061325/https://www.mtsp.gov.mk/content/pdf/dokumenti/Zakon_Izmenuvanje_Praznici_na_RM%20(2_2).pdf)
 
     Checked With:
diff --git a/holidays/countries/norway.py b/holidays/countries/norway.py
index 6e9161fd..0e2b57f9 100644
--- a/holidays/countries/norway.py
+++ b/holidays/countries/norway.py
@@ -80,7 +80,7 @@ class Norway(HolidayBase, ChristianHolidays, InternationalHolidays):
         # Whit Monday.
         self._add_whit_monday(tr("Andre pinsedag"))
 
-        # According to https://no.wikipedia.org/wiki/F%C3%B8rste_juledag,
+        # According to https://no.wikipedia.org/wiki/Første_juledag,
         # these dates are only valid from year > 1700
         # Wikipedia has no source for the statement, so leaving this be for now
 
diff --git a/holidays/countries/panama.py b/holidays/countries/panama.py
index 53df93cc..4daf15c0 100644
--- a/holidays/countries/panama.py
+++ b/holidays/countries/panama.py
@@ -25,7 +25,7 @@ class Panama(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
         * <https://en.wikipedia.org/wiki/Public_holidays_in_Panama>
         * [Labor Code 1947](https://docs.panama.justia.com/federales/leyes/67-de-1947-nov-26-1947.pdf)
         * [Cabinet Decree #347 of 1969](https://docs.panama.justia.com/federales/decretos-de-gabinete/decreto-de-gabinete-347-de-1969-nov-14-1969.pdf)
-        * [Labor Code 1971](https://www.mitradel.gob.pa/wp-content/uploads/2016/12/c%C3%B3digo-detrabajo.pdf)
+        * [Labor Code 1971](https://www.mitradel.gob.pa/wp-content/uploads/2016/12/código-detrabajo.pdf)
         * [Law #4 of Jun 25, 1990](https://s3-legispan.asamblea.gob.pa/legispan/NORMAS/1990/1990/LEY/Administrador%20Legispan_21570_1990_7_2_ASAMBLEA%20LEGISLATIVA_4.pdf)
         * [Law #55 of Nov 7, 2001](https://docs.panama.justia.com/federales/leyes/55-de-2001-nov-14-2001.pdf)
     """
diff --git a/holidays/countries/paraguay.py b/holidays/countries/paraguay.py
index 31058e4b..48b0de9c 100644
--- a/holidays/countries/paraguay.py
+++ b/holidays/countries/paraguay.py
@@ -27,7 +27,7 @@ class Paraguay(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoli
         * [Ley 1.601/2000](https://www.bacn.gov.py/leyes-paraguayas/1677/ley-n-1601--modifica-el-articulo-1-de-la-ley-no-71595-que-amplia-la-ley-n-0890-por-la-cual-se-determinan-los-feriados-de-la-republica)
         * [Ley 1.723/2001](https://www.bacn.gov.py/leyes-paraguayas/634/ley-n-1723--autoriza-al-poder-ejecutivo-a-trasladar-los-feriados-nacionales-al-dia-lunes)
         * [Ley 4.531/2011](https://www.bacn.gov.py/leyes-paraguayas/3831/ley-n-4531-restablece-el-dia-14-de-mayo-de-cada-ano-como-feriado-nacional)
-        * <https://es.wikipedia.org/wiki/Anexo:D%C3%ADas_festivos_en_Paraguay>
+        * <https://es.wikipedia.org/wiki/Anexo:Días_festivos_en_Paraguay>
         * <http://www.calendarioparaguay.com/>
     """
 
diff --git a/holidays/countries/slovenia.py b/holidays/countries/slovenia.py
index 4a61e636..0c18e294 100644
--- a/holidays/countries/slovenia.py
+++ b/holidays/countries/slovenia.py
@@ -23,7 +23,7 @@ class Slovenia(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoli
 
     References:
         * <https://en.wikipedia.org/wiki/Public_holidays_in_Slovenia>
-        * <https://sl.wikipedia.org/wiki/Dr%C5%BEavni_prazniki_v_Sloveniji>
+        * <https://sl.wikipedia.org/wiki/Državni_prazniki_v_Sloveniji>
         * <https://www.uradni-list.si/glasilo-uradni-list-rs/vsebina/1991-01-1091/zakon-o-praznikih-in-dela-prostih-dnevih-v-republiki-sloveniji>
         * <https://www.gov.si/teme/drzavni-prazniki-in-dela-prosti-dnevi/>
     """
diff --git a/holidays/countries/sweden.py b/holidays/countries/sweden.py
index a1c8cbfd..f72c1c8b 100644
--- a/holidays/countries/sweden.py
+++ b/holidays/countries/sweden.py
@@ -23,7 +23,7 @@ class Sweden(HolidayBase, ChristianHolidays, InternationalHolidays):
     References:
         * <https://sv.wikipedia.org/wiki/Helgdagar_i_Sverige>
         * <http://www.riksdagen.se/sv/dokument-lagar/dokument/svensk-forfattningssamling/lag-1989253-om-allmanna-helgdagar_sfs-1989-253>
-        * <https://sv.wikipedia.org/wiki/F%C3%B6rsta_maj>
+        * <https://sv.wikipedia.org/wiki/Första_maj>
         * <https://sv.wikipedia.org/wiki/Sveriges_nationaldag>
         * <https://sv.wikipedia.org/wiki/Midsommarafton>
 
diff --git a/holidays/countries/togo.py b/holidays/countries/togo.py
index 53a79a9d..23b8956e 100644
--- a/holidays/countries/togo.py
+++ b/holidays/countries/togo.py
@@ -27,10 +27,10 @@ class Togo(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHoliday
         * <https://web.archive.org/web/20250507123116/https://www.timeanddate.com/holidays/togo/>
         * <https://web.archive.org/web/20250507123425/https://www.goethe.de/ins/tg/fr/ueb/fer.html>
         * <https://web.archive.org/web/20250507123619/https://www.republiquetogolaise.com/politique/2309-3579-23-septembre-le-togo-rend-hommage-a-ses-martyrs>
-        * <https://web.archive.org/web/20250507123840/https://islam.zmo.de/s/westafrica/item/25841#?xywh=-405%2C-94%2C2376%2C1868>
+        * <https://web.archive.org/web/20250507123840/https://islam.zmo.de/s/westafrica/item/25841#?xywh=-405,-94,2376,1868>
         * <https://en.wikipedia.org/wiki/1986_Togolese_coup_attempt>
         * <https://web.archive.org/web/20250507131725/https://www.rfi.fr/fr/afrique/20140112-togo-le-13-janvier-est-plus-jour-fete>
-        * <https://web.archive.org/web/20250507124528/https://islam.zmo.de/s/afrique_ouest/item/25800#?xywh=-1641%2C0%2C4303%2C2363>
+        * <https://web.archive.org/web/20250507124528/https://islam.zmo.de/s/afrique_ouest/item/25800#?xywh=-1641,0,4303,2363>
         * <https://web.archive.org/web/20231202052731/https://www.holidayscalendar.com/event/anniversary-of-the-failed-attack-on-lome/>
 
     Ramadan start dates:
diff --git a/holidays/countries/trinidad_and_tobago.py b/holidays/countries/trinidad_and_tobago.py
index 4fb7bec5..8b144441 100644
--- a/holidays/countries/trinidad_and_tobago.py
+++ b/holidays/countries/trinidad_and_tobago.py
@@ -46,7 +46,7 @@ class TrinidadAndTobago(
         * <https://web.archive.org/web/20250429120548/https://www.guardian.co.tt/article-6.2.410311.3fe66fb00f>
         * <https://web.archive.org/web/20250418212357/https://www.nalis.gov.tt/resources/tt-content-guide/labour-day/>
         * <https://web.archive.org/web/20250429120701/https://www.facebook.com/groups/191766699268/posts/10160832951274269/>
-        * <https://web.archive.org/web/20250429142054/https://www.facebook.com/plugins/post.php?href=https%3A%2F%2Fwww.facebook.com%2F100064996051675%2Fposts%2F1101755938667598%2F>
+        * <https://web.archive.org/web/20250429142054/https://www.facebook.com/plugins/post.php?href=https://www.facebook.com/100064996051675/posts/1101755938667598/>
         * <https://en.wikipedia.org/wiki/Public_holidays_in_Trinidad_and_Tobago>
         * <https://en.wikipedia.org/wiki/Trinidad_and_Tobago_Carnival>
         * <https://en.wikipedia.org/wiki/Indian_Arrival_Day#Trinidad_and_Tobago>
diff --git a/holidays/countries/tuvalu.py b/holidays/countries/tuvalu.py
index d1e9c5f6..27333a64 100644
--- a/holidays/countries/tuvalu.py
+++ b/holidays/countries/tuvalu.py
@@ -115,7 +115,7 @@ class Tuvalu(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
         self._add_observed(self._add_holiday_oct_1(name), rule=SAT_SUN_TO_NEXT_MON_TUE)
         self._add_observed(self._add_holiday_oct_2(name), rule=SAT_SUN_TO_NEXT_MON_TUE)
 
-        # https://en.wikipedia.org/wiki/King%27s_Official_Birthday#Tuvalu
+        # https://en.wikipedia.org/wiki/King's_Official_Birthday#Tuvalu
         if self._year <= 2022:
             # Heir to the Throne's Birthday.
             self._add_holiday_2nd_mon_of_nov(tr("Aso fanau o te sui ote Tupu"))
diff --git a/holidays/countries/ukraine.py b/holidays/countries/ukraine.py
index da709766..cc3395d0 100644
--- a/holidays/countries/ukraine.py
+++ b/holidays/countries/ukraine.py
@@ -169,50 +169,50 @@ class UkraineStaticHolidays:
     """Ukraine special holidays.
 
     Substituted holidays References:
-        * [1991](https://zakon.rada.gov.ua/laws/show/60-91-%D0%BF)
-        * [1992 [1]](https://zakon.rada.gov.ua/laws/show/202-92-%D0%BF)
-        * [1992 [2]](https://zakon.rada.gov.ua/laws/show/377-91-%D0%BF)
-        * [1993 [1]](https://zakon.rada.gov.ua/laws/show/563-93-%D0%BF)
-        * [1993 [2]](https://zakon.rada.gov.ua/laws/show/725-92-%D0%BF)
-        * [1994](https://zakon.rada.gov.ua/laws/show/98-94-%D0%BF)
-        * [1995 [1]](https://zakon.rada.gov.ua/laws/show/852-95-%D0%BF)
-        * [1995 [2]](https://zakon.rada.gov.ua/laws/show/634-95-%D0%BF)
-        * [1995 [3]](https://zakon.rada.gov.ua/laws/show/266-95-%D0%BF)
-        * [1996](https://zakon.rada.gov.ua/laws/show/424-96-%D0%BF)
-        * [1997 [1]](https://zakon.rada.gov.ua/laws/show/326-97-%D0%BF)
-        * [1997 [2]](https://zakon.rada.gov.ua/laws/show/1547-96-%D0%BF)
-        * [1998](https://zakon.rada.gov.ua/laws/show/1404-97-%D0%BF>)
-        * [1999 [1]](https://zakon.rada.gov.ua/laws/show/1433-99-%D0%BF>)
-        * [1999 [2]](https://zakon.rada.gov.ua/laws/show/558-99-%D0%BF>)
-        * [1999 [3]](https://zakon.rada.gov.ua/laws/show/2070-98-%D0%BF)
-        * [2000 [1]](https://zakon.rada.gov.ua/laws/show/1251-2000-%D0%BF)
-        * [2000 [2]](https://zakon.rada.gov.ua/laws/show/717-2000-%D0%BF)
-        * [2001 [1]](https://zakon.rada.gov.ua/laws/show/138-2001-%D1%80)
-        * [2001 [2]](https://zakon.rada.gov.ua/laws/show/210-2001-%D0%BF)
-        * [2002](https://zakon.rada.gov.ua/laws/show/202-2002-%D1%80)
-        * [2002 - 2003](https:/zakon.rada.gov.ua/laws/show/705-2002-%D1%80)
-        * [2004](https://zakon.rada.gov.ua/laws/show/773-2003-%D1%80)
-        * [2005 [1]](https://zakon.rada.gov.ua/laws/show/936-2004-%D1%80)
-        * [2005 [2]](https://zakon.rada.gov.ua/laws/show/133-2005-%D1%80)
-        * [2006 [1]](https://zakon.rada.gov.ua/laws/show/490-2005-%D1%80)
-        * [2006 [2]](https://zakon.rada.gov.ua/laws/show/562-2005-%D1%80)
-        * [2007](https://zakon.rada.gov.ua/laws/show/612-2006-%D1%80)
-        * [2008 [1]](https://zakon.rada.gov.ua/laws/show/1059-2007-%D1%80)
-        * [2008 [2]](https://zakon.rada.gov.ua/laws/show/538-2008-%D1%80)
-        * [2009](https://zakon.rada.gov.ua/laws/show/1458-2008-%D1%80)
-        * [2010](https://zakon.rada.gov.ua/laws/show/1412-2009-%D1%80)
-        * [2011](https://zakon.rada.gov.ua/laws/show/2130-2010-%D1%80)
-        * [2012](https://zakon.rada.gov.ua/laws/show/1210-2011-%D1%80)
-        * [2013](https://zakon.rada.gov.ua/laws/show/1043-2012-%D1%80)
-        * [2014](https://zakon.rada.gov.ua/laws/show/920-2013-%D1%80)
-        * [2015](https://zakon.rada.gov.ua/laws/show/1084-2014-%D1%80)
-        * [2016](https://zakon.rada.gov.ua/laws/show/1155-2015-%D1%80)
-        * [2017](https://zakon.rada.gov.ua/laws/show/850-2016-%D1%80)
-        * [2018](https://zakon.rada.gov.ua/laws/show/1-2018-%D1%80)
-        * [2019](https://zakon.rada.gov.ua/laws/show/7-2019-%D1%80)
-        * [2020](https://zakon.rada.gov.ua/laws/show/995-2019-%D1%80)
-        * [2021](https://zakon.rada.gov.ua/laws/show/1191-2020-%D1%80)
-        * [2022](https://zakon.rada.gov.ua/laws/show/1004-2021-%D1%80)
+        * [1991](https://zakon.rada.gov.ua/laws/show/60-91-п)
+        * [1992 [1]](https://zakon.rada.gov.ua/laws/show/202-92-п)
+        * [1992 [2]](https://zakon.rada.gov.ua/laws/show/377-91-п)
+        * [1993 [1]](https://zakon.rada.gov.ua/laws/show/563-93-п)
+        * [1993 [2]](https://zakon.rada.gov.ua/laws/show/725-92-п)
+        * [1994](https://zakon.rada.gov.ua/laws/show/98-94-п)
+        * [1995 [1]](https://zakon.rada.gov.ua/laws/show/852-95-п)
+        * [1995 [2]](https://zakon.rada.gov.ua/laws/show/634-95-п)
+        * [1995 [3]](https://zakon.rada.gov.ua/laws/show/266-95-п)
+        * [1996](https://zakon.rada.gov.ua/laws/show/424-96-п)
+        * [1997 [1]](https://zakon.rada.gov.ua/laws/show/326-97-п)
+        * [1997 [2]](https://zakon.rada.gov.ua/laws/show/1547-96-п)
+        * [1998](https://zakon.rada.gov.ua/laws/show/1404-97-п)
+        * [1999 [1]](https://zakon.rada.gov.ua/laws/show/1433-99-п)
+        * [1999 [2]](https://zakon.rada.gov.ua/laws/show/558-99-п)
+        * [1999 [3]](https://zakon.rada.gov.ua/laws/show/2070-98-п)
+        * [2000 [1]](https://zakon.rada.gov.ua/laws/show/1251-2000-п)
+        * [2000 [2]](https://zakon.rada.gov.ua/laws/show/717-2000-п)
+        * [2001 [1]](https://zakon.rada.gov.ua/laws/show/138-2001-р)
+        * [2001 [2]](https://zakon.rada.gov.ua/laws/show/210-2001-п)
+        * [2002](https://zakon.rada.gov.ua/laws/show/202-2002-р)
+        * [2002 - 2003](https:/zakon.rada.gov.ua/laws/show/705-2002-р)
+        * [2004](https://zakon.rada.gov.ua/laws/show/773-2003-р)
+        * [2005 [1]](https://zakon.rada.gov.ua/laws/show/936-2004-р)
+        * [2005 [2]](https://zakon.rada.gov.ua/laws/show/133-2005-р)
+        * [2006 [1]](https://zakon.rada.gov.ua/laws/show/490-2005-р)
+        * [2006 [2]](https://zakon.rada.gov.ua/laws/show/562-2005-р)
+        * [2007](https://zakon.rada.gov.ua/laws/show/612-2006-р)
+        * [2008 [1]](https://zakon.rada.gov.ua/laws/show/1059-2007-р)
+        * [2008 [2]](https://zakon.rada.gov.ua/laws/show/538-2008-р)
+        * [2009](https://zakon.rada.gov.ua/laws/show/1458-2008-р)
+        * [2010](https://zakon.rada.gov.ua/laws/show/1412-2009-р)
+        * [2011](https://zakon.rada.gov.ua/laws/show/2130-2010-р)
+        * [2012](https://zakon.rada.gov.ua/laws/show/1210-2011-р)
+        * [2013](https://zakon.rada.gov.ua/laws/show/1043-2012-р)
+        * [2014](https://zakon.rada.gov.ua/laws/show/920-2013-р)
+        * [2015](https://zakon.rada.gov.ua/laws/show/1084-2014-р)
+        * [2016](https://zakon.rada.gov.ua/laws/show/1155-2015-р)
+        * [2017](https://zakon.rada.gov.ua/laws/show/850-2016-р)
+        * [2018](https://zakon.rada.gov.ua/laws/show/1-2018-р)
+        * [2019](https://zakon.rada.gov.ua/laws/show/7-2019-р)
+        * [2020](https://zakon.rada.gov.ua/laws/show/995-2019-р)
+        * [2021](https://zakon.rada.gov.ua/laws/show/1191-2020-р)
+        * [2022](https://zakon.rada.gov.ua/laws/show/1004-2021-р)
 
     Special holidays References:
         * [1995](https://zakon.rada.gov.ua/laws/show/13/95)
diff --git a/holidays/countries/united_states.py b/holidays/countries/united_states.py
index ae775dae..e4834708 100644
--- a/holidays/countries/united_states.py
+++ b/holidays/countries/united_states.py
@@ -72,7 +72,7 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
         * Columbus Day / Indigenous Peoples' Day history:
             * <https://www.pewresearch.org/short-reads/2023/10/05/working-on-columbus-day-or-indigenous-peoples-day-it-depends-on-where-your-job-is/>
             * <https://www.officeholidays.com/holidays/usa/columbus-day-state-guide>
-            * <https://en.wikipedia.org/wiki/Indigenous_Peoples%27_Day_(United_States)>
+            * <https://en.wikipedia.org/wiki/Indigenous_Peoples'_Day_(United_States)>
             * <https://www.sos.ri.gov/divisions/civics-and-education/reference-desk/ri-state-holidays>
             * <https://web.archive.org/web/20080831103521/http://www.dpa.ca.gov/personnel-policies/holidays.htm>
         * [Frances Xavier Cabrini Day](https://leg.colorado.gov/sites/default/files/2020a_1031_signed.pdf)
diff --git a/holidays/countries/venezuela.py b/holidays/countries/venezuela.py
index d14e0a9c..e529f503 100644
--- a/holidays/countries/venezuela.py
+++ b/holidays/countries/venezuela.py
@@ -23,7 +23,7 @@ class Venezuela(HolidayBase, ChristianHolidays, InternationalHolidays):
         * <https://dias-festivos.eu/dias-festivos/venezuela/#>
         * [1909 Aug 5](https://www.guao.org/sites/default/files/efemerides/69.Ley%20fiestas%20nacionales%201909.pdf)
         * [1918 May 19](https://www.guao.org/sites/default/files/efemerides/70.%20Ley%20de%20fiestas%20nacionales%201918.pdf)
-        * [1921 Jun 11](https://guao.org/sites/default/files/efemerides/37.LEYES_Y_DECRETOS_1921_Di%cc%81a_de_la_raza.PDF)
+        * [1921 Jun 11](https://guao.org/sites/default/files/efemerides/37.LEYES_Y_DECRETOS_1921_Día_de_la_raza.PDF)
         * [1971 Jun 22](https://www.ilo.org/dyn/travail/docs/2030/Law%20No.29.541.pdf)
         * [2002 Oct 10](https://www.acnur.org/fileadmin/Documentos/BDL/2008/6635.pdf)
         * [2012 May 7](https://oig.cepal.org/sites/default/files/2012_leyorgtrabajo_ven.pdf)
diff --git a/holidays/groups/chinese.py b/holidays/groups/chinese.py
index 5418cb76..dd19c0e5 100644
--- a/holidays/groups/chinese.py
+++ b/holidays/groups/chinese.py
@@ -115,7 +115,7 @@ class ChineseCalendarHolidays(EasternCalendarHolidays):
         Birthday of the Buddha is a Buddhist festival that is celebrated in
         most of East Asia and South Asia commemorating the birth of Gautama
         Buddha, who was the founder of Buddhism.
-        https://en.wikipedia.org/wiki/Buddha%27s_Birthday
+        https://en.wikipedia.org/wiki/Buddha's_Birthday
         """
         return self._add_chinese_calendar_holiday(
             name, self._chinese_calendar.buddha_birthday_date(self._year)
@@ -126,7 +126,7 @@ class ChineseCalendarHolidays(EasternCalendarHolidays):
         Add Chinese New Year's Eve (last day of 12th lunar month).
 
         Chinese New Year's Eve is the day before the Chinese New Year.
-        https://en.wikipedia.org/wiki/Chinese_New_Year%27s_Eve
+        https://en.wikipedia.org/wiki/Chinese_New_Year's_Eve
         """
         return self._add_chinese_calendar_holiday(
             name, self._chinese_calendar.lunar_new_year_date(self._year), days_delta=-1
@@ -235,7 +235,7 @@ class ChineseCalendarHolidays(EasternCalendarHolidays):
 
         Vietnamese festival held annually from the 8th to the 11th day of the
         3rd lunar month in honour of the Hùng Kings.
-        https://en.wikipedia.org/wiki/H%C3%B9ng_Kings%27_Festival
+        https://en.wikipedia.org/wiki/Hùng_Kings'_Festival
         """
         return self._add_chinese_calendar_holiday(
             name, self._chinese_calendar.hung_kings_date(self._year)
diff --git a/holidays/groups/christian.py b/holidays/groups/christian.py
index 6ba8326b..3230018d 100644
--- a/holidays/groups/christian.py
+++ b/holidays/groups/christian.py
@@ -100,7 +100,7 @@ class ChristianHolidays:
 
         Also known as All Hallows' Day, the Feast of All Saints,
         the Feast of All Hallows, the Solemnity of All Saints, and Hallowmas.
-        https://en.wikipedia.org/wiki/All_Saints%27_Day
+        https://en.wikipedia.org/wiki/All_Saints'_Day
         """
         return self._add_holiday_nov_1(name)
 
@@ -111,7 +111,7 @@ class ChristianHolidays:
         All Souls' Day is a day of prayer and remembrance for the faithful
         departed, observed by certain Christian denominations on 2 November.
         In Belarussian tradition it is called Dziady.
-        https://en.wikipedia.org/wiki/All_Souls%27_Day
+        https://en.wikipedia.org/wiki/All_Souls'_Day
         https://en.wikipedia.org/wiki/Dziady
         """
         return self._add_holiday_nov_2(name)
@@ -384,7 +384,7 @@ class ChristianHolidays:
 
         Saint George's Day is celebrated on 23 April, the traditionally
         accepted date of the saint's death.
-        https://en.wikipedia.org/wiki/Saint_George%27s_Day
+        https://en.wikipedia.org/wiki/Saint_George's_Day
         """
         return self._add_holiday_apr_23(name)
 
@@ -415,7 +415,7 @@ class ChristianHolidays:
         Solemnity of Saint Joseph, is in Western Christianity the principal
         feast day of Saint Joseph, husband of the Virgin Mary and legal father
         of Jesus Christ.
-        https://en.wikipedia.org/wiki/Saint_Joseph%27s_Day
+        https://en.wikipedia.org/wiki/Saint_Joseph's_Day
         """
         return self._add_holiday_mar_19(name)
 
diff --git a/holidays/groups/international.py b/holidays/groups/international.py
index fc4fb938..78d7611f 100644
--- a/holidays/groups/international.py
+++ b/holidays/groups/international.py
@@ -103,7 +103,7 @@ class InternationalHolidays:
         International Workers' Day, also known as Labour Day, is a celebration
         of labourers and the working classes that is promoted by the
         international labour movement.
-        https://en.wikipedia.org/wiki/International_Workers%27_Day
+        https://en.wikipedia.org/wiki/International_Workers'_Day
         """
         return self._add_holiday_may_1(name)
 
@@ -111,7 +111,7 @@ class InternationalHolidays:
         """
         Add International Workers' Day Two (May 2nd)
 
-        https://en.wikipedia.org/wiki/International_Workers%27_Day
+        https://en.wikipedia.org/wiki/International_Workers'_Day
         """
         return self._add_holiday_may_2(name)
 
@@ -119,7 +119,7 @@ class InternationalHolidays:
         """
         Add International Workers' Day Three (May 3rd)
 
-        https://en.wikipedia.org/wiki/International_Workers%27_Day
+        https://en.wikipedia.org/wiki/International_Workers'_Day
         """
         return self._add_holiday_may_3(name)
 
@@ -129,7 +129,7 @@ class InternationalHolidays:
 
         New Year's Day is a festival observed in most of the world on
         1 January, the first day of the year in the modern Gregorian calendar.
-        https://en.wikipedia.org/wiki/New_Year%27s_Day
+        https://en.wikipedia.org/wiki/New_Year's_Day
         """
         return self._add_holiday_jan_1(name)
 
@@ -139,7 +139,7 @@ class InternationalHolidays:
 
         New Year's Day is a festival observed in most of the world on
         1 January, the first day of the year in the modern Gregorian calendar.
-        https://en.wikipedia.org/wiki/New_Year%27s_Day
+        https://en.wikipedia.org/wiki/New_Year's_Day
         """
         return self._add_holiday_jan_2(name)
 
@@ -149,7 +149,7 @@ class InternationalHolidays:
 
         New Year's Day is a festival observed in most of the world on
         1 January, the first day of the year in the modern Gregorian calendar.
-        https://en.wikipedia.org/wiki/New_Year%27s_Day
+        https://en.wikipedia.org/wiki/New_Year's_Day
         """
         return self._add_holiday_jan_3(name)
 
@@ -159,7 +159,7 @@ class InternationalHolidays:
 
         New Year's Day is a festival observed in most of the world on
         1 January, the first day of the year in the modern Gregorian calendar.
-        https://en.wikipedia.org/wiki/New_Year%27s_Day
+        https://en.wikipedia.org/wiki/New_Year's_Day
         """
         return self._add_holiday_jan_4(name)
 
@@ -180,7 +180,7 @@ class InternationalHolidays:
         In the Gregorian calendar, New Year's Eve, also known as Old Year's
         Day or Saint Sylvester's Day in many countries, is the evening or the
         entire day of the last day of the year, on 31 December.
-        https://en.wikipedia.org/wiki/New_Year%27s_Eve
+        https://en.wikipedia.org/wiki/New_Year's_Eve
         """
         return self._add_holiday_dec_31(name)
 
@@ -192,7 +192,7 @@ class InternationalHolidays:
         point in the women's rights movement, bringing attention to issues
         such as gender equality, reproductive rights, and violence and abuse
         against women.
-        https://en.wikipedia.org/wiki/International_Women%27s_Day
+        https://en.wikipedia.org/wiki/International_Women's_Day
         """
         return self._add_holiday_mar_8(name)
 
diff --git a/holidays/groups/islamic.py b/holidays/groups/islamic.py
index 51945297..bcfb9e69 100644
--- a/holidays/groups/islamic.py
+++ b/holidays/groups/islamic.py
@@ -299,7 +299,7 @@ class IslamicHolidays(EasternCalendarHolidays):
         Add Isra' and Mi'raj Day (27th day of 7th month).
 
         The Prophet's Ascension.
-        https://en.wikipedia.org/wiki/Isra%27_and_Mi%27raj
+        https://en.wikipedia.org/wiki/Isra'_and_Mi'raj
         """
         return self._add_islamic_calendar_holiday(
             name, self._islamic_calendar.isra_and_miraj_dates(self._year)
@@ -399,7 +399,7 @@ class IslamicHolidays(EasternCalendarHolidays):
         """
         Add birthday of Prophet Muhammad and Ja'far al-Sadiq day (17th day of 3rd month).
 
-        https://en.wikipedia.org/wiki/Ja%27far_al-Sadiq
+        https://en.wikipedia.org/wiki/Ja'far_al-Sadiq
         """
         return self._add_islamic_calendar_holiday(
             name, self._islamic_calendar.sadiq_birthday_dates(self._year)
@@ -409,7 +409,7 @@ class IslamicHolidays(EasternCalendarHolidays):
         """
         Add death of Ja'far al-Sadiq day (25th day of 10th month).
 
-        https://en.wikipedia.org/wiki/Ja%27far_al-Sadiq
+        https://en.wikipedia.org/wiki/Ja'far_al-Sadiq
         """
         return self._add_islamic_calendar_holiday(
             name, self._islamic_calendar.sadiq_death_dates(self._year)
diff --git a/holidays/registry.py b/holidays/registry.py
index 7b96bca5..5c807b8a 100644
--- a/holidays/registry.py
+++ b/holidays/registry.py
@@ -42,6 +42,7 @@ COUNTRIES: RegistryDict = {
     "belgium": ("Belgium", "BE", "BEL"),
     "belize": ("Belize", "BZ", "BLZ"),
     "benin": ("Benin", "BJ", "BEN"),
+    "bermuda": ("Bermuda", "BM", "BMU"),
     "bolivia": ("Bolivia", "BO", "BOL"),
     "bosnia_and_herzegovina": ("BosniaAndHerzegovina", "BA", "BIH"),
     "botswana": ("Botswana", "BW", "BWA"),


Test patch:
diff --git a/tests/countries/test_bermuda.py b/tests/countries/test_bermuda.py
new file mode 100644
index 00000000..6729e57b
--- /dev/null
+++ b/tests/countries/test_bermuda.py
@@ -0,0 +1,239 @@
+#  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 CONTRIBUTORS file)
+#           dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
+#           ryanss <ryanssdev@icloud.com> (c) 2014-2017
+#  Website: https://github.com/vacanza/holidays
+#  License: MIT (see LICENSE file)
+
+from unittest import TestCase
+
+from holidays.countries.bermuda import Bermuda, BM, BMU
+from tests.common import CommonCountryTests
+
+
+class TestBermuda(CommonCountryTests, TestCase):
+    @classmethod
+    def setUpClass(cls):
+        years = range(1948, 2050)
+        super().setUpClass(Bermuda, years=years, years_non_observed=years)
+
+    def test_country_aliases(self):
+        self.assertAliases(Bermuda, BM, BMU)
+
+    def test_no_holidays(self):
+        self.assertNoHolidays(Bermuda(years=1947))
+
+    def test_special_holidays(self):
+        for dt, name in (
+            ("2007-06-05", "Public Holiday"),
+            ("2019-11-04", "Portuguese Welcome 170th Anniversary"),
+            ("2021-10-18", "Flora Duffy Day"),
+            ("2023-05-08", "The Coronation of His Majesty King Charles III"),
+        ):
+            self.assertHolidayName(name, dt)
+
+    def test_new_years_day(self):
+        name = "New Year's Day"
+        self.assertHolidayName(name, (f"{year}-01-01" for year in range(1948, 2050)))
+        dt = (
+            "2011-01-03",
+            "2012-01-02",
+            "2017-01-02",
+            "2022-01-03",
+            "2023-01-02",
+        )
+        self.assertHolidayName(f"{name} (observed)", dt)
+        self.assertNoNonObservedHoliday(dt)
+
+    def test_good_friday(self):
+        name = "Good Friday"
+        self.assertHolidayName(
+            name,
+            "2021-04-02",
+            "2022-04-15",
+            "2023-04-07",
+            "2024-03-29",
+            "2025-04-18",
+        )
+        self.assertHolidayName(name, range(1948, 2050))
+
+    def test_bermuda_day(self):
+        name = "Bermuda Day"
+        self.assertHolidayName(name, (f"{year}-05-24" for year in range(1948, 2018)))
+        self.assertHolidayName(
+            name,
+            "2018-05-25",
+            "2019-05-24",
+            "2020-05-29",
+            "2021-05-28",
+            "2022-05-27",
+            "2023-05-26",
+            "2024-05-24",
+            "2025-05-23",
+        )
+        self.assertHolidayName(name, range(2018, 2050))
+
+        dt = (
+            "2008-05-26",
+            "2009-05-25",
+            "2014-05-26",
+            "2015-05-25",
+        )
+        self.assertHolidayName(f"{name} (observed)", dt)
+        self.assertNoNonObservedHoliday(dt)
+
+    def test_queens_birthday(self):
+        name = "Queen's Birthday"
+        self.assertHolidayName(
+            name,
+            "1997-06-16",
+            "1998-06-15",
+            "1999-06-21",
+            "2000-06-12",
+            "2001-06-11",
+            "2006-06-12",
+            "2007-06-11",
+            "2008-06-16",
+        )
+        self.assertHolidayName(name, range(1948, 2009))
+        self.assertNoHolidayName(name, range(2009, 2050))
+
+    def test_national_heroes_day(self):
+        name = "National Heroes Day"
+        self.assertHolidayName(
+            name,
+            "2008-10-13",
+            "2009-06-15",
+            "2010-06-21",
+            "2020-06-15",
+            "2021-06-21",
+            "2022-06-20",
+            "2023-06-19",
+            "2024-06-17",
+            "2025-06-16",
+        )
+        self.assertHolidayName(name, range(2008, 2050))
+        self.assertNoHolidayName(name, range(1948, 2008))
+
+    def test_cup_match_and_emancipation_day(self):
+        name_1 = "Cup Match Day"
+        self.assertHolidayName(
+            name_1,
+            "1995-08-03",
+            "1996-08-01",
+            "1997-07-31",
+            "1998-07-30",
+            "1999-07-29",
+        )
+        self.assertHolidayName(name_1, range(1948, 2000))
+        self.assertNoHolidayName(name_1, range(2000, 2050))
+
+        name_2 = "Emancipation Day"
+        self.assertHolidayName(
+            name_2,
+            "2021-07-29",
+            "2022-07-28",
+            "2023-08-03",
+            "2024-08-01",
+            "2025-07-31",
+        )
+        self.assertHolidayName(name_2, range(2000, 2050))
+        self.assertNoHolidayName(name_2, range(1948, 2000))
+
+    def test_somers_and_mary_prince_day(self):
+        name_1 = "Somers Day"
+        self.assertHolidayName(
+            name_1,
+            "2016-07-29",
+            "2017-08-04",
+            "2018-08-03",
+            "2019-08-02",
+        )
+        self.assertHolidayName(name_1, range(1948, 2020))
+        self.assertNoHolidayName(name_1, range(2020, 2050))
+
+        name_2 = "Mary Prince Day"
+        self.assertHolidayName(
+            name_2,
+            "2020-07-31",
+            "2021-07-30",
+            "2022-07-29",
+            "2023-08-04",
+            "2024-08-02",
+            "2025-08-01",
+        )
+        self.assertHolidayName(name_2, range(2020, 2050))
+        self.assertNoHolidayName(name_2, range(1948, 2020))
+
+    def test_labour_day(self):
+        name = "Labour Day"
+        self.assertHolidayName(
+            name,
+            "2020-09-07",
+            "2021-09-06",
+            "2022-09-05",
+            "2023-09-04",
+            "2024-09-02",
+            "2025-09-01",
+        )
+        self.assertHolidayName(name, range(1948, 2050))
+
+    def test_remembrance_day(self):
+        name = "Remembrance Day"
+        self.assertHolidayName(name, (f"{year}-11-11" for year in range(1948, 2050)))
+
+        dt = (
+            "2007-11-12",
+            "2012-11-12",
+            "2017-11-13",
+            "2018-11-12",
+            "2023-11-13",
+        )
+        self.assertHolidayName(f"{name} (observed)", dt)
+        self.assertNoNonObservedHoliday(dt)
+
+    def test_christmas_day(self):
+        name = "Christmas Day"
+        self.assertHolidayName(name, (f"{year}-12-25" for year in range(1948, 2050)))
+        dt = (
+            "2010-12-27",
+            "2011-12-27",
+            "2016-12-27",
+            "2021-12-27",
+            "2022-12-27",
+        )
+        self.assertHolidayName(f"{name} (observed)", dt)
+        self.assertNoNonObservedHoliday(dt)
+
+    def test_boxing_day(self):
+        name = "Boxing Day"
+        self.assertHolidayName(name, (f"{year}-12-26" for year in range(1948, 2050)))
+        dt = (
+            "2009-12-28",
+            "2010-12-28",
+            "2015-12-28",
+            "2020-12-28",
+            "2021-12-28",
+        )
+        self.assertHolidayName(f"{name} (observed)", dt)
+        self.assertNoNonObservedHoliday(dt)
+
+    def test_2025(self):
+        self.assertHolidays(
+            Bermuda(years=2025),
+            ("2025-01-01", "New Year's Day"),
+            ("2025-04-18", "Good Friday"),
+            ("2025-05-23", "Bermuda Day"),
+            ("2025-06-16", "National Heroes Day"),
+            ("2025-07-31", "Emancipation Day"),
+            ("2025-08-01", "Mary Prince Day"),
+            ("2025-09-01", "Labour Day"),
+            ("2025-11-11", "Remembrance Day"),
+            ("2025-12-25", "Christmas Day"),
+            ("2025-12-26", "Boxing Day"),
+        )