ICS to CSV
BetaTurn a Google Calendar, Apple Calendar or Outlook .ics export into a CSV with one row per event. Times stay exactly as the file states them, recurrence rules are kept as text, and nothing is uploaded.
- 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..
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. Everything runs in the browser; the calendar file is never uploaded.
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.