catalog / formats

iCalendar

The calendar interchange format — recurrence, time zones and the parts that break sync.

16 capabilities 6 sections reference specification

Build against it

# give your agent the catalog — no account, no install
claude mcp add provespec -- npx -y provespec-mcp

# then, from any agent session
spec_get(slug: "icalendar")                → the capability tree
spec_checklist(slug: "icalendar")          → the questions to answer
spec_grade(slug: "icalendar", grades: [...])  → parity % + the gap list

# or just fetch it
curl https://provespec.com/catalog/icalendar/spec.json

Grade every capability below as yes · partial · no · na, with a file reference as evidence. Whatever you leave ungraded counts as missing — the gap list is the work queue.

Or just paste this to your agent

Use the ProveSpec MCP server. Fetch the "icalendar" spec with
spec_get, then walk spec_checklist and grade this repository against it —
one verdict per capability, each with a file reference as the note.
Call spec_grade with the results and give me the gap list as the plan.

If the server is not registered, add it first:
  claude mcp add provespec -- npx -y provespec-mcp

The specification

Structure 4

  • VCALENDAR wrapper with PRODID and VERSION
  • Components: VEVENT, VTODO, VJOURNAL, VFREEBUSY, VALARM
  • Line folding at 75 octets and unfolding on read a classic parser bug
  • Property parameters and escaping

Identity 3

  • UID stable across updates
  • SEQUENCE incremented on change
  • RECURRENCE-ID identifies a modified occurrence

Time 3

  • DTSTART with a time zone reference or UTC
  • VTIMEZONE definitions embedded with DST rules
  • All-day events as DATE, not DATE-TIME

Recurrence 3

  • RRULE with FREQ, INTERVAL, BYDAY, COUNT, UNTIL
  • EXDATE and RDATE
  • Expansion agrees with other implementations the interoperability test

Scheduling 2

  • ORGANIZER, ATTENDEE and PARTSTAT
  • METHOD for REQUEST, REPLY, CANCEL iTIP

Robustness 1

  • Unknown properties preserved on round-trip do not silently drop what you did not parse
Download spec.json All 85 specs