Convert an ICS calendar file to CSV in seconds
Drop in a calendar file and get back a spreadsheet you can actually use. Choose your columns, delimiter, and date format before you download.
Preview
Why this exists
I built this after spending twenty minutes trying to get a client's Google Calendar export to open cleanly in Excel for a billing report. The file opened fine in a text editor. It was a mess in a spreadsheet. Every recurring meeting showed up once instead of every week it actually happened, and the timestamps were in whatever timezone the original organizer had set, not mine.
That's the actual problem with ICS files. They're built to describe events to a calendar app, not to sit in a spreadsheet column. A converter that just splits on commas and calls it done will get simple one-off events right and quietly mangle everything else: recurring meetings, all-day events, events with attendees, events that were rescheduled once and now carry an exception date.
This ICS to CSV Converter tool is built to handle those cases properly, because a CSV with wrong dates in it isn't useful. It's worse than no CSV at all.
How it works
Add your file
Drag it in, or click to browse. You can add several .ics files at once if you're combining calendars from different apps or accounts.
Check the preview
See your events laid out in a table before you download anything. Fix column order or date format if you need to.
Download your CSV
Opens straight in Excel, Google Sheets, or Numbers. No extra formatting step.
How your calendar data is actually handled
Recurring events are expanded into individual rows
A weekly meeting with fifty occurrences shows up as fifty rows, matching what actually happened on the calendar. If an occurrence was cancelled or moved, the exception in the original file is read and reflected in the output instead of being ignored.
Event times are converted to the correct timezone
ICS files typically store times in UTC or in whatever timezone the event's organizer was in. Each event is converted to reflect the correct local time rather than leaving the raw offset in place.
Column selection
Choose which fields end up in the CSV, including title, start time, end time, location, description, organizer, and attendees, and set the order to match what your spreadsheet or reporting tool expects.
Delimiter and date format, your choice
Export with a comma, semicolon, or tab delimiter, and set dates as ISO, US, or EU format. Useful if the file is headed into a system that expects a specific layout instead of whatever a default export gives you.
A Google Calendar–compatible layout
If the CSV needs to be reimported into Google Calendar later, or fed into a tool that expects Google's specific column layout, that format is available as an export option.
No file count or size limit
One file or several dozen, small calendar or one with a few thousand events, the process is the same.
Processing happens locally
The file is read and converted in your browser using JavaScript. It is never uploaded to a server, which means there's nothing to store and nothing to lose track of afterward.
Works with calendars from
Not sure how to export your calendar as an .ics file in the first place? See the export steps for Google Calendar, Outlook, and Apple Calendar in the FAQ below.
FAQ
How do I convert an ICS file to CSV?
What information from my calendar ends up in the CSV?
Can I convert more than one ICS file at once?
Is there a limit on file size or number of events?
Does this handle recurring events correctly?
Will the event times be correct, or do I need to fix the timezone myself?
What happens if my ICS file has missing fields or looks broken?
How do I export my Google Calendar as an ICS file before converting it?
How do I convert an Outlook or Microsoft 365 calendar to CSV?
How do I convert an Apple Calendar or iCloud calendar to CSV?
Does this work with calendars exported from Thunderbird?
Can I convert a meeting invite from Zoom, Calendly, or similar tools?
Can I convert a CSV file into an ICS calendar file?
Can I import the converted CSV straight into Google Sheets or Excel?
I need to bulk-import events into Google Calendar from a spreadsheet. Is that possible?
Is my calendar data uploaded to a server anywhere?
Do you keep a copy of the files people convert?
What's the actual difference between an ICS file and a CSV file?
Does this work on a phone, or only on a desktop browser?
Is there a way to do this from the command line, or a library I can use in code instead of the browser tool?
icalendar in Python. This tool is aimed at people who want a result without writing code, but the underlying parsing logic follows the same iCalendar standard (RFC 5545) either way.About
Built and maintained by the site owner. Issues get fixed as they're reported, and a running changelog tracks what's changed and why, including problems other users found first.
This tool doesn't run ads, doesn't sell data (there isn't any to sell, since nothing is uploaded), and doesn't have a paid tier. If it saved you a manual export or an afternoon of copy-pasting into a spreadsheet, a small Buy Me a Coffee tip helps cover hosting. Entirely optional.
Questions, bug reports, or a calendar file that didn't convert the way you expected? Contact →