ICS to CSV
BetaTurn a Google, Apple or Outlook calendar .ics export into a CSV with one row per event. Times stay as the file states them, recurrence rules are kept as text, and this page converts in your browser.
- Free, no sign-up
- REST + MCP
- Updated
- Reviewed by Olgun Ozoktas
Adds a UTF-8 byte order mark to the download so Excel shows accented characters correctly. Leave it off for Google Sheets and scripts.
One row per event will appear here..
How to Convert ICS to CSV Online
-
Export the calendar
In Google Calendar, Settings > Import & export > Export gives a zip of .ics files. Apple Calendar exports from File > Export. Outlook saves an .ics from File > Save Calendar. -
Upload the .ics file or paste its text into the input panel
The conversion runs as soon as the text arrives. -
Choose the columns
Spreadsheet is the default and writes ISO dates. Pick Google / Outlook import when the CSV is going back into a calendar. -
Check the preview table, then download the CSV or copy it
Turn on Excel BOM if the file opens in Excel with broken accents.
Common Use Cases
Billing
Reporting
Migration
Archiving
Auditing
Why Use Our ICS to CSV Converter?
An iCalendar file is a list of components, and each VEVENT is one event with a start, an optional end, a summary, and a handful of optional properties. The format folds long lines at 75 characters, escapes commas and newlines with backslashes, and states each time either as a floating value, in UTC with a trailing Z, or in a named zone through a TZID parameter. This converter reads all of that: it unfolds the lines, unescapes the text, and reads the DTSTART, DTEND, DURATION, SUMMARY, LOCATION, DESCRIPTION, ORGANIZER, STATUS, CATEGORIES, RRULE and UID properties of every event.
The output is one CSV row per event, twelve columns in the Spreadsheet layout: summary, start, end, all_day, timezone, location, description, organizer, status, categories, rrule and uid. Dates are ISO, times are 24-hour, and the timezone column names the zone each time was stated in. Rows are sorted by start unless you turn sorting off. The Google / Outlook import layout writes the nine-column header those calendars accept on import, with US dates and 12-hour times.
Two honesty rules shape the output. No time is converted between zones, because a conversion needs the zone rules of the reader's calendar and a guess would be wrong silently. And no recurrence rule is expanded, because a rule with no end has no last occurrence, and a bounded expansion would be a different tool. What is skipped is counted: to-dos, journal entries and events with no readable start are reported under the output rather than dropped in silence. On this page, everything runs in the browser and the calendar file is not uploaded. The REST API and the MCP tool are a separate path: a call sends the calendar text you include to FindUtils, which converts it without storing it.
How it compares
Desktop calendar apps can export a CSV of sorts, but each one picks its own columns and date format, and the export often covers one calendar view rather than the whole file. Online converters that upload the .ics hand a full record of your meetings to a server for a format change. This page reads the standard format with its escaping and folding rules, writes a stable set of columns, and keeps the file in the tab.
ICS Conversion Tips
- Times are written exactly as the file states them. The timezone column carries the zone each time was stated in, so a meeting at 09:30 Europe/Istanbul stays 09:30 and says so. Nothing is converted to your local zone.
- A recurring event is one row. Its rule, such as FREQ=WEEKLY;BYDAY=TU, is in the rrule column. The tool does not expand it into every future occurrence, so a weekly meeting does not become fifty-two rows.
- All-day events use dates only, and the end date is the last day of the event, which is what a spreadsheet reader expects. The .ics format stores the day after; the tool corrects for that.
- An event with a DURATION instead of an end time gets its end computed. An event with neither gets a zero-length end so the start is still on the row.
- The Google / Outlook import layout writes US dates and 12-hour times because that is what those importers read. Use the Spreadsheet layout for anything else.