recurrence-expand
Expand an RRULE or 5-field cron into concrete occurrences with DST handling, exclusions and conflict detection — Expands an RFC 5545 RRULE (FREQ DAILY/WEEKLY/MONTHLY/YEARLY, INTERVAL, COUNT, UNTIL, BYDAY with ordinals, BYMONTHDAY, BYMONTH, BYSETPOS, WKST; DTSTART with TZID; EXDATE) or a crontab(5) expression into up to 366 occurrences in a time zone, with the UTC instant of each, DST gap or overlap flags, caller blackout dates, a plain-English reading, and optionally the occurrences where it collides with a
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"kind": "<kind>",
"rule": "<rule>"
},
"name": "recurrence-expand"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Local end of the window, inclusive. | |
| from | No | Local start of the output window; required for cron, default DTSTART for rrule. | |
| kind | Yes | ||
| rule | Yes | rrule: 'DTSTART;TZID=America/New_York:19970902T090000\nRRULE:FREQ=DAILY;COUNT=10\nEXDATE;TZID=America/New_York:19970903T090000' or just 'FREQ=...' with dtstart. cron: '*/15 9-17 * * 1-5' (dom and dow both restricted match if either does). | |
| limit | No | Maximum occurrences returned (default 20). | |
| other | No | A second rule to compare; conflicts are occurrences whose intervals overlap (equal instants when both durations are 0). | |
| dtstart | No | Local DTSTART when the rule text has none. | |
| exdates | No | Extra excluded local date-times (YYYY-MM-DDTHH:MM[:SS]) or dates (YYYY-MM-DD, excludes that day). | |
| timeZone | No | IANA zone for local times (required for cron; for rrule unless DTSTART has TZID or Z). | |
| blackouts | No | Inclusive local date ranges to drop (holidays, freezes). | |
| durationMinutes | No | Occurrence length, for conflict overlap. |