Skip to content

ICS to CSV Calendar Exporter

ICS to CSV makes a saved calendar easier to review in a spreadsheet. Open an .ics file and export its event names, dates, locations, identities and recurrence information as rows. You can keep series records or expand supported recurring events within a selected date window, including edited exceptions. That distinction matters when counting meetings or checking a timetable: one recurring series is not the same as one occurrence. The calendar is read in your browser without connecting to an account or fetching event details.

ICS to CSV Calendar Exporter

Export calendar events to spreadsheet rows. Choose series records or expanded occurrences within a visible date window, including edited exceptions.

Maximum file size: 25 MB per file. You can also drag files here.

Supported scope and limitations

Expansion is limited to five years, 20,000 output rows and 50,000 inspected occurrences per series. Embedded VTIMEZONE definitions are used; unresolved TZIDs are rejected. Floating times remain floating. This is an event export, not a backup of tasks, alarms or every calendar property.

Examples contain invented demonstration data. Replace it before using any export.

Privacy: files are processed in your browser and are never uploaded.

Choose what one row should represent

Leave Expand recurring events unchecked when you want the stored event records and their rule strings. A weekly series remains a series row, with separately stored edited exceptions represented as their own records. This is useful for inventorying how a calendar was authored or reviewing event descriptions without multiplying every recurring appointment.

Check the option when you need occurrence rows for a defined period. Enter Window start and Window end as UTC ISO date/time values. The end is exclusive, so an occurrence beginning exactly at that boundary is outside the expansion window. Nonrecurring event records remain records; the window is a recurrence-expansion boundary, not a universal filter that removes every standalone event outside the period.

How to use the ICS to CSV exporter

Press Try an example to examine the supplied fictional weekly meeting. Set the recurrence option and dates before opening your file, or process again after changing them. Use Choose file or drag in an .ics export. You can also paste calendar text into the provided field and press Process files. Keep the complete VCALENDAR wrapper around any pasted example.

Read the table before downloading events.csv. Its columns include uid, title, start, end, timezone, allDay, location, description, recurrence and recurrenceId. Open that CSV through your spreadsheet’s import function when you need control over dates and text fields. A spreadsheet may otherwise reinterpret ISO strings or event IDs, so retaining a raw copy of the downloaded CSV is useful.

Worked example: one series or three meetings

The sample event starts at 09:00 UTC on January 5, 2026, ends at 10:00, and uses FREQ=WEEKLY;COUNT=3. In series mode, its main event becomes one row with that recurrence rule. With expansion enabled and a window covering January, it produces occurrences on January 5, 12 and 19. Those rows share a series UID but represent different meeting dates.

If a valid recurrence exception moves the January 12 meeting to a different time, the expanded output uses the edited occurrence details. A cancelled exception is not emitted as an active meeting. Counting a raw RRULE record as one meeting would miss this distinction, while multiplying the series and exceptions independently could double-count an edited date.

ICS to CSV example result preview
Illustrative result from this ICS to CSV exporter using a fictional test file.

Timezones and all-day dates in the spreadsheet

The ICS to CSV exporter uses embedded VTIMEZONE definitions when resolving named event timezones. A TZID that cannot be resolved is rejected instead of being silently treated as UTC. UTC events and floating events remain distinguishable in the output. Keep the timezone column beside the start and end columns when sharing the CSV; a local-looking time string on its own is not enough context.

All-day events keep date values and an allDay flag. Their exclusive end date still follows the calendar convention, not an inclusive spreadsheet date range. If you calculate duration from the CSV, decide whether you need elapsed hours, included calendar days or event counts before writing formulas. Those are different questions, especially across timezone changes.

Expansion limits and errors that deserve correction

The selected recurrence window may span at most five years. Output is limited to 20,000 rows, with at most 50,000 inspected occurrences per series. These limits keep an accidental endless or very frequent recurrence from consuming the browser indefinitely. Narrow the window when a dense schedule reaches a limit; removing a safety boundary would not make the calendar more accurate.

Impossible dates, reversed event times, duplicate UID/recurrence identities and orphan exceptions stop expansion. Compare an error with the source calendar and fix its authoring problem. This is an event export rather than a full calendar backup: tasks, alarms, access permissions and arbitrary custom properties are not represented by the selected CSV columns.

Review, edit and return to a calendar carefully

Use the ICS validator to check basic structure before investigating a difficult export. After spreadsheet edits, CSV to ICS can generate a calendar from its supported mapped columns, but the round trip does not preserve every original calendar property or named timezone definition. Keep the original .ics file as your authoritative backup. To combine calendars without converting them into spreadsheets, use the ICS merger and review identity conflicts before importing its output.

Common ICS to CSV exporter errors and how to fix them

When the ICS to CSV exporter cannot use a file, it stops with one clear message instead of producing a half-finished download. These are the problems people run into most often, with the fix for each. Most ICS to CSV exporter errors trace back to how the source file was exported, so correcting the source and running the ICS to CSV exporter again is usually faster than working around the message.

  • The calendar or recurrence rule is malformed. The file does not start with BEGIN:VCALENDAR, ends without END:VCALENDAR, or a component is not closed. Calendar exports cut off during download often fail this way.
  • A time zone is missing or has conflicting definitions. An event refers to a TZID that the file does not define. Export the calendar again with time zones included.
  • Use a date window of at most five years and a bounded recurrence. Expansion of recurring events is limited to five years and 50,000 inspected occurrences per series. Narrow the window.
  • The file contains too many records for this browser tool. The export would exceed 20,000 rows. Use a shorter window or turn off expansion.

Privacy: the ICS to CSV exporter runs in your browser

ICS to CSV exporter processing happens with JavaScript in a background worker on this page. Your file is not uploaded to a FileFix server, and the results you download are created in your browser’s memory. Calendars reveal meetings, names and locations, so local processing keeps that schedule private. When you finish with the ICS to CSV exporter on a shared computer, clear the selection or close the tab.

For the underlying format rules, see the RFC 5545 (iCalendar) and RFC 4180 (CSV). The ICS to CSV exporter follows the subset described on this page rather than every optional feature in those documents.

Sources

Questions about this tool

Does one recurring series become one row or many?

You choose. With expansion off, the stored series record retains its recurrence rule. With expansion on, supported occurrences within the specified window become rows.

Does the date window remove all old standalone events?

No. It bounds recurrence expansion. Nonrecurring records are still exported, so filter standalone rows in your spreadsheet if needed.

Why does the exporter reject my timezone?

A named TZID must be resolvable from the calendar’s embedded timezone definitions or supported registered zone data. The tool does not guess an unresolved zone.

Can I use the CSV as a complete calendar backup?

No. It exports selected event fields. Calendar tasks, alarms, permissions and every custom property are outside that CSV scope.

Are cancelled recurrence exceptions included as meetings?

Cancelled events or exceptions are not emitted as active occurrence rows. Review the source file if you need an audit of cancellations themselves.

Review the supported formats and limitations before using an output file. File processing happens in your browser.