Recurrence
Try in Playground →RRULE-inspired recurring event patterns
Import
import { ... } from 'ts-time-utils/recurrence'; Examples
Create Recurrences
Define recurring event patterns
import { createRecurrence, recurrenceToString } from 'ts-time-utils/recurrence';
// Daily recurrence (every 2 days, 10 times)
const daily = createRecurrence({
frequency: 'daily',
interval: 2,
startDate: new Date('2025-01-01'),
count: 10,
});
console.log(daily.getNextOccurrence(new Date()));
console.log(daily.getAllOccurrences().length); // 10
// Weekly on specific days
const weekly = createRecurrence({
frequency: 'weekly',
interval: 1,
startDate: new Date('2025-01-01'),
byWeekday: [1, 3, 5], // Mon, Wed, Fri
});
console.log(recurrenceToString(weekly.rule));
// "Every week on Monday, Wednesday, Friday"
// Monthly on the 15th
const monthly = createRecurrence({
frequency: 'monthly',
interval: 1,
startDate: new Date('2025-01-01'),
byMonthDay: [15],
until: new Date('2025-12-31'),
});
const inQ2 = monthly.getOccurrencesBetween(
new Date('2025-04-01'),
new Date('2025-06-30')
);
console.log(`Q2 occurrences: ${inQ2.length}`); // 3