creatorvalet

What is an .ics file?

An .ics file is a plain text event that any calendar app can read. What each line means, why the time comes out wrong, and what to do with one.

Updated 2026-08-06

Someone sends you briefing.ics, or a registration page hands you one after you sign up. It weighs about a kilobyte, it opens in Notepad, and the contents look like shouting. What you have is a single appointment written down in a shared grammar.

The grammar is called iCalendar, and .ics is only the extension it usually wears. It is a published internet standard: RFC 5545, issued in 2009, which replaced the original RFC 2445 from 1998. That lineage is the whole reason the thing is useful — Apple, Google, Microsoft, Mozilla and several thousand booking systems settled on one grammar, so a file written by any of them is legible to all the others.

One caution on names. iCalendar is the format. iCal was what Apple called its desktop calendar program until 2012, when it was renamed Calendar. The two words get used interchangeably online, and they mean different things.

What each line says

Here is a complete, valid file describing one meeting:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//creatorvalet.com//ICS Generator//EN
BEGIN:VEVENT
UID:9f2kx7m3q1@creatorvalet.com
DTSTAMP:20260406T091500Z
DTSTART:20260415T170000Z
DTEND:20260415T183000Z
SUMMARY:Spring product briefing
LOCATION:Pier 27\, San Francisco
END:VEVENT
END:VCALENDAR

Everything sits between a BEGIN: and a matching END:, and the blocks nest. The outer VCALENDAR is the container; the VEVENT inside it is the appointment. A file can hold one VEVENT or four hundred of them, which is how a conference publishes its entire program as a single download.

The individual lines:

  • VERSION:2.0 is the version of iCalendar, not of the file. It has said 2.0 since 1998 and there is no 3.0.
  • PRODID names the software that wrote the file. It is required, nobody is ever shown it, and it is the quickest way to find out what produced a file you did not expect.
  • UID is the event’s permanent identity. Re-download a corrected version and your calendar replaces the old entry rather than adding a second one — but only if the UID matches. This is the field cheap generators randomize, and duplicates are the result.
  • DTSTAMP records when the file itself was written, which is not when the meeting is.
  • DTSTART and DTEND are the meeting. The trailing Z means UTC, so this event runs 10:00 to 11:30 in San Francisco and 19:00 to 20:30 in Berlin — one moment, shown correctly to everybody.
  • SUMMARY becomes the title in your calendar; LOCATION becomes the address.

Notice the backslash in Pier 27\, San Francisco. Commas, semicolons and backslashes carry structural meaning in this format, so inside a text value they have to be marked as literal. Forget it and a location with a comma in it arrives truncated. Two more rules of the same kind: lines end with a carriage return and a line feed, not a bare newline, and no line may exceed 75 bytes — longer ones are broken and continued on the next line with a leading space.

Opening one you were sent

On iPhone, iPad, macOS and Outlook for Windows, opening the file is the whole procedure: the calendar app takes over, shows you the event, and asks whether to add it. Thunderbird behaves the same way.

Google Calendar is the exception, and it catches people out. Its web interface does not react to a file being opened at all — the event has to be pulled in from the settings screen instead. That is a short procedure, but it is a procedure, and it means that publishing only a downloadable file quietly loses a large slice of any audience.

The time is where it goes wrong

Not every file writes UTC. A start time can also be recorded like this:

DTSTART:20260812T140000

No Z, no timezone. That is a floating time, and it means “14:00 wherever the reader happens to be”. For a birthday or a public holiday that is exactly right. For a webinar it is a bug: the organizer in Lisbon sees 14:00 and is satisfied, while the attendee in Denver also sees 14:00 and misses it by seven hours. The person who created the file never witnesses the failure, because their own machine is in the timezone it was written for.

The safe form is the one in the example above — an absolute instant in UTC, which every calendar then renders in its owner’s local time.

All-day events end a day late

The second classic mistake has nothing to do with clocks. DTEND is exclusive: it marks the boundary the event stops before, not the last day it covers. A single day on the 12th is therefore written like this:

DTSTART;VALUE=DATE:20260812
DTEND;VALUE=DATE:20260813

Put 20260812 in both fields and the event has zero length. Some calendars hide it, others draw it across two days. Everybody who writes one of these files by hand gets this wrong once.

Making one

You do not have to type any of this. The ICS file generator takes a title, a date and a timezone and returns the finished file, along with the pre-filled links that cover the Google side of your audience. If the events already exist as rows in a spreadsheet — a course timetable, a season’s fixtures, a conference program — Excel to Calendar turns the sheet into one combined file plus one file per row. Both run entirely in the browser; a text file this small does not need a server.

.ical, .icalendar and .ifb are the same iCalendar format under different names — .ifb conventionally holds free/busy information rather than events, but the grammar is identical, and renaming any of them to .ics costs nothing. The registered media type for all of them is text/calendar.

.vcs is the one genuine outsider. It is vCalendar 1.0, the 1996 predecessor that iCalendar was designed to replace, and it survives mainly in old phone backups and legacy groupware exports. The blocks look similar enough to fool you at a glance, but the details differ, and a modern calendar may or may not accept one.

More on this

  • How to import an .ics file into Google CalendarGoogle Calendar will not open a downloaded .ics file. The import lives in Settings, the mobile apps have none at all, and duplicates are preventable.
  • ICS file structureA field reference for the iCalendar format: line grammar, folding at 75 octets, escaping, required properties, recurrence rules and a complete file.