Blog/What Is an ICS File? A Complete Guide to iCalendar
·5 min read

What Is an ICS File? A Complete Guide to iCalendar

Learn what ICS files are, how they work, and why they're the universal standard for sharing calendar data across apps and platforms.

An ICS file (with the .ics extension) is a plain-text file that stores calendar information in the iCalendar format — a universal standard for exchanging scheduling data between applications. If you've ever exported a calendar event from Google Calendar, received a meeting invite, or downloaded an event from a website, you've almost certainly encountered an ICS file.

The iCalendar Standard

iCalendar is defined by RFC 5545, published by the Internet Engineering Task Force (IETF) in 2009. It replaced the older vCalendar format (RFC 2445) and has become the de-facto interchange format for calendar data across nearly every platform — Apple Calendar, Google Calendar, Microsoft Outlook, Thunderbird, and hundreds more.

The format is deliberately plain text. You can open any ICS file in a text editor and read its contents directly, though the structure can seem dense at first glance.

What's Inside an ICS File?

An ICS file is organised as a hierarchy of components, each wrapped in BEGIN: and END: markers. The top-level component is always VCALENDAR:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//My App//EN
X-WR-CALNAME:Work Schedule

BEGIN:VEVENT
UID:unique-id-123@myapp.com
DTSTART:20250415T090000Z
DTEND:20250415T100000Z
SUMMARY:Team Standup
LOCATION:Zoom
DESCRIPTION:Daily team sync
END:VEVENT

END:VCALENDAR

The most common components inside a VCALENDAR are:

  • VEVENT — a calendar event (meeting, appointment, holiday)
  • VTODO — a task or to-do item with a due date
  • VJOURNAL — a journal entry associated with a date
  • VFREEBUSY — free/busy time information for scheduling
  • VTIMEZONE — timezone definition referenced by events

Key VEVENT Properties

Every event can carry a rich set of properties:

  • SUMMARY — the event title
  • DTSTART / DTEND — start and end date/time (can be a date-time like 20250415T090000Z or a date-only value like 20250415 for all-day events)
  • UID — a globally unique identifier for the event
  • LOCATION — a string describing where the event takes place
  • DESCRIPTION — longer notes or details
  • ORGANIZER — the person who created the event
  • ATTENDEE — people invited to the event
  • RRULE — a recurrence rule for repeating events (e.g. "every Monday")
  • STATUS — CONFIRMED, TENTATIVE, or CANCELLED
  • CATEGORIES — comma-separated tags for organising events
  • URL — a web address related to the event

Recurring Events

One of the most powerful features of the iCalendar format is its recurrence system. The RRULE property encodes complex repeat patterns in a single line:

RRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR;COUNT=10

This means: repeat every week on Monday, Wednesday, and Friday, for 10 occurrences. The system supports daily, weekly, monthly, and yearly frequencies, with fine-grained controls for which days, week numbers, or months to include.

Date and Time Handling

iCalendar supports three forms of date/time values:

  1. UTC date-time20250415T090000Z (the Z suffix means UTC)
  2. Local date-time with timezoneTZID=America/New_York:20250415T090000
  3. Date-only20250415 (used for all-day events)

Proper timezone handling is crucial. The VTIMEZONE component can embed full timezone definitions directly in the file, ensuring events display correctly regardless of where they're opened.

Who Uses ICS Files?

ICS files are used everywhere:

  • Calendar apps — Apple Calendar, Google Calendar, Outlook, Thunderbird all import and export ICS natively
  • Event websites — "Add to Calendar" buttons on ticketing sites, conference sites, and booking platforms generate ICS files on the fly
  • Email clients — meeting invitations sent via email often include an ICS attachment
  • Calendar subscriptions — a URL pointing to an ICS file lets you subscribe to a live-updating calendar (sports fixtures, public holidays, etc.)
  • Backup and migration — ICS is the standard format for exporting your entire calendar when moving between services

Viewing ICS Files

Because ICS files are plain text, you can technically read them in any text editor. But for a human-friendly view with proper month/week/day layouts, you need a dedicated viewer — which is exactly what this tool provides. Drop any ICS file into ICS Viewer and explore your calendar data instantly, with no account required.

Want to preview an ICS file right now?

Open ICS Viewer →