Introduction
iCalendar is the standard text format for calendar data: events, to-do items and free
or busy times. It was first published as RFC 2445 in 1998 and is now RFC 5545. Meeting
invitations sent by email carry an .ics attachment, and calendar
subscriptions, such as a sports fixture list or a public holiday feed, are
.ics files fetched from a web address. It grew out of the older
vCalendar format.
Structure
The file is UTF-8 text made of content lines, each
NAME;PARAMETER=value:value, ending in a carriage return and line feed.
Lines longer than 75 bytes are folded: the rest continues on the next line, which starts
with a space.
Lines are grouped into components between BEGIN: and END:
lines. The whole file is one VCALENDAR, which starts with
VERSION:2.0 and a PRODID naming the program that made it.
Inside are VEVENT, VTODO, VJOURNAL and
VFREEBUSY components, VTIMEZONE definitions, and
VALARM reminders nested in events. An event has a UID, a
DTSTART, usually a DTEND or DURATION, a
SUMMARY, and an optional RRULE for repeats.
0BEGIN:VCALENDAR with VERSION and PRODIDlines…VTIMEZONE time zone rulesoptional…VEVENT or VTODO with its properties and alarmsrepeated
…END:VCALENDAR1 line
Links
Software
- Google Calendar (web, Android, iOS)
- Microsoft Outlook (Windows, macOS, web)
- Apple Calendar (macOS, iOS)
- Mozilla Thunderbird (Windows, macOS, Linux)
Developers
Reference
- RFC 5545, Internet Calendaring and Scheduling Core Object Specification (iCalendar)