date-recurrence
Small date recurrence utility for chrono::NaiveDate.
Supports daily, every-N-days, weekly, monthly, semiannual, annual, and biennial schedules.
Example
use chrono::{NaiveDate, Weekday};
use date_recurrence::{DateRange, Frequency, Schedule};
let schedule = Schedule::new(
NaiveDate::from_ymd_opt(2026, 1, 1).unwrap(),
Frequency::Weekly(Weekday::Mon),
);
let range = DateRange::new(
NaiveDate::from_ymd_opt(2026, 1, 1).unwrap(),
NaiveDate::from_ymd_opt(2026, 1, 15).unwrap(),
).unwrap();
let dates = schedule.occurrences_between(range);