Free online ICS to CSV converter. Paste iCalendar text or add a .ics file and every event becomes a row with Summary, Start, End, Location and Description columns. It runs in the browser, so nothing is uploaded.
Calendar tools by OnlinePCApps since 2013
A .ics file suits a calendar app and tires a human reader. The free online ICS to CSV converter lays the same events out as rows to sort, total and share.
A work calendar as a sheet answers questions a calendar app hides, like how many hours went to meetings, which weeks ran heavy and where the gaps sat. As rows of events the numbers add up and sort with a click.
Another calendar, a planner or a report that expects a table cannot load a raw .ics, but it can load a CSV of events. That makes the CSV the bridge for a schedule moving between systems.
A class schedule or a project calendar works better as a timetable than as a calendar grid. Every event on its own row, with a start, an end and a place, builds the timetable a team or a class can share and print.
Use the ICS Payload box for pasted iCalendar text, or press Upload to add a .ics or .txt file. Exports from Google Calendar, Outlook and Apple Calendar all fit, holding one event or a year of them.
The Parsed Events table builds itself as text is typed, with Summary, Start Time, End Time, Location and Description columns beside a Total count. The Raw CSV view swaps in the text itself. Dates appear as the file spells them, like 20260404T103000Z.
Copy CSV sends the text to the clipboard, and Download CSV saves a calendar events file. Open it in Excel, Google Sheets or any planner with a CSV import. The source .ics is never touched, so it can be parsed again at any time.
Converting an ICS means turning every VEVENT block into a table row. The online ICS to CSV converter does that work inside the browser tab.
One .ics can carry a full calendar, with a BEGIN and END pair around every event. Every pair turns into a row, so a block of raw text ends up as an appointment list that sorts and counts.
The header never varies: Subject/Summary, Start Time, End Time, Location, Description. A block with neither a title nor a start time is dropped.
Start and end values are copied exactly as the file holds them, like 20260404T103000Z for UTC or 20260415 for an all-day event. They are not turned into a spreadsheet date, and a TZID tag is not carried over.
Parsed Events shows the Total beside a table, and the Raw CSV switch swaps in the plain text. Double quotes wrap all values, which keeps a comma inside its own cell.
Calendar to spreadsheet, iCal to CSV and calendar to Excel all name one job, and the converter above does it without touching the source .ics.
A calendar carries more fields than a flat sheet can use, so the tool keeps five. The cases run from ones handled cleanly to ones left out.
| The case | Result | What happens and why |
|---|---|---|
| Many events | row per event | A VEVENT block, from BEGIN to END, makes one CSV row. |
| Fields | five columns | Summary, start, end, location and description. Organizer, status and attendees are not exported. |
| Timezone | as written | The online ICS to CSV converter keeps the value text. A TZID tag is dropped, so check the zone in the .ics itself. |
| All-day | a plain date | Shows as a date like 20260415. The end is the day after the event stops, which is how iCalendar writes it. |
| Recurring | one row | A repeating event is one row with its first date. The rule is not expanded into dated occurrences. |
| Exceptions | not applied | Excluded dates are not applied, since no rule is expanded. |
| Escaped text | as typed | A backslash-escaped comma or line break stays as typed. Values are double-quoted, with any inner quote doubled. The post Why CSV files break and what they never tell you covers wider CSV traps. |
| Folded lines | not rejoined | A value the calendar wrapped onto a second line stays split, so it can come out short. Background on odd text lives in Character encoding explained and why text arrives broken. |
| Reminders | last one wins | A reminder inside an event can carry its own DESCRIPTION line, and the last one replaces the event description. |
| Source file | .ics .txt | Pasted text or an uploaded file both work. A block must hold a title or a start time to count as a row. |
| Output | calendar events file | Copy CSV puts the text on the clipboard, while Download CSV saves calendar-events plus a time stamp as the file name. |
| Where it runs | on the device | The calendar is parsed in the browser, so nothing is uploaded. |
How an ICS Becomes a CSV
An ICS file is iCalendar text, the standard laid out in RFC 5545. A calendar runs from a BEGIN to an END line, and inside it every event is its own block, from BEGIN VEVENT to END VEVENT, carrying a SUMMARY for the title, a DTSTART and DTEND for the times, plus LOCATION, DESCRIPTION, ORGANIZER and more. Turning that into a CSV gives every event a row and every property a column, and two parts of it deserve care. The first is time. A start can carry a named timezone, sit in UTC with a trailing Z or float as a plain local time with no zone at all, and the three mean different moments. An all-day event is a date with no time, and its end marks the day the event stops, one past the last day it covers. The second is repetition. A recurring event is stored once, as a single event holding a rule like every weekday until a date, not as a list of every occurrence. The online ICS to CSV converter keeps five fields, Summary, Start, End, Location and Description, and copies the date text exactly as the file holds it. It does not expand a rule, reformat a date or carry a timezone tag. Excel shows a value like 20260404T103000Z as text, so a DATE and TIME formula turns it into a real date. A long line that the calendar broke in two stays broken. The references below define the standard.
Both get events into a table. The split is a general CSV from any .ics against one app's own export.
| Point of comparison | This tool Online ICS to CSV converter On the device | Calendar export Loaded into an outside account |
|---|---|---|
| Where the events go | Parsed on the device | Held in the account |
| Price and caps | Free with no sign-up | Free tier often capped |
| Any .ics from anywhere | Any .ics from any app | Only its own calendar |
| Expand a repeating event | One row, rule not expanded | Expanded server-side |
| The exact column layout | Five fixed columns | Its own exact headers |
A calendar app export wins when the events already live in that app and its own exact CSV headers are the goal, since it can expand recurrences on its side. The online ICS to CSV converter wins for any .ics from any source, parsed in a tab into a general CSV, ready to clean before it goes anywhere. Online file tools and whether yours uploads goes deeper on where a file goes.
The browser opens the .ics with its file reader and works through it in JavaScript, right on the machine, so every event stays where it started. Nothing is handed off to a server to get the CSV.
A calendar lays out where a person will be and who they meet, with names, locations and private notes in every event. An upload-based tool would ship the entire schedule off to read it, far more risk than a plain format change should carry.
Every option here moves events out of a calendar and into a table or another tool. Setup, reach and privacy are where they differ.
A Google export, a script and a viewer deal with events, but all three sit behind an account, a terminal or a screen. The online ICS to CSV converter above accepts any .ics and returns a plain CSV.
Keep these in mind and the export comes out cleaner.
A time can carry a zone, sit in UTC or float with no zone at all, and the CSV keeps only the value. A trailing Z means UTC. A value without Z is local to the calendar, so check the .ics before comparing across timezones.
A repeating event is stored once, as a rule, so it lands as a single row. The online ICS to CSV converter does not expand the rule, so a weekly meeting shows once, with the date of its first occurrence.
An all-day event marks its end as the day after the last day it covers, which the format calls an exclusive end. A one-day event on the fifteenth shows an end of the sixteenth, so treat the end as where the event stops, not its final day.
The online ICS to CSV converter works on one .ics file or paste per pass, which suits the file in hand. Joining a folder of calendars, or expanding a rule across years, is script or desktop work.
A folder of separate .ics files is read together and written to one CSV, so events from several exports land in a single sheet.
A rule that repeats for years fans out into thousands of dated rows, with excluded dates removed, more than a browser tab holds at once.
A script runs on a schedule, so a nightly calendar export is turned to a CSV and dropped into a report without anyone opening a page.
No sign-up and no upload. Paste calendar text or drop in a .ics, and the online ICS to CSV converter hands back a CSV to copy or download.