ICS to CSV Converter
Turn a .ics calendar into a spreadsheet-ready CSV — every event, in your browser.
runs entirely in your browserDrag a .ics file anywhere onto this box, or paste the calendar text below. It never leaves your browser.
need more advanced event creation? Just Schedule Me builds calendar events for you — from a screenshot, a photo, or a line of text.
Every event out of the calendar and into a spreadsheet
An .ics file is a calendar's native format — plain text, but wrapped in BEGIN:VEVENT blocks, folded lines, and time zone identifiers that a spreadsheet can't read. This converter unpacks all of it: it parses every VEVENT in the file, pulls out the title, start, end, location, description, and recurrence rule, and lays them out as rows you can open in Excel, Google Sheets, or Numbers.
The column layout matches Google Calendar's own import format — Subject, Start Date, Start Time, End Date, End Time, All Day Event, Description, Location — so a one-off event imports straight back into a calendar if that is where you are headed. Dates come out as MM/DD/YYYY and times in 12-hour form, the shape Google's importer expects. Recurring events are the exception: Google's CSV importer ignores recurrence, so a repeating series is kept as an extra Recurrence column for reference but imports as a single event, not the whole series.
You see the events as a table before you download anything. If an event has no readable start date it is skipped rather than written as a blank row, and the count tells you exactly how many were left out, so a file that is partly broken still gives you every usable event instead of an error.
Time zones handled honestly
Calendar times carry a zone. An event written as 9:00 in America/New_York is a different absolute moment than 9:00 in London, and a naive converter that drops the zone will shift half your events by hours. This tool reads the TZID on each event and anchors the time correctly, including the Windows zone names ("Eastern Standard Time", "GMT Standard Time") that Outlook writes instead of standard IANA names.
All-day events are treated as dates, not midnight timestamps, so a holiday stays on its day no matter where you open the sheet. A calendar's all-day end date is stored one day past the last day; the CSV corrects that back to the inclusive last day, so a one-day event reads as ending the day it starts.
Nothing uploads
The parsing and CSV generation run entirely in your browser with JavaScript. The file you paste or drop is read into the page and never sent to a server, which is why it works offline once the page has loaded and why there is no size cap tied to an upload limit.
Most "ICS to CSV" sites make you upload the file, wait for a server round-trip, and trust that the calendar — often a private one, full of names, addresses, and meeting notes — is deleted afterwards. Here the question never comes up, because the file does not leave the tab.
fair questions
- What is an ICS file?
- It is a plain-text calendar file in the iCalendar format (RFC 5545), the standard every calendar app can export and import. It holds one or more events, each with a start, end, title, and optional location, description, and recurrence rule. The extension is usually .ics or .ical.
- Will the CSV import into Google Calendar or Excel?
- Yes. The columns match Google Calendar's import format (Subject, Start Date, Start Time, and so on), so it imports directly, and because CSV is a plain spreadsheet format it also opens straight in Excel, Google Sheets, or Numbers.
- Does it handle time zones correctly?
- Yes. Each event's time zone (its TZID, including the Windows zone names Outlook writes) is read and applied, so times land on the right moment rather than being shifted. All-day events are kept as dates on the correct day.
- What happens to events with a missing or broken date?
- They are skipped instead of written as blank rows, and the tool tells you how many were left out. Every event that does have a usable start still appears in the CSV, so a partly malformed file is not a dead end.
- Are recurring events preserved?
- The recurrence rule (RRULE) is written to a Recurrence column so you can see it, but no CSV calendar import — Google's included — reads that column. Importing the CSV recreates each repeating event once, not the whole series. If you need every occurrence, import the original .ics file instead, which does carry the recurrence.
- Is my calendar uploaded anywhere?
- No. The file is read and converted entirely in your browser and is never sent to a server. That is also why the converter keeps working with no connection once the page has loaded.
this site is built on Guardrails, the guard-railed boilerplate for shipping real products with AI agents.