utilpeek: list the occurrences of a recurrence rule (RRULE) in a time zone
expand_rruleutilpeek: Expand an iCalendar RRULE into dates. Returns an RFC 5545 RRULE and a start expanded into its occurrence list with python-dateutil in an IANA time zone: wall-clock times keep across DST changes. Up to 1,000 occurrences, an optional [from, to] window, extra until and exdates. Returns ISO 8601 times with offset and whether more exist. Input: rrule, dtstart, optional timezone, limit, between, until, exdates. Pure computation: no network access, nothing stored. The search stops at search_horizon (1 hour for SECONDLY up to 100 years for YEARLY) and after 1.5 s. A bad rule, a rule that never matches (Feb 31) or a bad date or zone is a 422 (not charged). Typically under 0.1 s. Price: USD 0.001. Free: 10 utilpeek calls per IP per UTC day. Docs: https://tanod.dev/learn/ics-calendar-api.html
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Most occurrences to return (1-1000). | |
| rrule | Yes | RFC 5545 RRULE, with or without the RRULE: prefix. | |
| until | No | Extra upper bound (ISO 8601). | |
| between | No | [from, to] ISO 8601 window (inclusive). | |
| dtstart | Yes | ISO 8601 first occurrence (date or datetime). | |
| exdates | No | ISO 8601 occurrences to leave out. | |
| timezone | No | IANA zone the rule runs in (wall-clock times keep across DST). Default UTC. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| count | No | ||
| error | No | Only on an error result: an object {code, message}, or the reason string of an x402 PaymentRequired object. | |
| rrule | No | ||
| dtstart | No | ||
| timezone | No | ||
| truncated | No | ||
| occurrences | No | ||
| search_horizon | No | ||
| horizon_reached | No |