AnyFormat

00 ICS → CSV

ICS to CSV

Your calendar as a spreadsheet, with Google and Outlook presets.

01ICS in
02CSV out
03Options 3

The two import presets use the exact column names and MM/DD/YYYY dates those importers require.

  • No upload The conversion runs in this tab. Your file never travels — not to us, and not to the advertising.
  • No sign-up, no email, no daily cap There is no account system to sign up to.
  • No size limit we invented Only your device's memory — about ~2 GB on a desktop browser, ~400 MB on a phone.
  • Turn your Wi-Fi off and convert anyway The conversion needs nothing but this page. Ads will not load without a connection; your file will still convert. That is the whole claim, and it takes five seconds to check.

Turns a calendar export into a spreadsheet — one row per event, with the fields you would expect. The usual reasons are billing a month of meetings, auditing where the week went, or moving a calendar between two systems that will not talk to each other.

Recurring events stay one row

A weekly meeting is stored in an .ics as a single event with a repeat rule (RRULE:FREQ=WEEKLY;BYDAY=MO), not as fifty-two events. That rule is preserved verbatim in a Recurrence column and the occurrences are not expanded.

This is deliberate. Expanding requires deciding how far into the future to go — a rule with no end date is infinite — and it means resolving exceptions, moved instances and cancelled occurrences, each of which can be wrong in a way you would not notice in a spreadsheet of four hundred rows. Keeping the rule keeps the file honest about what it actually contains.

If you need one row per occurrence, the reliable route is to have the calendar application itself expand them: export a fixed date range from Google Calendar or Outlook, which writes out the individual instances.

Time zones, and the trap in them

Times come across exactly as the file records them, along with the zone. A DTSTART;TZID=Europe/Oslo:20260817T090000 gives you 2026-08-17T09:00:00 and Europe/Oslo in a separate column. A time ending in Z is UTC, and is marked as such.

The trap is that a spreadsheet has no concept of a time zone. If you sort or subtract these values, you are comparing wall-clock times from possibly different zones, which is not the same as comparing moments. For a calendar in one zone it makes no difference; for a travelling calendar it does.

All-day events have a date and no time, and are flagged in their own column — they are genuinely different from an event that happens to start at midnight.

What an .ics holds that a spreadsheet cannot

Reminders (VALARM) are dropped — there is no column that means "notify me fifteen minutes before". To-do items (VTODO) and journal entries (VJOURNAL) are not events and are not converted; if your file contains them you are told how many. Attachments and free/busy blocks are skipped.

Everything dropped is counted and reported after the conversion, so you know what is not in the spreadsheet.

The import presets

Google Calendar and Outlook both accept a CSV import, and both are fussy about it: specific column names, and dates as MM/DD/YYYY regardless of your locale. Choosing a preset produces exactly that layout. Use "Everything" when the destination is a spreadsheet rather than another calendar.

Other names for this

Also searched as “ical to csv”, “calendar to spreadsheet”, “ics to excel”.

Questions

Why is my weekly meeting only one row?
Because that is how the calendar stores it — one event plus a repeat rule. Expanding it would mean choosing an arbitrary end date and resolving exceptions, both of which introduce errors. The rule is kept in full in the Recurrence column.
How do I get one row per occurrence?
Export a fixed date range from Google Calendar or Outlook instead of the whole calendar. Those exports contain the individual instances already expanded.
Can I import the result back into Google Calendar?
Yes — choose the Google Calendar preset, which produces the exact columns and date format its importer expects.
Are reminders included?
No. A spreadsheet has nowhere to put them. The tool reports how many were dropped.
Is my file uploaded?
No. Everything runs in this tab. That matters more here than almost anywhere else on the site — a calendar is your movements, an address book is other people’s personal data, and a GPS track is where you live and where you run. None of it is sent anywhere.
Can I convert several files at once?
Yes — drop as many as you like, or a whole folder. Each keeps its original name and you can download them individually or as a ZIP.