RRULE expander: RFC 5545 recurrence rule to concrete occurrence dates
RRULE expander: expand an RFC 5545 recurrence rule into concrete occurrence timestamps. Accepts an RRULE string with DTSTART, an IANA time zone, and optional EXDATE and RDATE lists, and returns up to 200 occurrences as both local wall-clock times and UTC instants. Supports FREQ, INTERVAL, COUNT, UNTIL, BYDAY, BYMONTHDAY, BYMONTH, BYSETPOS and WKST. Occurrences moved by a DST gap carry gap: true. Rules needing over 50,000 candidate evaluations are rejected.
Output (data): occurrences [{local, instant, epoch_ms, offset, dst, gap (present, true, only when a DST gap shifted the occurrence forward)}], count, truncated, rule (the parsed rule: freq, interval (integer), wkst, and, when given, count, until, byday [], bymonthday [], bymonth [], bysetpos [], byhour [], byminute [], bysecond []), zone.
Deterministic: identical input returns identical output, so the response is served with Cache-Control: private, max-age=31536000, immutable (the paying client may cache it indefinitely; shared caches must not, because the response is paid).
Price: $0.05 USDC per call (x402, Base). Route contract version 1.0.0. Docs: https://api.duoleads.com/docs#time-rrule
Request
- Base URL: https://api.duoleads.com
- URL: https://api.duoleads.com/v1/time/rrule
- Auth: none declared
Query parameters
RFC 5545 RRULE, e.g. FREQ=MONTHLY;BYDAY=-1FR;COUNT=6. Accepted: at most 512 characters.
First occurrence, YYYY-MM-DDTHH:MM:SS local to zone. Accepted: YYYY-MM-DDTHH:MM:SS.
IANA time zone id. Accepted: an IANA time zone id, e.g. Europe/Amsterdam.
Maximum occurrences to return, 1-200. Default 20. Accepted: integer 1-200.
RFC 3339 instant; skip occurrences before it. Accepted: RFC 3339 timestamp.
Comma-separated local datetimes to exclude. Accepted: at most 1024 characters.
Comma-separated local datetimes to add. Accepted: at most 1024 characters.
Response
Paid and settled. data is route-specific; a route that judges its input returns 200 with data.valid: false for a bad value.
Changes
No recorded changes to this operation across all 1 revision of this API.