Skip to content
Merged

v0.100 #3683

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
088f1b2
Initialize v0.100
KJhellico Jun 15, 2026
3d7394f
Add Chicago Mercantile Exchange (XCME) holidays (#3617)
pareshjoshij Jun 17, 2026
46d438b
chore: Update snapshots (#3627)
github-actions[bot] Jun 17, 2026
008c5b4
Update Saudi Arabia holidays (#3624)
pareshjoshij Jun 17, 2026
e4dc7a2
chore: Update snapshots (#3628)
github-actions[bot] Jun 17, 2026
d6b972f
Bump the version-updates group with 3 updates (#3629)
dependabot[bot] Jun 18, 2026
177cb9c
Bump github/codeql-action from 4.35.5 to 4.36.0 in the version-update…
dependabot[bot] Jun 19, 2026
6d3997b
Bump cryptography from 46.0.7 to 48.0.1 in the uv group across 1 dire…
dependabot[bot] Jun 19, 2026
b3277e1
Update Singapore holidays: add 2027 public holidays (#3632)
PPsyrius Jun 19, 2026
d149314
Update calendar download page (#3626)
pareshjoshij Jun 19, 2026
353695b
Refactor Zambia holidays and tests (#3635)
PPsyrius Jun 19, 2026
8d41c31
Migrate Malawi tests to new test case standards (#3633)
VaishnaviBardapure Jun 19, 2026
2ea6db2
Bump coverage from 7.14.0 to 7.14.1 in the version-updates group acro…
dependabot[bot] Jun 19, 2026
f105a26
Update iCalendar generation tool (#3640)
KJhellico Jun 22, 2026
ede9f5b
Bump https://github.com/astral-sh/ruff-pre-commit from v0.15.14 to 0.…
dependabot[bot] Jun 25, 2026
d6af602
Bump the version-updates group with 3 updates (#3650)
dependabot[bot] Jun 25, 2026
e1b0ff8
Migrate Zimbabwe tests to new test case standards (#3653)
eeshsaxena Jun 29, 2026
14de3d8
Change standard name of "Whit Sunday" holiday to "Pentecost" (#3657)
KJhellico Jul 1, 2026
b5e8133
chore: Update snapshots (#3658)
github-actions[bot] Jul 1, 2026
57a436e
Update India holidays: national holidays significant improvement (#3578)
ankushhKapoor Jul 1, 2026
af39ce7
chore: Update snapshots (#3659)
github-actions[bot] Jul 1, 2026
fa66d63
Bump the version-updates group with 3 updates (#3661)
dependabot[bot] Jul 2, 2026
4c13c74
Bump mkdocstrings-python from 2.0.3 to 2.0.4 in the version-updates g…
dependabot[bot] Jul 2, 2026
fa04cea
Bump https://github.com/astral-sh/ruff-pre-commit from v0.15.15 to 0.…
dependabot[bot] Jul 2, 2026
b89d03b
Add Bolsa Mexicana de Valores (BMV) holidays (#3639)
pareshjoshij Jul 2, 2026
2fee92a
chore: Update snapshots (#3664)
github-actions[bot] Jul 2, 2026
bd47013
Update documentation: enhance iCalendar export examples (#3641)
davidhedlund Jul 2, 2026
382e718
Update some holidays Ukrainian translations (#3667)
KJhellico Jul 3, 2026
6a09026
Migrate Norway tests to new test case standards (#3671)
eeshsaxena Jul 4, 2026
5a02fa3
Migrate Mexico tests to new test case standards (#3648)
VaishnaviBardapure Jul 4, 2026
a2f107e
Finalize v0.100
KJhellico Jul 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/check-country-holiday-updates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout holidays repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
fetch-depth: 0 # Get full commit history to accurately determine when each file was last modified
repository: vacanza/holidays
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/check-financial-holiday-updates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout holidays repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
fetch-depth: 0 # Get full commit history to accurately determine when each file was last modified
repository: vacanza/holidays
Expand Down
28 changes: 14 additions & 14 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3

- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON_VERSION }}
version: ${{ env.DEFAULT_UV_VERSION }}
Expand All @@ -60,15 +60,15 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3

- name: Initialize CodeQL
uses: github/codeql-action/init@9e0d7b8d25671d64c341c19c0152d693099fb5ba # v4.35.5
uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
with:
languages: python

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@9e0d7b8d25671d64c341c19c0152d693099fb5ba # v4.35.5
uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
with:
category: '/language:python'

Expand All @@ -91,10 +91,10 @@ jobs:
- '3.14'
steps:
- name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3

- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
with:
python-version: ${{ matrix.python-version }}
version: ${{ env.DEFAULT_UV_VERSION }}
Expand All @@ -109,7 +109,7 @@ jobs:
run: make test

- name: Upload coverage to Codecov
uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
with:
token: ${{ secrets.CODECOV_TOKEN }}

Expand All @@ -119,10 +119,10 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3

- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON_VERSION }}
version: ${{ env.DEFAULT_UV_VERSION }}
Expand Down Expand Up @@ -169,10 +169,10 @@ jobs:
- windows-latest
steps:
- name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3

- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON_VERSION }}
version: ${{ env.DEFAULT_UV_VERSION }}
Expand Down Expand Up @@ -204,10 +204,10 @@ jobs:
needs: test
steps:
- name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3

- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON_VERSION }}
version: ${{ env.DEFAULT_UV_VERSION }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/deploy-gh-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3

- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON_VERSION }}
version: ${{ env.DEFAULT_UV_VERSION }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/update-snapshots.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3

- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON_VERSION }}
version: ${{ env.DEFAULT_UV_VERSION }}
Expand Down
6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ repos:
- --py310-plus

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: 5e2fb545eba1ea9dc051f6f962d52fe8f76a9794 # v0.15.13
rev: 22f0422809455ec89ffdcf5a00170ba816e42ddb # v0.15.16
hooks:
- id: ruff-check
- id: ruff-format

- repo: https://github.com/igorshubovych/markdownlint-cli
rev: e72a3ca1632f0b11a07d171449fe447a7ff6795e # v0.48.0
rev: a4d5d37e66ebcd6b3705204a1d6dbb56dea66338 # v0.49.0
hooks:
- id: markdownlint
args:
Expand Down Expand Up @@ -64,7 +64,7 @@ repos:
- types-python-dateutil==2.9.0.20260518

- repo: https://github.com/tox-dev/pyproject-fmt
rev: a007bb7dd9043d022292401abc3061cb1906b4bc # v2.21.2
rev: ca620e0df5ae9a02b7b81a6e4c954894f043ce42 # v2.24.1
hooks:
- id: pyproject-fmt

Expand Down
20 changes: 20 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
## Version 0.100

Released July 6, 2026

- Refactor Zambia holidays and tests (#3635 by @PPsyrius)
- Add Chicago Mercantile Exchange (XCME) holidays (#3617 by @pareshjoshij, @arkid15r, @KJhellico)
- Add Bolsa Mexicana de Valores (BMV) holidays (#3639 by @pareshjoshij)
- Change standard name of "Whit Sunday" holiday to "Pentecost" (#3657 by @KJhellico)
- Update India holidays: national holidays significant improvement (#3578 by @ankushhKapoor)
- Update Saudi Arabia holidays (#3624 by @pareshjoshij)
- Update Singapore holidays: add 2027 public holidays (#3632 by @PPsyrius)
- Update calendar download page (#3626 by @pareshjoshij)
- Update documentation: enhance iCalendar export examples (#3641 by @davidhedlund, @KJhellico)
- Update iCalendar generation tool (#3640 by @KJhellico)
- Update some holidays Ukrainian translations (#3667 by @KJhellico)
- Migrate Malawi tests to new test case standards (#3633 by @VaishnaviBardapure)
- Migrate Mexico tests to new test case standards (#3648 by @VaishnaviBardapure, @KJhellico)
- Migrate Norway tests to new test case standards (#3671 by @eeshsaxena)
- Migrate Zimbabwe tests to new test case standards (#3653 by @eeshsaxena)

## Version 0.99

Released June 15, 2026
Expand Down
2 changes: 2 additions & 0 deletions CONTRIBUTORS
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ Colin Watson
Dan Gentry
Daniel Musketa
Daniël Niemeijer
David Hedlund
David Hotham
Devaraj K
Devika Shukla
Expand All @@ -54,6 +55,7 @@ Douglas Franklin
Eden Juscelino
Edison Robles
Edward Betts
Eesh Saxena
Eldar Mustafayev
Emmanuel Arias
Eugenio Panadero Maciá
Expand Down
18 changes: 17 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,9 @@ The documentation is hosted on [Read the Docs](https://holidays.readthedocs.io).

## ICS Exports

Holiday calendars can be exported as `.ics` files via the [download page](https://holidays.readthedocs.io/en/latest/downloads/).
Holiday calendars can be exported as `.ics` files via [holidays-ics command line
tool](https://holidays.readthedocs.io/en/latest/examples/#holidays-ics-tool),
or from the [Download Holiday Calendars](https://holidays.readthedocs.io/en/latest/downloads/) page.

## Quick Start

Expand Down Expand Up @@ -1938,6 +1940,13 @@ code when available. The following financial markets are available:
</thead>
<tbody>
<tr>
<td>Bolsa Mexicana de Valores</td>
<td>XMEX</td>
<td>Bolsa Mexicana de Valores (BMV) holidays</td>
<td>en_US, <strong>es</strong>, uk</td>
<td></td>
</tr>
<tr>
<td>Bombay Stock Exchange</td>
<td>XBOM</td>
<td>Bombay Stock Exchange (BSE) market holidays</td>
Expand All @@ -1952,6 +1961,13 @@ code when available. The following financial markets are available:
<td></td>
</tr>
<tr>
<td>Chicago Mercantile Exchange</td>
<td>XCME</td>
<td>Chicago Mercantile Exchange market holidays</td>
<td><strong>en_US</strong>, gu, hi</td>
<td>HALF_DAY</td>
</tr>
<tr>
<td>European Central Bank</td>
<td>XECB</td>
<td>Trans-European Automated Real-time Gross Settlement (TARGET2)</td>
Expand Down
4 changes: 2 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

| Version | Supported |
|---------| ------------------ |
| 0.99 | :white_check_mark: |
| < 0.99 | :x: |
| 0.100 | :white_check_mark: |
| < 0.100 | :x: |

## Reporting a Vulnerability

Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.99
0.100
4 changes: 2 additions & 2 deletions docs/downloads.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,8 +119,8 @@ hide:
</tr>
<template x-for="(event, index) in yearData.events" :key="index">
<tr>
<td style="font-family: monospace;" x-text="formatDate(event.date || event.start)"></td>
<td x-text="event.name || event.summary"></td>
<td x-text="event.date"></td>
<td x-text="event.name"></td>
</tr>
</template>
</tbody>
Expand Down
79 changes: 66 additions & 13 deletions docs/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -626,47 +626,100 @@ For installation instructions, see `uv` [documentation](https://docs.astral.sh/u

By default, the generated calendar contains holidays for the current year and is written
to a file whose name is derived from the selected calendar and year range.
The `--years` option accepts a single year (2025), a year range (2025-2027), or a
relative range (+10), which selects the current year through the current year plus 10.

### Examples

Generate a holiday calendar for Switzerland in German:
Calendar for the current year:

```shell
holidays-ics US
```

Save calendar to a custom file:

```shell
holidays-ics US --output test.ics
```

Calendar for specific year:

```shell
holidays-ics US --years 2035
```

Calendar for the current and next 10 years:

```shell
holidays-ics US --years +10
```

Calendar for the current year and the previous 5 years:

```shell
holidays-ics US --years -5
```

Calendar containing unofficial holidays only:

```shell
holidays-ics US --categories unofficial
```

Calendar containing public and optional holidays:

```shell
holidays-ics CA --categories public,optional
```

Switzerland calendar in German:

```shell
holidays-ics CH --language de
```

Generate a holiday calendar for the Canton of Zurich for a specific year:
Canton of Zurich calendar:

```shell
holidays-ics CH --subdiv ZH
```

Financial market holiday calendar:

```shell
holidays-ics CH --subdiv ZH --years 2025
holidays-ics XNYS
```

Generate a holiday calendar for multiple years and save it to a custom file:
Spanning the next 10 years, unofficial holidays, saved to a custom file:

```shell
holidays-ics US --years 2025-2027 --output us_holidays.ics
holidays-ics US --years +10 --categories unofficial --output US_YYYY_YYYY_unofficial.ics

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: The --output flag takes a literal file path — the tool does not replace YYYY with actual years. Running holidays-ics US --years +10 --categories unofficial --output US_YYYY_YYYY_unofficial.ics creates a file literally named US_YYYY_YYYY_unofficial.ics. Use a descriptive filename without placeholder tokens, e.g. --output US_unofficial.ics.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/examples.md, line 697:

<comment>The `--output` flag takes a literal file path — the tool does not replace `YYYY` with actual years. Running `holidays-ics US --years +10 --categories unofficial --output US_YYYY_YYYY_unofficial.ics` creates a file literally named `US_YYYY_YYYY_unofficial.ics`. Use a descriptive filename without placeholder tokens, e.g. `--output US_unofficial.ics`.</comment>

<file context>
@@ -626,47 +626,100 @@ For installation instructions, see `uv` [documentation](https://docs.astral.sh/u
 
 ```shell
-holidays-ics US --years 2025-2027 --output us_holidays.ics
+holidays-ics US --years +10 --categories unofficial --output US_YYYY_YYYY_unofficial.ics

</file context>


</details>

```suggestion
holidays-ics US --years +10 --categories unofficial --output US_unofficial.ics

```

Generate a calendar containing only bank holidays:
Calendar for Switzerland, specific to the Canton of Zurich, localized in German, and saved to a custom file.

```shell
holidays-ics AT --years 2025 --categories bank
holidays-ics CH --subdiv ZH --language de --output CH_ZH_de.ics
```

Generate a calendar containing public and optional holidays:
The tool can also display the supported subdivisions, categories, and languages for a selected
country or market without generating an `.ics` file.

List the supported subdivisions:

```shell
holidays-ics CA --years 2025 --categories public,optional
holidays-ics CH --list-subdivisions
```

Generate a localized subdivision-specific calendar and save it to a custom file:
List the supported holiday categories:

```shell
holidays-ics CH --subdiv ZH --years 2025 --language de --output zurich_holidays.ics
holidays-ics US --list-categories
```

Generate a financial market holiday calendar:
List the supported languages:

```shell
holidays-ics XNYS --years 2025 --output nyse_holidays.ics
holidays-ics CA --list-languages
```
Loading
Loading