iCalendar is the universal standard for representing and exchanging calendar and scheduling information across applications and platforms. Defined by IETF RFC 5545, iCalendar's .ics file format is recognized by virtually every calendaring application in existence, making it one of the most widely implemented data interchange standards on the internet. When you receive a meeting invitation by email or subscribe to a public event calendar, iCalendar is almost certainly the format carrying that data.
Background
The iCalendar specification originated from the IETF Calendaring and Scheduling Working Group (calsch), which published the original standard as RFC 2445 in November 1998. The format was designed to address a long-standing interoperability problem: proprietary calendar applications from different vendors could not exchange event information with each other. By defining a vendor-neutral text-based format, iCalendar established a common language for calendar data that all applications could speak.
RFC 2445 was revised and superseded by RFC 5545 in September 2009, which clarified ambiguities, tightened conformance requirements, and aligned the specification with years of implementation experience. Companion specifications define the iTIP protocol (RFC 5546) for scheduling negotiations and the iMIP protocol (RFC 6047) for carrying iTIP messages over email.
Purpose & Scope
iCalendar defines a text-based data format using a property-value structure organized into components. The core components include VEVENT (calendar events), VTODO (tasks and to-do items), VJOURNAL (journal entries), VFREEBUSY (free/busy time information), and VALARM (reminders and notifications). Each component contains properties such as DTSTART, DTEND, SUMMARY, DESCRIPTION, LOCATION, and RRULE (recurrence rules).
The format supports complex recurrence patterns, time zone definitions, multiple attendees with participation status, and attachment references. Files use the .ics extension and the text/calendar MIME type.
Key Components
| Component | Purpose |
|---|---|
VEVENT |
A calendar event with start time, duration, and metadata |
VTODO |
A task or action item with optional due date and priority |
VJOURNAL |
A journal entry or note associated with a date |
VFREEBUSY |
Free/busy time blocks for scheduling negotiation |
VALARM |
A reminder or notification attached to an event or task |
VTIMEZONE |
Time zone definition for correct local time interpretation |
Governance & Maintenance
iCalendar is maintained through the IETF standards process. The Calext (Calendar Extensions) Working Group handles ongoing extensions and clarifications. Changes follow the standard IETF RFC publication process, requiring rough consensus and running code. Notable extensions include RFC 7986 (new properties for iCalendar), RFC 7953 (availability), and RFC 9073 (event publishing).
Notable Implementations
iCalendar support is effectively universal among calendar applications. Google Calendar, Apple Calendar (formerly iCal), Microsoft Outlook, Mozilla Thunderbird, and countless other applications read and write .ics files natively. Calendar subscription URLs, which serve dynamically updated .ics files over HTTP, enable one-click subscription to event feeds from sports leagues, academic institutions, conference organizers, and public event calendars. The CalDAV protocol (RFC 4791) uses iCalendar as its data format for calendar synchronization.
Related Standards
- vCard -- The companion contact data format, sharing the same property-value design heritage