Blog / How to Convert an ICS File to CSV
· 4 min read

How to Convert an ICS File to CSV

Turn an .ics calendar file into a CSV spreadsheet — which columns to keep, how to handle all-day events and timezones, and why date formats break on import.

Calendar files are built for display, not analysis. The moment you need to total hours, group events by client, or hand a schedule to someone in a spreadsheet, you need CSV.

The Quick Way

  1. Open your .ics file in ICS Viewer — drop the file in, or paste a feed URL.
  2. Use the export option in the calendar header and choose CSV.
  3. Open the downloaded file in Excel, Google Sheets, or Numbers.

Everything happens in the browser, so a calendar containing client names, addresses, or meeting links is never uploaded anywhere.

Which Columns You Actually Need

A useful export is narrower than you would expect. These carry almost all the value:

  • Title (SUMMARY) — what the event was.
  • Start and End (DTSTART, DTEND) — as separate date and time columns if you plan to pivot by day.
  • Duration in hours — the single most useful derived column; see below.
  • All-day flag — so you can exclude these from hour totals.
  • Location and Attendees — only if you actually filter on them; they are long and make the sheet hard to read.

Skip UID, SEQUENCE, and DTSTAMP unless you are reconciling two exports against each other, in which case UID is the key you join on.

Adding a Duration Column

If your export has raw start and end timestamps, add a duration column:

=(EndCell-StartCell)*24

Spreadsheets store date-times as days, so multiplying by 24 gives decimal hours. Format the result as a plain number with two decimals — not as a time, or it will wrap at 24 hours and a 30-hour total will display as 6.

Three Things That Will Bite You

1. Date formats change on import

Opening a CSV by double-clicking lets Excel guess at date parsing, and it guesses using your system locale. A file written as 2026-03-04 can silently become 3 April or 4 March depending on the machine. Use Data → From Text/CSV instead and set the date columns explicitly, or keep dates in ISO YYYY-MM-DD format and treat them as text.

2. All-day events are not zero-length

An all-day event is stored as a date range where the end date is the day after it finishes — a single all-day event on 4 March has DTSTART:20260304 and DTEND:20260305. Naively computing duration gives 24 hours per all-day event, which will wreck any hours total. Filter them out with the all-day flag before summing.

3. Timezones flatten silently

A CSV has no concept of a timezone. Events stored in different zones, or in UTC, get written as whatever the exporter decided. If your calendar spans zones, confirm what the export used before doing arithmetic on it — an hour of drift across a month of events is easy to miss and hard to explain afterwards.

Related

Want to preview an ICS file right now?

Open ICS Viewer →