RFC 5545 / START HERE
iCalendar events, before the details
iCalendar
iCalendar is a format for exchanging calendar information such as events, reminders, and recurring schedules. It describes calendar data rather than a particular calendar app.
The idea in one picture
An event has time and details
iCalendar describes the event
Another calendar can read it
A simplified picture of the idea; the chapters explain the actual mechanisms.
Why it exists
Different calendar products need a shared way to describe dates, time zones, and repeating events.
A familiar example
You import an .ics file containing a meeting and its recurrence into your calendar application.
Helpful background
You can start here without reading another RFC. If these ideas are unfamiliar, these short introductions may help.
What you’ll learn next
Begin with chapter one, or choose a topic.
- Calendar and component structureA VCALENDAR contains components such as VEVENT rather than being only a row of dates.→
- Event identity and end timeUID identifies an event, while start/end properties describe its interval.→
- UTC, local time, and zonesDATE-TIME can be UTC, local with a time-zone reference, or floating local time.→
- Recurrence and exclusionsA recurrence set combines DTSTART with rule/date inclusions and EXDATE exclusions.→
- Exceptions, alarms, and limitsRECURRENCE-ID addresses an occurrence; VALARM describes a reminder rather than arbitrary executable code.→
This introduction explains RFC 5545 (2009). Read the original RFC ↗