Free · runs in your browser · no upload · no quota
ICS to CSV Converter
Turn an .ics calendar — exported from Google Calendar, Outlook or Apple Calendar — into a CSV table you can open in Excel. Every event gets a row with its subject, start and end, location and description, sorted by date.
Good to know
Events are sorted by start.
The rows come out in date order, whatever order the calendar file kept them in.
Reminders are skipped.
Alarms attached to an event are not separate events and do not get rows.
Only events are converted.
Tasks (to-dos) and journal entries in the same file are left out.
Line breaks in descriptions are kept.
A description with several lines stays in one cell, quoted as the CSV standard requires.
How to convert ICS to CSV
- Add your calendar
Drop the .ics file onto the left box, or click Open file. A Google Calendar export comes as a .zip — unzip it first and add the .ics inside. - Choose the delimiter
Comma is the default; pick semicolon if your Excel expects one. Add BOM is on so accented letters open correctly. - Download the CSV
Click Download and open the file in Excel, Google Sheets or LibreOffice.
Example
BEGIN:VEVENT DTSTART;TZID=Europe/Belgrade:20261120T100000 DTEND;TZID=Europe/Belgrade:20261120T113000 SUMMARY:Team meeting LOCATION:Office END:VEVENT
Subject,Start Date,Start Time,End Date,End Time,All Day Event,Time Zone,Location Team meeting,2026-11-20,10:00,2026-11-20,11:30,False,Europe/Belgrade,Office
Frequently Asked Questions
-
Which times are shown?The times as written in the calendar, with their time zone in its own column. Times stored in UTC are marked UTC; they are not shifted to your local time.
-
How are all-day events shown?They have a date and no time, and All Day Event is True. As in the calendar file itself, the end date of an all-day event is the day after it ends.
-
Are repeating events expanded?No. A repeating event is one row, and its rule (for example
FREQ=WEEKLY;BYDAY=MO) is in the Recurrence column. -
Is my calendar uploaded?No. The file is read in your browser and nothing is sent to a server.