~/recurring-dates
docs

Weekly Frequency

Generate dates on specific weekdays. Select one or more days from MON through SUN.

Single Weekday

const result = generateRecurringDates({
  STARTS_ON: "01-01-2025",
  ENDS_ON: "31-01-2025",
  FREQUENCY: "W",
  WEEK_DAYS: ["MON"],
});

// text: "Every week on Monday"
// dates: ["06-01-2025", "13-01-2025", "20-01-2025", "27-01-2025"]

Multiple Weekdays

const result = generateRecurringDates({
  STARTS_ON: "01-01-2025",
  ENDS_ON: "31-01-2025",
  FREQUENCY: "W",
  WEEK_DAYS: ["MON", "WED", "FRI"],
});

// text: "Every week on Monday, Wednesday and Friday"

Bi-Weekly

Set INTERVAL: 2 to generate every other week:

const result = generateRecurringDates({
  STARTS_ON: "01-01-2025",
  ENDS_ON: "28-02-2025",
  FREQUENCY: "W",
  WEEK_DAYS: ["TUE", "THU"],
  INTERVAL: 2,
});

// text: "Every 2 weeks on Tuesday and Thursday"

Weekday Codes

SUNSunday
MONMonday
TUETuesday
WEDWednesday
THUThursday
FRIFriday
SATSaturday

Config Keys Used

STARTS_ON, ENDS_ON, FREQUENCY: "W", WEEK_DAYS, INTERVAL, EXCLUDE_DATES, FORMAT.