azuyalabs/yasumi
The easy PHP Library for calculating holidays
2.11.0
14M downloads/mo
#1036 most downloaded on Packagist
azuyalabs/yasumi
What this package is like to depend on
Last release 4 months ago
30 Mar 2026
Ships fairly regularly
a new release about every 8 months
Some releases are documented
notes for 10 of 23 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
23 releases · first in 2015
3 releases in the last 12 months
see the full history below
Release timeline
23 releases · Apr 2015 to Mar 2026Releases
latest 23-
2.11.030 Mar 2026Release notes
Open source →As the cherry blossoms begin to bloom and the season shifts toward renewal in many parts of the world, we are excited to announce a new release of Yasumi. This update focuses on expanding again the list of providers while improving the internal architecture and testing standards of the library.
The family of holiday providers continues to grow with the addition of Venezuela, San Marino, and Andorra. We have also introduced "Czechia" as a more concise provider alias to better align with current conventions.
New Providers
- Add Venezuela holiday provider
- Add San Marino holiday provider
- Add Andorra holiday provider
- Add "Czechia" provider as a short form of "Czech Republic" (#397)
Updates
- (Spain) Fix murciaDay minimum year in RegionOfMurcia test
- (Spain) Fix Extremadura test
- (South Korea) Fix holiday type test of HangulDay
- (South Korea) Fix twoDaysLaterNewYearsDay test
- (United Kingdom) Fix year boundary and test conditions
- (Slovakia) Fix excluded years in data providers
- (NYSE) Fix tests for NYSE provider
Notable Improvements
- Removed unnecessary internal sorting on
getHolidayand a few other updates to improve the overall performance and memory usage - Increase PHPStan analysis level to 8
- Add AGENTS.md file
- (Test) Upgrade to PHPUnit 11
- (Test) Tighten default range for random year generator
New Contributors ❤️
- @ppaulis made their first contribution
Full Changelog: 2.10.0...2.11.0
Release notes
Open source →Features
- Add Venezuela holiday provider
- Add San Marino holiday provider
- Add Andorra holiday provider
- Add "Czechia" provider as a short form of "Czech Republic" (#397)
Refactor
- Add sorting to getHolidayNames
- Add key validation to removeHoliday
- Remove unnecessary sorting on getHoliday
- Remove deprecated isHolidayNameNotEmpty method
- Remove redundant initialize interface method
- (Test) Add context to base assertion failure messages
- (Test) Tighten default range for random year generator
Documentation
- Improve contribution guidelines
Code Style
- Fix code styling issue
- (Netherlands) Use strict comparison operators
Testing
- (Spain) Fix murciaDay minimum year in RegionOfMurcia test
- (South Korea) Fix holiday type test of HangulDay
- (United Kingdom) Fix year boundary and test conditions
- (Slovakia) Fix excluded years in data providers
- (South Korea) Fix twoDaysLaterNewYearsDay test
- (Spain) Fix Extremadura test
- (Nyse) Fix tests for NYSE provider
Other
- (Test) Add missing provider test suites
- (Test) Upgrade to PHPUnit 11
- Increase PHPStan analysis level to 8
- Add AGENTS.md file
- (Deps) Bump actions/stale from 10.1.1 to 10.2.0 (#398)
-
2.10.022 Jan 2026Release notes
Open source →Yasumi v2.10.0 is only a minor (maintenance) release which covers the end of support of PHP 8.1 and some internal documentation updates.
Updating to the latest version is always recommended, however if you are still on PHP 8.1, running Yasumi v2.9.0 is perfectly fine.
Full Changelog: 2.9.0...2.10.0
Release notes
Open source →Documentation
- Update list of supported versions
Other
- Drop PHP 8.1 support
-
2.9.029 Dec 2025Release notes
Open source →Christmas may be over, but we still have a small present to wrap up the year: Yasumi 2.9.0. This release brings a variety of holiday provider improvements, enhancements, and bug fixes. And of course: support for PHP 8.5.
Highlights of version 2.9.0:
New Providers
- Slovenia - Complete holiday coverage for Slovenia
- NYSE - A custom holiday provider that can help you to track the holidays and closures for the New York Stock Exchange.
Updates
- Changes to a number of holidays in Slovakia
- Included (non-official) holidays for the Netherlands in the period between 2026 and 2028
Notable Improvements
- Added PHP 8.5 compatibility
- Improved performance and memory utilization
- Enhanced documentation and code quality
- Fixes for New Zealand
New Contributors ❤️
- @Stollie made their first contribution
- @mgwebgroup made their first contribution
- @soukicz made their first contribution
- @timeshifting made their first contribution
Release notes
Open source →Features
- (Netherlands) Add new holiday-equivalent days 2026 till 2028 (#393)
- (Slovakia) Slovak State Consolidation Package for 2025 (#389)
- Add Slovenia holiday provider (#387)
- Add New York Stock Exchange (NYSE) provider (#384)
- (New Zealand) Add Matariki public holiday (#378)
Fixes
- (New Zealand) Add missing namespace in the MatarikiTest
- Various typos
Refactor
- Use strict comparison with equal types
Performance
- Optimize filter count()
- Fix needless sorting on every holiday insert
Documentation
- Add requirements and installation/quick start sections
- Update list of supported versions
Testing
- (Poland) Fix Christmas Eve test
- (Slovakia) Fix failing tests for the years 2025 and 2026
Other
-
2.8.013 Jul 2025Release notes
Open source →After a very long time finally a new Yasumi release! Yasumi 2.8.0 includes numerous of holiday provider improvements, enhancements and bug fixes. As of this version, we will be using git-cliff and conventional commits. This helps to maintain a readable, standardized commit history, and enables automated versioning and changelog generation.
As such the CHANGELOG.md file will now only include changes made since version 2.8.0 and the prior list of changes are 'archived' in the CHANGELOG-ARCHIVE.md file.
Highlights of version 2.8.0
New Providers
- Bulgaria - Complete holiday coverage for Bulgaria
- Iran - Added support for Iranian holidays
Major Features
- Brazil now supports Black Consciousness Day
- Enhanced Canada support with Nunavut Day for Nunavut province
- Ireland adds Saint Brigid's Day support
- Mexico includes new Transmission of Federal Executive Power Holiday
- Poland now includes Christmas Eve as a public holiday starting 2025
Notable Improvements
- Better handling of substitute holidays and observance classifications
- Dropped PHP 8.0 support, added PHP 8.4 compatibility
- Enhanced documentation and code quality
- Extensive fixes for Ireland, Scotland, Ukraine, Mexico, Portugal, and Germany
New Contributors ❤️
- @attepulkkinen made their first contribution
- @dependabot[bot] made their first contribution
- @fbett made their first contribution
- @hamrak made their first contribution
- @mtbossa made their first contribution
- @thrashzone13 made their first contribution
Release notes
Open source →Features
- (Canada) Nunavut Day for the Nunavut province
- Add Bulgaria provider
- (Latvia) Add Pentecost and Mother's Day (#368)
- (Argentina) Movable holidays (#367)
- (Poland) Christmas Eve is a public holiday from 2025 (#371)
- (Ireland) Saint Brigid's Day (#374)
- (Lithuania) Mother's Day and Father's Day (#370)
- (Mexico) Add Transmission of Federal Executive Power Holiday (#361)
- (Brazil) Black Consciousness Day (#365)
- (Germany) Day of Liberation is celebrated in Berlin in 2025 too.
- (Germany) Add Assumption of Mary holiday to Bavaria
- Add Iran provider (#341)
Fixes
- (Brazil) Add passing $this->locale for calculateProclamationOfRepublicDay() (#376)
- (Scotland) Easter Monday is not a bank holiday (#372)
- (Ireland) New Year's Day on a Saturday also gives a substitute holiday (#375)
- (Ukraine) Ukraine 2021-2023 changes (#369)
- (Ireland) Easter Sunday is not an official holiday (#373)
- (Mexico) Mark several holidays as observance (#362)
- (Mexico) Mark three holidays as official (#359)
- (Portugal) Corpus Christi is official (#363)
- (Czech-republic) Christmas Eve is official (#366)
- (Germany) Pentecost is not an official holiday - except in Brandenburg (#337)
- (Slovakia) Update rules for Anniversary of the Declaration of the Slovak Nation (#340)
Refactor
- (South Korea) Simplify code by using early returns
- Fix use of concatenation with mixed types
- Make the Holiday class implement the Stringable interface
- Remove astray var_dump use
- Update methods visibility in multiple Providers (#332)
Documentation
- Include supported PHP versions with security updates
- Move DCO fulltext to its own file
- Clean up examples and correct spelling mistakes
- Fix parameter types that do not match signature
- Add announcement of new documentation site
- Remove duplicate commit messages from the changelog
- Sort the first time contributors alphabetically (a-z)
- Add initial git-cliff configuration
Code Style
- Fix code styling issues
- Fix code styling and formatting issues (#338)
Testing
- (Portugal) Fix official holidays tests
- Fix test for the previous function
- Increase memory_limit, to be able to run all tests on MacOS
- (Portugal) Fix issue with Republic Day failing for the restored years between 2013 and 2016
Other
- Bump composer package versions to latest installed versions
- Remove phpinsights config
- Remove Phan static analysis tool
- Update maintainer information in composer.json
- Disable enforcing the Override attribute by Psalm
- Report unused classes, etc by Psalm as informational
- Drop PHP 8.0 support and add support for PHP 8.4
- Bump package versions to latest working versions
- Upgrade PHPStan to v2.0
- Replace deprecated PHPstan configuration option
- Add dependabot configuration file
- Exclude phpactor configuration file from Git
- Use shared PHP CS Fixer config
- Pin version of PHP CS Fixer to 3.46 as latest (3.47) release produces undesired changes
-
2.7.007 Jan 2024Release notes
Open source →A new release for the new year! In addition to numerous improvements, bug fixes and code enhancements, this release also includes a new country: Mexico. Also support for PHP 7.4 (and older) is dropped and support for PHP 8.3 is added.
Below you will find a summary of the most significant changes. For more details, please check the CHANGELOG file.
Implemented Enhancements
- Mexico Provider #329 (Luis Gonzalez).
- From 2024, Romania will officially include the holidays of St. Johns ('Sfântul Ioan Botezătorul') and Epiphany ('Bobotează').
#310 (AngelinCalu) - For the German state of Mecklenburg-Western Pomerania, International Women's Day is considered to be officially
observed. #311 (ihmels) - Recently, the South Korean government announced a bill to apply alternative public holidays to Buddha's Day
and Christmas Day.
#314 (barami) - Refactor the rules for calculating holidays in South Korea based on the history of holiday changes.
(#314) barami - Update links to related documentation in the South Korea provider's note and added links to conversion utilities.
#314 (barami) - Optimize the method for the Emperor's birthday calculation in Japan.
- For Croatia, extract Day of Antifascist Struggle calculation to a private method and simplify Statehood Day calculation
to make it more concise. - Simplify the conditions for the Coming of Age day (Japan) calculation.
- Simplify the calculation of Carnival in Argentina, Brazil and the Netherlands to reduce duplication.
Resolved Issues
- For South Korea, some of the past dates for Buddha's Day, Chuseok, Armed Forces Day
and United Nations Day were incorrectly calculated during for certain periods. #314 (barami) - The holiday
twoDaysLaterNewYearsDayof South Korea has been removed from 1990, however the unit test for the name
and holiday type allowed the possible testing range to include the year 1990. - New Years Day tests for South Korea were failing due to incorrect date checks.
- The Easter Date calculation resulted in wrong values for the year 2025, due to an incorrect rounding for the lunar
correction when the calendar extension is not used. #326 (rChassat)
Removed
- Denmark will abolish Great Prayer Day ('store bededag') from 2024. #308 (c960657)
- Summertime and Wintertime in the Netherlands and Denmark as these can't be reliably established for historical dates and
aren't true holidays in the context of Yasumi. Refer to this discussion
for further details and rationale. #322 - PHP 7.4 support.
New Contributors
-
2.6.026 Apr 2023Release notes
Open source →There is a fresh release at last! I really believe in releasing software as frequently as possible, yet I somehow neglected to do so for more than a year. Even though a lot of work was completed during that time, I was just unable to pick the ideal moment to make an official release.
Despite the fact that no new countries are included in this release, there are several upgrades, corrections, and refinements that make Yasumi 2.6 worthwhile to upgrade to.
Below you will find a summary of the most significant changes. For more details, please check the CHANGELOG file of this project or navigate to the v2.6 release blog post.
Implemented Enhancements
- Bank holiday for King Charles III’s Coronation in the United Kingdom. #305 (Freshleaf Media)
- Bank holiday for Queen Elizabeth II’s State Funeral on September 19, 2022, for the United Kingdom. #287 (Freshleaf Media)
- National Day of Mourning for Australia. #288 (FuzzyWuzzyFraggle).
- In Japan, Marine Day was rescheduled to July 23 as the 2020 Tokyo Olympics took place. The rescheduled Marine Day for
2021 was included, but not the original rescheduled day for 2020. - Slovak translations for a couple of popular holidays. #298 (Jozef Grencik)
Resolved Issues
- Liberation Day for The Netherlands is only an official holiday every 5 years #280 (Daan Roet).
- Pentecost Monday in France was only recognized as an official holiday until 2004. Since 2004, it is considered a
special holiday, a so called 'working holiday'. Hence, it is therefore classified as an observed holiday in Yasumi
from 2004 and forward. #281. - The holiday of Epiphany (6th of January) was incorrectly categorized as
otherand changed to an official holiday in
Baden-Württemberg, Bavaria and SaxonyAnhalt. #296 (Anna Damm). - The year 1988 was incorrectly omitted from observing the Emperor's birthday in Japan.
- The tests for Remembrance Day, Malvina's Day and National Sovereignty Day in Argentina were considered for all years;
however, these have only been celebrated since their establishment. - Tests for New Year's Day, Spring Bank Holiday, and May Day Holiday in the United Kingdom (England, Wales, Northern
Ireland, and Scotland), as well as Battle of the Boyne in Northern Ireland, were considered for any calendar year;
however, these are celebrated only since a particular calendar year. - In version 2022f of the
tzdb, a correction for 1947 was made for the summertime transition in Denmark to April
the 6th. Various corrections have been made to accommodate for change.
New Contributors
- @jwojtyra-aterian made their first contribution in #277
- @DRoet made their first contribution in #280
- @freshleafmedia made their first contribution in #287
- @jozefgrencik made their first contribution in #298
- @AnnaDamm made their first contribution in #297
- @FuzzyWuzzyFraggle made their first contribution in #288
- @SupraSmooth made their first contribution in #292
- @tylershuster made their first contribution in #282
Full Changelog: 2.5.0...2.6.0
-
2.5.030 Jan 2022Release notes
Open source →It is that time again; the time for a new release!
We have two more countries, and for a few countries new holidays are added, or regulations have been revised. Even more importantly, support for PHP 7.3 has been dropped, so all the more reason to upgrade to version 2.5.
The documentation site has undergone a few changes, specifically to support readers with disabilities. And lastly, head over to GitHub Discussions to ask questions or share your ideas.
Below you will find a summary of the most significant changes. For more details, please check the CHANGELOG file of this project or navigate to the v2.5 release blog post.
Implemented Enhancements
- Argentina Provider #264 (Nader Safadi).
- Turkey Provider #250.
- World Children's Day for Thuringia (Germany) #260.
- New National Day for Truth and Reconciliation to Canada #257 (Owen V. Gray).
- New Juneteenth National Independence Day to USA #253 (Mark Heintz).
- The Korea Tourism Organization's holiday guide link was added to the source of South Korea Provider #255 (barami).
- Mothering Day for the United Kingdom #266.
- Revised rules to calculate substitution holidays of South Korea to apply the newly enacted law on June 2021 #255 (barami).
- Separate
calculateSubstituteHolidaysmethod of South Korea Provider tocalculateSubstituteHolidays
andcalculateOldSubstituteHolidays#255 (barami) - Refactored the tests of South Korea provider to testing substitution holidays #255 (barami).
- Moved the United Kingdom Spring Bank Holiday to June 2nd and added Platinum Jubilee bank holiday on June 3rd for 2022 #270 (Dan).
Resolved Issues
- All Saints Day (German: 'AllerHeiligen') was classified as
Otherfor states celebrating this day. This was incorrect (or officially changed) and has been altered toOfficial#263. - Corpus Christi (German: 'Fronleichnam') was classified as
Otherfor states celebrating this day. This was incorrect (or officially changed) and has been altered toOfficial#252. - The test for the USA in that juneteenthDay was considered for all years: it is only celebrated since 2021.
- Definition of Canada Day in Canada in that, Canada Day is July 1 if that day is not Sunday, and July 2 if July 1 is a Sunday #257 (Owen V. Gray).
Removed
- PHP7.3 Support as it is End of Life.
-
2.4.009 May 2021Release notes
Open source →Yasumi v2.4 is a minor (maintenance) release which includes Georgia as a new Holiday Provider and several stability and bug fixes for issues discovered since v2.3.
Below you will find a summary of the most significant changes. For more details, please check the CHANGELOG file of this project or navigate to the v2.4 release blog post.
Implemented Enhancements
- Georgia Provider #245 (Zurab Sardarov)
- Pentecost (Sunday) to Germany #225 (Patrick Root)
- Rescheduled exceptional Japanese holidays for Olympic Games 2020 after COVID-19 #240 (tanakahisateru)
- Some improvements/refactoring of the Swiss holiday providers (including links to sources) #233 (Quentin Ligier)
- Allow the
WEEKEND_DATAconstant in provider classes to be overridden. #235 (Mahmood Dhia) - Travis/StyleCI/Scrutinizer services replaced by Github Actions.
- PHP8 Support #238 (Stéphane)
- Added Infection PHP to perform mutation testing.
- Added PHPStan to the dependencies allowing for local analysis.
- Removed PHP 7.2 Support (PHP 7.2 is EOL)
- Removed Faker library as it has been sunset #238 (Stéphane)
.gitattributesfile to reduce the size of a release package #237 (Stéphane)
Resolved Issues
- The test for North West Territories (Canada) in that the National Indigenous Peoples Day was considered for all years: it is only celebrated since 1996.
- The test for NovaScotia (Canada) in that novaScotiaHeritageDay was considered for all years: it is only celebrated since 2015.
- The test for Ontario (Canada) in that IslanderDay was considered for all years: it is only celebrated since 2009.
- The test for Marine Day (Japan) as the rescheduled day was moved to 2021 (due to the COVID-19 pandemic).
- Typo for Estonian Day of Restoration of Independence #228 (Reijo Vosu)
- The substitute holiday unit test as the use of the
at()method will be deprecated in PHPUnit 10. - Incorrect invocation of
Fribourg::calculateBerchtoldsTag()andFribourg::calculateDecember26th(Switzerland)
-
2.3.022 Jun 2020Release notes
Open source →You have probably seen the new documentation website already, and following I am pleased to announce a new release of Yasumi is available as of today for download or using your Composer configuration. Yasumi v2.3 is a minor release which brings two new providers to the pool (Canada and Luxembourg) and several important stability and bug fixes for issues discovered since v2.2.
Below you will find a summary of the most significant changes. For more details, please check the CHANGELOG file of this project or navigate to the v2.3 release blog post.
Implemented Enhancements
- Added Canada Provider #215 (lux)
- Added Luxembourg Provider #205 (Arkounay)
- Holiday providers for states of Austria. #182 (aprog)
- Added All Souls Day to Lithuania #227 (norkunas)
- Catholic Christmas Day is a new official holiday since 2017 in the Ukraine. #202
- Additional Dates for Australia/Victoria:AFL Grand Final Friday #190 (brucealdridge)
- Substituted holidays (holidays that fall in the weekend) for Australia. #201 (c960657)
- Added New Years Eve to Germany #226 (Patrick-Root)
- Day of Liberation (Tag der Befreiung) is a one-time official holiday in 2020 in Berlin (Germany).
- Catalan translations for holidays in Catalonia, Valencian Community, Balearic Islands and Aragon #189 (c960657)
- Added American English spelling for Labour Day #216
- Added French translation for Second Christmas Day #188 (Arkounay)
- Renamed the Australian states to be full names instead of abbreviations to be in line with other Holiday Providers #214
- Statehood Day is celebrated at a new date since 2020 in Croatia. #203 (krukru)
- Independence Day is no longer an official holiday since 2020 in Croatia. #203 (krukru)
- Homeland Thanksgiving Day has been renamed to "Victory and Homeland Thanksgiving Day and the Day of Croatian Defenders" since 2020 in Croatia. #203 (krukru)
- Remembrance Day for Homeland War Victims and Remembrance Day for the Victims of Vukovar and Skabrnja is a new official holiday since 2020 in Croatia. #203 (krukru)
- Second International Workers Day in Ukraine was an official holiday only until 2018. #202
- Holiday names in Danish, Dutch, and Norwegian are no longer capitalized. #185 (c960657)
Resolved Issues
- Fixed Ukraine holidays on weekends. These days need to be substituted. #202
- Fixed issue if the next working day happens to be in the next year (i.e. not in the year of the Yasumi instance) #192 (tniemann)
- Fix locale fallback for substitute holidays #180 (c960657)
- Fixed issue if the previous working day happens to be in the previous year (i.e. not in the year of the Yasumi instance)
- Fixed compound conditions that are always true by simplifying the condition steps.
-
2.2.006 Oct 2019Release notes
Open source →With the summer having come to an end, you may feel reinvigorated to give your PHP project(s) a clean up. And why not upgrade Yasumi to the next version while you are at it? Because from today v2.2 is officially available!
Below you will find a summary of the most significant changes. For more details, please check the CHANGELOG file of this project or navigate to the v2.2 release blog post.
Implemented enhancements
- Holiday providers for England, Wales, Scotland and Northern Ireland #166 (c960657)
- Holiday Provider for South Korea. #156 (blood72)
- Translation for the Easter holiday for the 'fr_FR' locale #146 (pioc92)
- Translation for the Pentecost holiday for the 'fr_FR' locale #145 (pioc92)
- Late Summer Bank Holiday in United Kingdom prior to 1965 #161 (c960657)
- Observance holidays for Sweden #172 (c960657)
- Updated the translation for the All Saints holiday for the 'fr_FR' locale #152 (pioc92)
- Updated the translation for the Armistice holiday for the 'fr_FR' locale #154 (pioc92)
- Updated the translation for the Victory in Europe holiday for the 'fr_FR' locale #153 (pioc92)
- Updated the translation for the Assumption of Mary holiday for the 'fr_FR' locale #155 (pioc92)
- Updated the translation for Christmas Day for the 'nl_NL' locale #160 (pioc92)
Resolved issues
- Late Summer Bank Holiday in 1968 and 1969 in United Kingdom #161 (c960657)
- Fixed one-off exceptions for May Day Bank Holiday in 1995 and 2020 and Spring Bank Holiday in 2002 and 2012 (United Kingdom) #160 (c960657)
- Fixed revoked holidays in Portugal in 2013-2015 #163 (c960657)
- Fixed spelling issues in the Danish translation for Second Christmas Day. #167 (c960657)
- Corpus Christi is official in Poland #168 (c960657)
- Liberation Day is official in the Netherlands #169 (c960657)
- Typos in Easter Monday and Republic Day for the 'it_IT' locale #171 (c960657)
- Good Friday is not official in Brazil #174 (c960657)
-
2.1.029 Mar 2019Nothing published for this version
-
2.0.011 Jan 2019Nothing published for this version
-
1.8.111 Jan 2019Nothing published for this version
-
1.8.021 Feb 2018Nothing published for this version
-
1.7.011 Dec 2017Nothing published for this version
-
1.6.107 Feb 2017Nothing published for this version
-
1.6.006 Jan 2017Nothing published for this version
-
1.5.025 Nov 2016Nothing published for this version
-
1.4.004 Jun 2016Nothing published for this version
-
1.3.002 May 2016Nothing published for this version
-
1.2.004 Apr 2016Nothing published for this version
-
1.1.010 Mar 2016Nothing published for this version
-
1.0.021 Apr 2015Nothing published for this version