world_holidays 2.1.2
world_holidays: ^2.1.2 copied to clipboard
Generated multi-country holiday information with offline-first lookup and optional hosted updates.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
2.1.2 - 2026-08-21 #
Changed #
- Require official source metadata for reviewed holiday removals.
Fixed #
- Removed South Korea's incorrect 2024-09-19 Chuseok substitute holiday.
- Added South Korea's 2025-01-27 temporary public holiday.
- Removed South Korea's incorrect 2025-01-31 Lunar New Year substitute holiday.
Migration #
- No Dart API migration is required from 2.1.1.
- Upgrade the package to replace the bundled Korean holiday data.
- A successful
updateCountryHolidays('KR')replaces an existing cached Korean payload; useclearCache()when bundled data must be used without relying on the network.
2.1.1 - 2026-08-21 #
Added #
- Added official source metadata for every reviewed holiday upsert.
- Added a generated curated-year drift report so newly calculated public holiday dates trigger review instead of being hidden by authoritative data.
- Added a dedicated holiday-correction issue form.
Changed #
- Run the current holiday synchronization workflow weekly throughout the year.
Fixed #
- Added South Korea's 2026 Labor Day on May 1.
- Added South Korea's 2026 Constitution Day on July 17 following its reinstatement as a public holiday.
- Preserved the 2026 local election and the existing 2027 Constitution Day substitute holiday.
Migration #
- No API migration is required from 2.1.0.
- For 2.0.1 users, follow the 2.0.1 to 2.1.2 migration guide.
- Upgrade the package for corrected synchronous bundled queries.
- Call
updateCountryHolidays('KR')to replace a cached Korean payload immediately after the hosted API is deployed.
2.1.0 - 2026-08-21 #
Added #
- Generated 2027-2028 public holidays, extending bundled coverage to 2024-2028 with 841 records across 10 countries.
- Added the local
python-holidayssynchronization pipeline, reviewed overrides, deterministic tests, and synchronized hosted/Dart outputs. - Added
updateCountryHolidays()andupdateAllHolidays()with structured source, success, fallback, and error results. - Added cache-aware
isHolidayAsync(),isTodayHolidayAsync(), andgetNextHolidayAsync()methods. - Added the inclusive
getHolidaysInRange()query.
Changed #
- Unknown holiday type values now throw
FormatExceptioninstead of silently decoding asNATIONAL. - Package-produced lists and decoded description maps are immutable.
updateHolidays()now delegates to structured update methods and preserves successful countries when another country fails.- Documentation now distinguishes bundled synchronous queries from cache-aware asynchronous queries and explicit networking.
Fixed #
- Recomputed all hosted payload, country, and aggregate holiday counts.
- Made hosted JSON and bundled Dart data deterministic generated outputs.
- Updated GitHub Pages metadata, examples, and year labels for 2024-2028.
- Updated stale country tests, multilingual description tests, and the Flutter example to compile against the 2.x description model.
Migration #
- Use
descriptionEn,descriptionKo, orgetDescription()instead of treatingHoliday.descriptionas a string. - Catch
FormatExceptionwhen decoding untrusted type values. - Prefer structured update methods when callers need partial-failure details.
2.0.1 - 2025-12-05 #
Fixed #
- π°π· Updated KR Holidays: Added missing 2026 holidays (μΌμΌμ λ체ν΄μΌ, λ체ν΄μΌ, μ§λ°©μ κ±°, κ΄λ³΅μ λ체ν΄μΌ, κ°μ²μ λ체ν΄μΌ)
- π Data Sync: Synchronized KR holidays data with kr.json API
2.0.0 - 2025-09-12 #
Added #
- π 6 New Countries: China (CN), Vietnam (VN), Malaysia (MY), Thailand (TH), Canada (CA), Brazil (BR), Taiwan (TW)
- π Multilingual Support: English and Korean descriptions for all holidays
- π Expanded Coverage: 508 total holidays across 10 countries
- π Enhanced Data Structure: Multilingual description objects with
enandkofields - π οΈ Auto-Generation: Python script for automatic Dart code generation from JSON data
Changed #
- π Increased Scale: From 4 countries to 10 countries
- π More Holidays: From 178 to 508 total holidays
- π§ Improved API: Enhanced Holiday model with multilingual description support
- π Updated Documentation: All examples and documentation reflect new countries and features
Technical Improvements #
- π Python Automation: JSON to Dart code generation script
- π Data Consistency: Unified data structure across all countries
- π Web Interface: Updated HTML interface with new countries and multilingual support
- π Better Statistics: Real-time country and holiday counts
Data Coverage #
- π¨π³ China: 72 holidays (includes Lunar holidays and Golden Week)
- π»π³ Vietnam: 44 holidays (includes Lunar holidays and national observances)
- π²πΎ Malaysia: 44 holidays (includes multi-cultural and religious holidays)
- πΉπ Thailand: 61 holidays (includes Buddhist and royal holidays)
- π¨π¦ Canada: 33 holidays (includes federal and provincial holidays)
- π§π· Brazil: 51 holidays (includes Carnival and national observances)
- πΉπΌ Taiwan: 57 holidays (includes Lunar holidays and national observances)
1.0.0 - 2025-09-09 #
Added #
- π Initial release of World Holidays package
- π³οΈ Support for 4 countries: South Korea (KR), United States (US), Japan (JP), Germany (DE)
- π Complete holiday data for 2024-2026 (178 holidays total)
- π Offline-first approach with local fallback data
- π Optional online updates from GitHub Pages API
- β‘ Efficient caching with SharedPreferences (7-day expiry)
- π Holiday lookup and filtering capabilities
- π Comprehensive test coverage
- π Detailed documentation and examples
Features #
getHolidays()- Get holidays for specific country/yearupdateHolidays()- Update data from online sourceisHoliday()- Check if specific date is holidayisTodayHoliday()- Check if today is holidaygetNextHoliday()- Find next upcoming holidaygetSupportedCountries()- List supported countriesgetSupportedYears()- List supported years (2024-2026)clearCache()- Clear cached data
Data Coverage #
- π°π· South Korea: 48 holidays (includes Lunar holidays and substitutes)
- πΊπΈ United States: 31 holidays (Federal holidays)
- π―π΅ Japan: 54 holidays (National holidays with substitutes)
- π©πͺ Germany: 45 holidays (National and regional holidays)
Technical Details #
- Minimum Flutter version: 3.0.0
- Minimum Dart SDK: 3.0.0
- Dependencies: http, shared_preferences
- API endpoint: https://beomq.github.io/world_holidays/api
- Cache duration: 7 days
- Network timeout: 10 seconds