No processing of your file contents takes place on any server. You need no data-processing agreement with gottrix to handle confidential or business documents.
Hosted in GermanyGlobal Content Delivery
Origin servers at Hetzner in Germany, delivered worldwide through a content delivery network. Your file contents are never transmitted in the process - they never leave your device.
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 formats
ICS
Output format
CSV
Batch processing
No
Processing
Locally in your browser (JavaScript)
File upload
None
In 3 steps
Drop or pick your .ics file.
The tool splits each appointment into a row locally.
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.