What is an ICS file?
An ICS file (iCalendar) is a plain-text calendar file. Calendar apps use it to export calendars and to send meeting invitations.
An ICS file holds calendar events (titles, dates, times, places, repeat rules and reminders) in a standard text format called iCalendar. The .ics ending stands for “iCalendar”. One file can hold a single meeting invitation or years of events. Nearly every calendar app can read it, so it is the usual way to move events between apps and people.
Where do ICS files come from?
You usually get an ICS file in one of these ways:
- Meeting invitations. Invitations often arrive with an
invite.icsattachment. - Calendar exports. Google Calendar (on a computer), Apple Calendar on a Mac and classic Outlook for Windows can export calendars as
.icsfiles. Outlook on the web and the new Outlook can’t export, but they can publish a calendar as an ICS link. - “Add to calendar” buttons. Event websites, airlines and ticket sites often download an
.icsfile for the event. - Backups. Some people export their calendars regularly to keep a copy outside their account.
What is inside an ICS file?
An ICS file is plain text. The whole file sits between BEGIN:VCALENDAR and END:VCALENDAR, and each event sits between BEGIN:VEVENT and END:VEVENT:
BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
UID:weekly-sync@example.com
DTSTART;TZID=Europe/Berlin:20261005T090000
DTEND;TZID=Europe/Berlin:20261005T093000
RRULE:FREQ=WEEKLY;BYDAY=MO
SUMMARY:Weekly sync
LOCATION:Room 4
END:VEVENT
END:VCALENDAR
| Line | Meaning |
|---|---|
UID |
A unique ID for the event. Copies of the same event share it. |
SUMMARY |
The event title. |
DTSTART, DTEND |
Start and end, with a time zone (TZID) or in UTC (ending in Z). |
LOCATION, DESCRIPTION |
Where it happens, and the notes. |
RRULE |
The repeat rule, for example every Monday. |
EXDATE |
Dates skipped in a repeating series. |
RECURRENCE-ID |
Marks a single occurrence that was moved or changed. |
VTIMEZONE |
Daylight-saving rules for the time zones the file uses. |
VTODO |
A task (to-do), which some calendars include alongside events. |
How do time zones work in an ICS file?
Times can be written three ways, and the difference matters when the file travels between countries.
| How it’s written | Example | What it means |
|---|---|---|
UTC, ending in Z |
DTSTART:20261005T070000Z |
A fixed moment. Each app shows it in its own local time. |
| With a time zone | DTSTART;TZID=Europe/Berlin:20261005T090000 |
9:00 in Berlin, including daylight-saving changes. |
| “Floating”, no zone | DTSTART:20261005T090000 |
9:00 wherever you are, like a wake-up alarm. |
| All-day | DTSTART;VALUE=DATE:20261005 |
The whole of 5 October, with no time. |
Files usually include VTIMEZONE blocks that describe each zone’s daylight-saving rules. When a file names a zone without describing it, apps fall back on their own time zone knowledge. Calendars from Outlook often use Windows-style zone names such as “W. Europe Standard Time” instead of “Europe/Berlin”.
How do repeating events work?
A repeating event is written once, with a rule that says how it repeats. A text editor shows only the rule; a calendar app or viewer turns it into individual dates.
| Rule | Meaning |
|---|---|
FREQ=DAILY |
Every day |
FREQ=WEEKLY;BYDAY=MO,WE |
Every Monday and Wednesday |
FREQ=MONTHLY;BYMONTHDAY=1 |
The first day of every month |
FREQ=YEARLY |
Every year, such as a birthday |
COUNT=10 |
Stop after 10 occurrences |
UNTIL=20261231T000000Z |
Stop at the end of 2026 |
Changes to single dates are stored separately. EXDATE removes a date from the series, and an extra event with a RECURRENCE-ID replaces one date, for example a meeting moved by an hour.
How do I open an ICS file?
It depends on what you want.
| You want to… | Do this |
|---|---|
| Add the events to your calendar | Use your calendar app’s import option, or open the attachment on your phone. |
| See what’s inside first | Use the ICS Viewer, which doesn’t add anything to your calendar. |
| Make a spreadsheet of events | Use the ICS Viewer’s CSV download, then open the file in Excel or Google Sheets. |
| Read the raw details | Open the file in any text editor. |
To look inside an ICS file without importing it:
Open the viewer
Open the free ICS Viewer on ToolkitHere in any modern browser.
Add the ICS file
Drop the .ics file onto the upload box, or tap Choose files. You can add several calendars at once.
Check the events
Switch between List and Month to see every event, with repeating events and time zones worked out.
Decide what to do
Import the file into your calendar app if it looks right, or download a CSV or a merged .ics file.
The viewer runs in your browser. Nothing is uploaded: your calendar stays on your device.
What is the difference between importing and subscribing?
Importing copies the events in a file into your calendar once. Later changes to the original calendar don’t reach you.
Subscribing connects your calendar to a calendar link, often starting with webcal:// or ending in .ics. Your app checks the link from time to time and keeps the events up to date. Each app decides how often, so changes can take hours to appear.
An ICS file you download is a snapshot. If you need a calendar that keeps updating, ask for its subscription link instead.
What is the difference between ICS and CSV for calendars?
| ICS (iCalendar) | CSV | |
|---|---|---|
| Shape | One block of lines per event | One row per event |
| Repeating events | Stored once, as a rule | One row per occurrence |
| Time zones | Kept, with daylight-saving rules | Usually just a date and a time |
| Opens in | Calendar apps | Spreadsheets |
| Best for | Moving events between calendars | Reports, timesheets and filtering |
Use ICS to move events into a calendar, and CSV when you want to sort, filter or total them in a spreadsheet.
How do I make an ICS file?
The easiest way is to let a calendar app write it. Google Calendar, Apple Calendar and classic Outlook can export a whole calendar. Classic Outlook can also save a single event as an .ics file. Event platforms and booking tools also generate one for each booking. You can write one by hand in a text editor, but every line must follow the format exactly, so an app is safer.
What are common problems with ICS files?
| Problem | Likely cause | What to do |
|---|---|---|
| Events at the wrong time | The file’s time zone is read differently, or it uses floating times | Check the time zone setting in your app or viewer |
| A repeating event shows once | You opened it in a text editor | Use a viewer or calendar app, which expands the rule |
| Duplicate events after importing | The same file, or overlapping files, imported twice | Events with the same UID are duplicates; merge files first, removing them |
| A zip instead of an ICS file | Google Calendar exports all your calendars as one .zip |
Unzip it first; each calendar is a separate .ics file |
| “No events found” | The file holds only tasks or availability data | Export the calendar again |
Is an ICS file safe to open?
An ICS file is plain text, not a program. Viewing it only reads it.
It can still reveal a lot: where you work, when you travel, who you meet. Before adding a calendar to a website, check whether the site uploads it. Our tools don’t: How it works explains how to check this yourself. Be careful with invitations from senders you don’t know, since an event can contain links like any email.
Key takeaways
- An ICS file is a plain-text calendar file in the iCalendar format.
- Each event sits between
BEGIN:VEVENTandEND:VEVENT. - Times can be in UTC, in a named time zone, floating, or all-day.
- Repeating events are stored as rules, with skipped and moved dates listed separately.
- Importing copies events once; subscribing keeps them updated.
- The ICS Viewer shows every event before you import anything.
Tools for this
ICS Viewer
See the events inside an .ics calendar file, merge files, export to CSV.
Google Calendar is a trademark of Google. Outlook and Excel are trademarks of Microsoft. Apple Calendar is a trademark of Apple. ToolkitHere is not affiliated with any of them.