ICS to CSV
Every event in the file as a row you can sort, filter and total — with a straight answer about which timezone each time is really in.
- SECURE
- NO UPLOADS
- NO SIGNUP
- BROWSER BASED
- FREE
- FOREVER.
Support us with a link or a share
Drop an .ics file here
Nothing is uploaded. The file is read in this tab.
Can you convert ICS to CSV?
You can, and the whole job takes about four seconds. Hand over the file, tick the fields you want as columns, and a table appears that you can paste into a spreadsheet or save as a download. Six events or six hundred, the work is identical; the count in the receipt tells you which you are holding.
The reason to bother is that a calendar file is a terrible thing to read and a spreadsheet is a good one. Once the appointments are rows you can sort them by date, filter out the canceled ones, count how many hours a conference actually runs, or hand the lot to somebody in accounts who has never heard of iCalendar and never needs to.
An .ics file and a CSV file, in brief
| Full name | iCalendar |
|---|---|
| Extension |
.ics, .ical, .ifb
|
| Format type | Plain text calendar events, RFC 5545 |
| MIME type |
text/calendar
|
| Full name | Comma-Separated Values |
|---|---|
| Extension |
.csv
|
| Format type | Plain text table, one record per line |
| MIME type |
text/csv
|
Choosing what ends up in the columns
A single appointment in one of these files carries close to twenty useful fields, and almost nobody wants all of them. So the picker lists every one, ticks the useful populated fields to start with, and shows how many of your appointments genuinely have something in each — four out of six with a location, one out of six with a repeat rule, none at all with a web address.
That last figure matters more than it sounds. Most converters emit a fixed set of headings whether or not there is anything underneath them, and you end up scrolling past four blank columns forever. Here a field that is empty in every appointment is marked as empty and left unticked, though you can tick it anyway if you want the heading present for a later import.
The timezone question, which is where these go wrong
A spreadsheet cell holds one thing. A calendar file can record a start in four different ways, and only two of them survive being flattened without losing their meaning.
An hour ending in Z is universal time — a fixed point on the world clock. An
hour tagged with a city is anchored too, just expressed on that city's clock. Both of those
can be restated in whatever zone suits you, and the tool will do it per appointment, so a
summer date and a winter date get the offsets they each deserve rather than one blanket
adjustment.
The third kind names no zone whatsoever. Such an entry means the hour written, read on whichever clock the reader happens to own, so it lands at a different instant for a person in Denver than for a person in Dublin. There is no point of reference in it, which means there is nothing to recalculate, and these values are copied across untouched no matter which option you choose. Anything else would be fabrication. The fourth kind is a bare date for something lasting all day, and the same applies.
Because a plain spreadsheet cell cannot say any of that on its own, Start basis and End basis come ticked by default. Each names the basis of the exported cell: UTC after a UTC conversion, the selected city after a city conversion, or floating when the source could not be converted. That is the distinction a spreadsheet destroys silently and nobody notices until a meeting is missed. Files exported from Outlook get the same treatment when they use Microsoft's own zone vocabulary, which browsers have no rules for: the hour is left as written and the column says the name was not recognized.
The all-day trap, and why the End column disagrees with the file
Something occupying only the 14th is recorded as finishing on the 15th, because the closing boundary marks where it stops rather than the final day it fills. Copy that number straight into a spreadsheet and every one-day fixture looks like a two-day one, which is precisely what the converters ranking above this page do.
So the End column gives the last day genuinely covered, and if you would rather have the file's own boundary there is a separate End as written field holding the original untouched. Same for the start: tick Start as written and you get the compressed original alongside the readable version, which is handy when you are debugging a booking system rather than planning a week.
Some files write a DURATION instead of DTEND. In that case the
readable End is calculated from the start, while a separate Duration column preserves the
file's own value beside it.
How do I convert an ICS file to Excel?
Convert to CSV here, then open the CSV — Excel treats one as a workbook from the moment it opens, and there is no separate step. Two settings are worth a glance before you download. Leave the byte order mark ticked, or accented place names arrive as mojibake. And if your copy of Excel runs in a European locale, switch the separator to a semicolon, otherwise every row lands in a single column and looks broken.
The date format picker matters here too. The spreadsheet option writes the plain
2026-08-12 12:00 shape that Excel and Google Sheets recognize as a real
date-and-time value you can subtract one from another. The ISO option is stricter and
carries the offset inside the cell, which is better for archiving and worse for arithmetic.
Sheets users take the same route through File, then Import.
Can I export a Microsoft calendar to a CSV file?
Outlook exports your own calendar to CSV directly, under File, then Open & Export. What it will not do is turn one invitation somebody emailed you into a table, and that is the situation this page exists for — you have a file, not a mailbox. Save the attachment, drop it here, and nothing touches the calendar you actually live in.
The same holds for a feed you have subscribed to. Download it once through your browser and the result is an ordinary file this page reads like any other.
How to convert an .ics file to another format
CSV is the format worth having, because it is the one everything else reads: spreadsheets, databases, Python, R, whatever the person you are sending it to happens to use. Getting from there to JSON or a database table is a step somebody else's tool already handles well.
What this page will not produce is an .xlsx workbook. That is a real
difference rather than an oversight — a workbook can hold formatting and column types, and
pretending a renamed CSV is one causes more trouble than it saves. Nor does it expand a
repeat rule into individual dates; the rule is translated into a sentence and kept in its
original form beside it. Excluded dates and replacement occurrences have their own columns,
and the receipt says explicitly that a series remains one rule row. Generating every
occurrence is a different job, and a list that is almost right is worse than the rule.
Both of those limits come straight from how the format is put together, and they make more sense once you have seen one of these files from the inside. The structure of an ICS file walks through the components and properties in order — which is also the quickest way to work out whether a field you were expecting is missing from the file or merely missing from the export.
Spreadsheet to calendar, the other direction
Going back the other way is a real need, and it has its own page: Excel to Calendar takes a table of dates and produces a calendar file from it. There is deliberately no separate CSV-to-ICS page here, because it would be the same job with a narrower door — schedules tend to live in spreadsheets rather than in hand-written comma-separated files, and one good page beats two thin ones.
If you only want to look at what you were sent, converting is more machinery than you need. The ICS viewer lays out the same file as readable appointments with no table involved. Building a file from scratch is the ICS file generator, and if you would like the format itself explained, start with what an .ics file is.
Nothing leaves this tab
One of the results above this page in Google announces a fifteen-megabyte ceiling on the files it will accept, which tells you the file is going to their machine. Ours has no ceiling because there is no machine to send it to: the reading, the table and the download are all built by your own browser, and you can watch the Network panel stay empty while it happens.
That is not a small thing for this particular format. Calendar exports carry the email addresses of everyone invited, conference numbers, access codes, and the plain fact of where a named individual will be at a stated hour. It is an odd thing to post to a stranger in exchange for a table. Large files are handled by warning you what your own machine is in for and then getting on with it, rather than by refusing.
The output is written with the carriage returns that the CSV convention asks for, so a Windows spreadsheet opens it without complaint. What the file you handed over used is a separate matter, and one this page makes no claim about — text pasted into a box on a web page has already had its line breaks rewritten by the browser, so any answer would be a guess dressed as a fact.
Questions
Can you convert ICS to CSV?
Yes, and most of the work turns out to be deciding what a column ought to be. An event is not a flat record: a start may or may not name a timezone, one repeat rule stands in for dozens of occurrences, and the value the file wrote is not always the value you want to read. Nineteen fields are on offer and you pick which of them become columns — the interpreted start and the untouched one can sit side by side if that is what you need. The table under the picker redraws as you go, so the shape of the download is visible before you commit to it. Reading and writing both happen right here, with nothing waiting on a server.
How do I convert an ICS file to Excel?
Convert it to CSV here and open the CSV in Excel — that is the whole route, and Excel treats a CSV as a spreadsheet from the moment it opens. Leave the byte order mark ticked so accented characters survive, and pick the semicolon separator if your Excel is set to a European locale, otherwise every row lands in one column. If you would rather work in Google Sheets, use File then Import and choose the CSV.
Can I export a Microsoft calendar to a .CSV file?
Outlook can export to CSV directly, through File then Open & Export then Import/Export. What it will not do is convert a single .ics attachment somebody sent you, which is the case this page is for: you have one file, not a mailbox. Export the .ics out of the invitation, drop it here, and you get the same kind of table without touching your own calendar.
How do I convert an .ics file to another format?
CSV is the one worth having, because every spreadsheet, database and scripting language reads it. From CSV you can reach anything else — JSON, a database table, a printed agenda. Going the other way, from a spreadsheet back to a calendar file, is a different tool: that is Excel to Calendar.
Why does one of my events say "floating" instead of a timezone?
Because the file genuinely does not say. A start written as 20260813T140000, with no Z at the end and no timezone named, means two o'clock wherever the reader happens to be — so it is a different moment for every person who opens it. Those times are written into the CSV exactly as the file has them, in every mode, because there is nothing to convert. The Start basis and End basis columns tell you which cells are affected.
Is my calendar file uploaded anywhere?
No — the parsing happens on your own machine and nothing is transmitted. This format earns the question more than most, and the reason is the conversion itself. An .ics is awkward folded text that half hides what it holds; a CSV is a grid anyone can sort and read at a glance. The Location cell names the room, the address or the video link. The Description cell carries the invitation body, which is where a meeting keeps its dial-in number and its passcode. Turning something that opaque into something that legible is a good argument for doing it where only you can see it.