Skip to content

ICS to CSV

Converter Tools ·
·

Turn an iCalendar .ics file into a clean CSV with Summary, Start, End, Location, Description, and Organizer columns. Runs in your browser.

Why pull events out of an .ics file?

You exported your calendar, opened the file, and got a wall of BEGIN:VEVENT blocks. Useless for anything practical. ICS is a transport format meant for calendar apps to talk to each other, not for a human to read or for a spreadsheet to import.

Paste that file here and you get a tidy table back. Each event becomes one row with six columns: Summary, Start, End, Location, Description, and Organizer. From there you can drop it into Excel, Google Sheets, a database import, or a quick pivot to count how many meetings ate your week.

How the parser reads the file

ICS has a few quirks that trip up naive splitting, so the parser handles them before anything else.

Folded lines get stitched back together. RFC 5545 says any line longer than 75 characters wraps onto the next line with a leading space or tab. A long description can spread across three or four physical lines. The parser detects those continuation lines and joins them first, so nothing gets cut mid-word.

Escaped characters get decoded. Inside ICS values, commas and semicolons are escaped as \, and \;, newlines show up as \n, and a literal backslash is \\. Those all get turned back into the real characters. So Sprint planning\, Q3 roadmap comes out as Sprint planning, Q3 roadmap.

Dates get made readable. A DTSTART can be a plain date like 20260704 or a full timestamp like 20260622T140000Z. The first becomes 2026-07-04. The second becomes 2026-06-22 14:00:00 UTC. The trailing Z flags UTC, and it’s labeled as such instead of silently dropped.

Organizer names come through clean. The ORGANIZER field is usually a mailto: URI, sometimes with a CN= parameter holding the person’s name. When the name is there, you get Dana Wu <[email protected]>. When it isn’t, you just get the email.

A note on the CSV it produces

The output follows RFC 4180. Any field containing a comma, a quote, or a line break gets wrapped in double quotes, and quotes inside the field are doubled. That’s what keeps a multi-line description from blowing apart your columns when you open the file in a spreadsheet. Rows are separated with CRLF, which is what Excel expects.

Hit Download and you get a calendar.csv ready to open. Or copy the text and paste it straight into a sheet.

Good to know

Only VEVENT blocks are read. If your file has VTODO tasks or VJOURNAL entries, those are skipped, since they don’t map to the same six columns. Recurrence rules (RRULE) aren’t expanded either, so a weekly standup shows up as a single row, not 52. You get the rule’s base event, not every occurrence.

Timezone IDs like DTSTART;TZID=America/New_York keep their raw local time. The parser doesn’t shift them to UTC, because doing that correctly needs the full IANA timezone database. The number you see is the number in the file.

Everything happens locally in your browser. The file’s contents never leave your machine, which matters since calendar exports tend to carry names, email addresses, and meeting notes you’d rather not upload anywhere.

FAQ

Does it handle multi-day or all-day events?

Yep. All-day events use the date-only form (20260704) and show up as 2026-07-04 with no time. Multi-day events just have a Start and End on different dates.

What if an event has no location or organizer?

That cell is left blank. Missing fields don’t break the row or shift your columns, they just come through empty.

Will it expand repeating events into separate rows?

Nope. A recurring event appears once, as defined in the file. Expanding RRULE into individual dates isn’t supported here.

Can I convert just a single event?

Sure. Paste one BEGIN:VEVENTEND:VEVENT block on its own and you’ll get a header row plus one data row.

Why are some descriptions wrapped in quotes?

That’s correct CSV behavior. Any value holding a comma or a newline gets quoted so spreadsheet apps read it as one field instead of splitting it.

converter ics icalendar csv calendar

Related Tools

CAMT to CSV

Converter Tools

Convert a CAMT.053 bank statement (ISO 20022 XML) into a clean CSV with date, amount, currency, credit/debit, counterparty, and reference columns.

CSV JSON Converter

Converter Tools

Bidirectional converter between CSV and JSON formats with proper quoting and escaping

CSV to CAMT

Converter Tools

Build a valid CAMT.053 ISO 20022 bank statement from a simple CSV. Map date, amount, currency, credit/debit, counterparty, and reference into one XML per row.

CSV to LaTeX Table

Converter Tools

Turn CSV data into a clean LaTeX tabular. Booktabs or hlines, bold headers, smart column alignment, and special chars escaped automatically.

CSV to MT940

Converter Tools

Turn a date, amount, description CSV into a simplified MT940 statement with :20:, :25:, :28C:, :60F:, :61:/:86:, and :62F: tags. Runs in your browser.

MT940 to CSV

Converter Tools

Parse an MT940 SWIFT bank statement into a clean CSV with date, value date, amount, debit/credit, type, reference, and description columns.

OFX to CSV

Converter Tools

Convert an OFX bank or credit-card statement to CSV with Date, Amount, Type, Name, Memo, and FITID columns. Parses unclosed SGML tags in your browser.

QIF to CSV

Converter Tools

Convert a Quicken QIF file into clean CSV with Date, Amount, Payee, Category, Memo, and Cleared columns. Parses every record right in your browser.

vCard to CSV

Converter Tools

Turn .vcf contact files into a clean CSV with name, phone, email, org, title, and URL columns. Parses one card or hundreds, all in your browser.

More in Converter Tools

Grams to Ounces Converter

Convert grams to ounces in your browser. 1 g = 0.035274 oz (1 oz = 28.3495 g). Built for cooking, mailing parcels, and weighing jewelry.

Hectares to Acres

Convert hectares to acres in the browser. One hectare is about 2.47105 acres. Live converter with a unit dropdown and a reference table for farmland and parks.

Inches to CM

Turn inches into centimeters in your browser. One inch is exactly 2.54 cm, so multiply and you're done. Live converter with a unit dropdown and reference table.

Inches to Feet

Convert inches to feet right in the browser. One inch is 1/12 of a foot, or about 0.0833 ft. Live converter with a unit dropdown and a quick reference table.

kcal to kJ

Convert kilocalories to kilojoules for nutrition tracking. 1 kcal equals 4.184 kJ. Live converter with a reference table for food labels, all browser-side.

Kg to Lbs Converter

Convert kilograms to pounds instantly. 1 kg = 2.20462 lb. Handy for body weight, gym plates, and luggage limits. Runs in your browser.

kJ to kcal

Convert kilojoules to kilocalories for food labels. 1 kcal equals 4.184 kJ, so 1 kJ is 0.239006 kcal. Live converter with a reference table, browser-side.

INI to JSON

Parse INI config text into clean JSON. Handles sections, comments, quoted values, and global keys, all in your browser.

KM to Miles

Convert kilometers to miles in the browser. One kilometer is 0.621371 miles. Live converter with a unit dropdown and a reference table for races and distances.

km/h to mph

Convert kilometers per hour to miles per hour instantly. 1 km/h equals 0.621371 mph. Live converter with a speed reference table, all browser-side.

Knots to mph

Convert knots to miles per hour instantly. 1 knot equals 1.15078 mph, since a knot is one nautical mile per hour. Live converter with a reference table.

kWh to Joules

Convert kilowatt-hours to joules. 1 kWh equals 3,600,000 J (3.6 MJ). Live converter with a reference table for energy bills and batteries, browser-side.

View all 62Converter Tools