ICS to CSV Converter

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.

Drag your .ics file here, or click to choose one
Works with more than one file at a time. Nothing you upload leaves your browser.
Output format
Recurring events
Cancelled events
Date format
Times
All-day events keep their date as written, regardless of this setting.
Delimiter
File options
Columns: choose what's included and in what order
Free to use, no account needed, and no limit on file size or count.

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

01

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.

02

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.

03

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

Google Calendar .ics export
Outlook and Microsoft 365 .ics export
Apple Calendar and iCloud .ics export
Thunderbird .ics export
Zoom meeting invites .ics attachment
Any other calendar app RFC 5545

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

Converting the file
How do I convert an ICS file to CSV?
Upload the .ics file above. It's read in your browser, laid out as a table so you can check it, and you download the result as a CSV. No conversion happens on a server, so there's no wait for an upload or a processing queue.
What information from my calendar ends up in the CSV?
By default: event title, start date and time, end date and time, location, description, organizer, and attendees. You can drop any of these or reorder them before downloading, depending on what your spreadsheet or reporting tool needs.
Can I convert more than one ICS file at once?
Yes. Add several files in one go and either combine them into a single CSV or keep them as separate files, depending on what you're trying to do with the output.
Is there a limit on file size or number of events?
No. A calendar with a handful of events and one with several thousand go through the same process.
Does this handle recurring events correctly?
Yes. Weekly, monthly, and custom recurrence rules are expanded into individual rows rather than a single summary row, and any exceptions or cancelled occurrences already recorded in the file are carried over correctly.
Will the event times be correct, or do I need to fix the timezone myself?
Times are converted to reflect the correct local time for each event. You shouldn't need to manually offset anything afterward.
What happens if my ICS file has missing fields or looks broken?
Events with missing optional fields, like no location or no description, just show up with those columns blank. If a file is badly malformed and can't be read at all, you'll get a clear message saying so rather than a CSV full of garbled text.
Specific calendars and apps
How do I export my Google Calendar as an ICS file before converting it?
In Google Calendar, go to Settings, then Import & Export, then Export, which downloads a zip file containing your calendars as .ics files. Unzip it and upload the file you need here.
How do I convert an Outlook or Microsoft 365 calendar to CSV?
Export the calendar from Outlook as an iCalendar (.ics) file first, using File, then Save Calendar, then choosing iCalendar Format. Upload that file here rather than trying to export CSV directly from Outlook, which often drops fields like attendees or descriptions.
How do I convert an Apple Calendar or iCloud calendar to CSV?
Open the calendar in the Calendar app on a Mac, select the calendar you want, and use File, then Export, then Export. That saves an .ics file you can upload here. There isn't a way to export directly from iCloud's web interface, so this app-based export is the reliable route.
Does this work with calendars exported from Thunderbird?
Yes. Thunderbird's calendar export produces a standard .ics file, and it's handled the same way as any other source.
Can I convert a meeting invite from Zoom, Calendly, or similar tools?
Yes, as long as it's a standard .ics attachment, which is how most scheduling and meeting tools send calendar invites.
Going the other direction
Can I convert a CSV file into an ICS calendar file?
Yes, using the CSV to ICS converter. You upload a CSV, map your columns to event fields like title and start time, and download a valid .ics file you can import into any calendar app.
Can I import the converted CSV straight into Google Sheets or Excel?
Yes. The output is a standard CSV, so it opens directly in Excel, Google Sheets, or Numbers without any extra import steps.
I need to bulk-import events into Google Calendar from a spreadsheet. Is that possible?
That's the reverse process. Use the CSV to ICS converter to turn your spreadsheet into an .ics file, then import that file through Google Calendar's Settings, then Import & Export.
Privacy and technical details
Is my calendar data uploaded to a server anywhere?
No. The file is read and converted locally in your browser using JavaScript. It's never sent anywhere, which also means there's nothing stored after you close the tab.
Do you keep a copy of the files people convert?
No, and there's no mechanism to, since the conversion never touches a server in the first place.
What's the actual difference between an ICS file and a CSV file?
An ICS file (also called iCalendar) is a structured text format built specifically to describe calendar events, including recurrence rules and timezones, so different calendar apps can exchange them. A CSV is a plain, general-purpose table format that any spreadsheet or database can read, but it has no built-in concept of a recurring event or a timezone, which is why a direct conversion needs to interpret those details rather than just copy them over.
Does this work on a phone, or only on a desktop browser?
It runs in any modern browser, including on a phone, though checking and rearranging a large table of events is easier on a bigger screen.
Is there a way to do this from the command line, or a library I can use in code instead of the browser tool?
If you're working with ICS files programmatically, most languages have a maintained library for reading them, for example 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 →