{"uid":"cap_asdZxmkZ3mN4SKE8EhI8z","slug":"ical-rrule-expander-26f716d7","name":"iCal RRULE Expander","description":"Expand an RRULE recurrence rule into its occurrence datetimes, with a human-readable description.","url":"https://ical.openverbs.com/v1/expand","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","required":["rrule"],"properties":{"to":{"type":"string","description":"ISO window end (inclusive). Provide with `from`."},"from":{"type":"string","description":"ISO window start (inclusive). Provide with `to`."},"limit":{"type":"integer","maximum":1000,"minimum":1,"description":"Max occurrences to return. Defaults to 50."},"rrule":{"type":"string","maxLength":2000,"minLength":1,"description":"RRULE, e.g. \"FREQ=WEEKLY;BYDAY=WE;COUNT=3\" (DTSTART lines allowed)."},"dtstart":{"type":"string","description":"ISO start datetime, when not embedded in `rrule`."}},"additionalProperties":false},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.002","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.002/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_0gstJMuKlCmEanJML927m","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.002","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Expands an RFC 5545 RRULE recurrence rule string into a list of concrete occurrence datetimes, with an optional human-readable description of the recurrence pattern.","exampleAgentPrompt":"Expand the RRULE 'FREQ=WEEKLY;BYDAY=MO,WE,FR;COUNT=10' starting from 2025-06-01 and give me all the occurrence dates plus a plain-English description of what it means.","exampleUseCases":[{"title":"Preview recurring meeting schedule","prompt":"I have a recurring standup with this rule: FREQ=WEEKLY;BYDAY=TU,TH;UNTIL=20251231T000000Z, starting June 2 2025 — can you expand it so I can see all the actual meeting dates before I send the invite?"},{"title":"Find occurrences within a date window","prompt":"Given the RRULE FREQ=MONTHLY;BYDAY=1MO starting 2025-01-01, list every occurrence that falls between July 1 2025 and December 31 2025."},{"title":"Sanity-check a complex RRULE","prompt":"Can you expand FREQ=DAILY;INTERVAL=2;COUNT=7 from start date 2025-06-10 and tell me in plain English what the pattern is — I want to make sure I wrote the rule correctly?"}],"resultDescription":"Returns a list of ISO 8601 datetime strings representing each computed occurrence of the recurrence rule within the requested constraints, along with a human-readable English description of the recurrence pattern (e.g. 'Every Monday and Wednesday for 3 weeks').","failureModes":["Invalid or malformed RRULE string returns a 400 error","Missing required `rrule` field returns a validation error","Providing a window (`from`/`to`) without a DTSTART may yield unexpected results if no DTSTART is embedded in the rule","Requesting more than 1000 occurrences via `limit` is rejected","An open-ended RRULE with no COUNT, UNTIL, or window bounds may return the default 50 occurrences","Malformed ISO datetime strings for `dtstart`, `from`, or `to` return a 400 error"],"whenToPreferThis":"Use this endpoint when you need to materialize concrete datetime instances from an RFC 5545 RRULE string — for example to display a schedule, validate a rule, check for conflicts, or feed occurrences into a downstream calendar or notification system. Prefer it over manual parsing when you also want a human-readable description of the pattern. It complements the sibling .ics builder and parser endpoints on the same platform.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T18:34:48.909Z","isFirstParty":false}