en

ICS to CSV

Convert a calendar export (.ics) to a CSV table locally - one appointment per row, no upload.

Running locally on your device ...

Running locally on your device ...

0%

Is my file uploaded?

No. Everything runs in your browser - your file never leaves your device. How this is verifiable

No upload100% local
Your content stays with youno third-party access
Hosted in GermanyGlobal Content Delivery
Independently auditedTLS A+ · HTTP headers A+

Google Calendar, Outlook and Apple Calendar export appointments as an iCalendar file (.ics), often with many events in a single file. If you want to analyse, filter or import these appointments into another system via a spreadsheet, CSV is the more common format.

This tool reads the file entirely locally in the browser following the iCalendar grammar (RFC 5545) and splits every BEGIN:VEVENT block into its own row: title, start, end, all-day flag, location, description and unique ID land in fixed columns. Start/end times are output in readable ISO 8601 format.

Your appointments never leave your device in the process - unlike online converters that upload a calendar file with private appointments to a third-party server. The conversion even works offline.

Specifications

Specifications
Input formatsICS
Output formatCSV
Batch processingNo
ProcessingLocally in your browser (JavaScript)
File uploadNone

In 3 steps

  1. Drop or pick your .ics file.
  2. The tool splits each appointment into a row locally.
  3. Download the CSV file.

Limitations: Fixed columns: summary, start, end, all-day, location, description, uid. Recurring events (RRULE), reminders and attendee lists are not read - every event is treated as a single, non-recurring row. A timezone-qualified local time is carried over unchanged, without converting via a timezone database. Very large calendars need memory.

FAQ

Is my calendar file uploaded?

No. The conversion runs entirely locally in the browser - your appointments stay private.

Are recurring events expanded into several rows?

No, every VEVENT block is treated as a single row, without expanding the recurrence rule.

How are all-day events recognized?

Via the dedicated all-day column (true/false), derived from the DTSTART date type.

Are reminders carried over?

No, reminders (VALARM) are not read.

CSV to ICS instead?

Yes, use the "CSV to ICS" tool.

Related tools

CSV to ICS · VCF to CSV · CSV to VCF · CSV to JSON