~/recurring-dates
docs

Changelog

All notable changes to recurring-dates. Follows Keep a Changelog and Semantic Versioning.

v1.0.3

Latest2026-03-06
✨ Added
  • Constant Exports: New Frequency object — Frequency.DAILY, Frequency.WEEKLY, Frequency.MONTHLY, Frequency.YEARLY
  • Constant Exports: New Day object — Day.MON, Day.TUE, Day.WED, Day.THU, Day.FRI, Day.SAT, Day.SUN
  • Constant Exports: New Ordinal object — Ordinal.FIRST, Ordinal.SECOND, Ordinal.THIRD, Ordinal.FOURTH, Ordinal.FIFTH, Ordinal.LAST
  • Constant Exports: New Month object — Month.JANMonth.DEC
  • Constant Exports: New Format object — Format.DD_MM_YYYY, Format.MM_DD_YYYY, Format.YYYY_MM_DD, Format.MM_SLASH_DD_SLASH_YYYY, Format.DD_SLASH_MM_SLASH_YYYY, Format.MMM_DD_YYYY
  • Constant Exports: New Recurrence namespace combining all of the above under a single import
🐛 Fixed
  • package.json exports map now includes a "types" condition so TypeScript can resolve index.d.ts when moduleResolution is bundler or node16/nodenext
🔄 Changed
  • TIMEZONE field added to RecurringDatesConfig interface in index.d.ts
  • index.d.ts now fully typed with const declarations for all new constant objects

v1.0.2

2026-03-05
✨ Added
  • Timezone Support: New TIMEZONE configuration option for IANA timezone support
  • Timezone Support: Global user support with timezone-aware date generation
  • Timezone Support: New timezone utility functions:
  • Tests: New timezone.test.js test suite with 24 comprehensive timezone tests
  • Tests: All 154 tests passing across 8 test suites (timezone, daily, weekly, monthly, yearly, format, edge-cases, validation)
  • Tests: Tests for timezone validation, offset calculation, date formatting, and timezone compatibility with all frequency patterns
  • Tests: Full test coverage including edge cases: null/undefined timezone, invalid timezones, timezone-aware date generation
  • Documentation: New "Timezone Support" section in README with examples
  • Documentation: Timezone utilities documentation and usage examples
  • Documentation: Common timezone reference list with examples
  • Documentation: New TIMEZONE_USECASES.md guide with 10+ real-world practical examples:
  • Updated README with use cases overview and link to detailed guide
🚀 Improved
  • Enhanced configuration validation with timezone support
  • Better error messages for invalid timezone identifiers
  • Support for global scheduling applications with multi-timezone users

v1.0.1

2026-03-05
✨ Added
  • Documentation: CONTRIBUTING.md: Comprehensive contributor guide including:
  • README Enhancements: New "Testing" section documenting comprehensive test coverage:
🔄 Changed
  • Updated CHANGELOG to new format with emoji indicators (✨, 🚀, 🐛, 🔄, ❌, 🔒, ⚠)
  • Enhanced release documentation structure following [Keep a Changelog](https://keepachangelog.com/) best practices
  • Improved v1.0.0 release notes with detailed feature breakdown and section organization

v1.0.0

2024-05-25
✨ Added
  • Core Features: Initial release of recurring-dates package (migrated from the-recurring-dates)
  • Core Features: Three main exported functions:
  • Recurrence Patterns: Daily recurrence (FREQUENCY: "D") with interval support
  • Recurrence Patterns: Weekly recurrence (FREQUENCY: "W") with ISO weekday filters (MON-SUN)
  • Recurrence Patterns: Monthly recurrence (FREQUENCY: "M") with specific month dates or ordinals
  • Recurrence Patterns: Yearly recurrence (FREQUENCY: "Y") with month filtering and ordinal support (FIRST, SECOND, THIRD, FOURTH, FIFTH, LAST)
  • Recurrence Patterns: Support for custom intervals (e.g., every 2 weeks, every 3 months)
  • Recurrence Patterns: Explicit date exclusion via EXCLUDE_DATES configuration
  • Configuration Options: STARTS_ON: Required start date with FORMAT parsing
  • Configuration Options: ENDS_ON: Required end date with validation
  • Configuration Options: FREQUENCY: Recurrence type (D/W/M/Y)
  • Configuration Options: INTERVAL: Cycle skipping (default: 1)
  • Configuration Options: MONTH_DATES: Array of month days for monthly/yearly patterns
  • Configuration Options: WEEK_DAYS: ISO weekday codes for weekly/yearly patterns
  • Configuration Options: WEEK_ORDINALS: Ordinal selectors for yearly patterns
  • Configuration Options: MONTH_NAMES: Month filter for yearly patterns
  • Configuration Options: EXCLUDE_DATES: Dates to skip after generation
  • Configuration Options: FORMAT: Input/output date format (default: DD-MM-YYYY)
  • Developer Features: Comprehensive configuration validation system with detailed error messages
  • Developer Features: User-friendly error returns: { dates: [], error } on validation failure
  • Developer Features: Utility functions for date manipulation, helper functions, presets, and validation
  • Developer Features: Full TypeScript type definitions (index.d.ts)
  • Developer Features: Multiple export formats: ESM (default), UMD for CDN/legacy builds
  • Developer Features: Development environment setup with Vite for fast builds
  • Developer Features: React integration with peer dependency support (React 17+/18+)
  • Testing & Quality: Comprehensive test suite with 130 passing test cases:
  • Test coverage across all core functionality
  • Documentation: Comprehensive README with installation, quick start, and config reference
  • Documentation: Usage examples for Vanilla JS and React
  • Documentation: CDN integration examples
  • Documentation: Interactive demo website at https://recurring-dates.thehardik.in
🚀 Improved
  • Clean, vanilla JavaScript implementation with zero external dependencies (React is optional peer dependency)
  • Simplified, intuitive API with three main functions covering all use cases
  • Non-blocking, efficient date generation using native Date() API
  • Lightweight package size suitable for browser and Node.js environments
  • Enhanced documentation with clear examples and edge case handling
🔄 Changed
  • Major Refactoring: Migrated codebase from the-recurring-dates to use vanilla JavaScript Date() API instead of external date libraries
  • Major Refactoring: Package renamed from the-recurring-dates to recurring-dates for better brand identity
  • Major Refactoring: Restructured codebase with modular organization:
  • Breaking Changes (from previous package): API simplified to three main functions instead of multiple exports
  • Breaking Changes (from previous package): Configuration object structure updated for clarity
  • Breaking Changes (from previous package): Error handling format changed to { dates: [], error } for consistency