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
Open in Parity → Download spec.json All 102 specs