CSVICSConverter

ICS to CSV converter with durations and hours preview

Open a calendar export, see every event on the grid with anything malformed listed by line number, and download a spreadsheet — one row per event, with its duration — for billing, payroll or a clean re-import.

Samples

Sample loaded — replace it with your own file.

or paste from a spreadsheet

0 events Dates: —

Load a sample or drop a file to see it on the calendar.

Free · up to 2,000 events

Need more?

Look inside the .ics file

    

How it works

Calendar file to spreadsheet

  1. Export the calendarGoogle, Outlook and Apple all export .ics files; unzip Google’s download first.
  2. Drop the .icsFolded lines are unfolded, escaped text decoded, and each VEVENT read with its time zone.
  3. Review the grid and notesEvents show on the calendar; validation notes cite the line number in the file.
  4. Download CSVA UTF-8 CSV that opens correctly in Excel and Google Sheets, with a duration column.

Times stay in the zone the file specifies: an event written as DTSTART;TZID=America/New_York:20261109T080000 stays 08:00 New York time in the spreadsheet. Events written in UTC (…Z) are converted to the zone chosen in step 3, so a mixed export ends up in one consistent wall-clock time.

Examples

Exports to try

The front-desk export is a real .ics with attendees, an all-day on-call day and one overlapping booking. The clinic and release samples show the round trip: a table converted to calendar data and back to a spreadsheet.

Sample .ics Reverse Audit

A front-desk roster exported as .ics: turned back into a table, hours per person, and one overlapping booking.

Medical Clinic Staff Shift Roster

8 nurses, day / evening / night and 12.5-hour long days across ER, ICU and Pediatrics, with one deliberate double-booking.

Global Remote Team Release Calendar

Release steps owned by teams in New York, London and Tokyo, each row in its own IANA time zone.

Who it is for

Why people turn calendars back into rows

Payroll and timesheets

Shift calendars are the record of who worked when. Durations per event, and in Pro the totals per person and week, feed straight into payroll.

Client billing

Consultants and therapists keep sessions in a calendar. Export a month, filter by attendee, sum the duration column.

Fixing files that will not import

The notes show what Google or Outlook would choke on. Our Google import guide covers the common rejection messages; the RFC 5545 reference explains each property.

Reference

Where each CSV column comes from

CSV columniCalendar sourceNotes
SummarySUMMARYEscaped commas and semicolons decoded
Start / End date and timeDTSTART, DTEND or DURATIONAll-day end written inclusively
Duration (hours)computedMeasured between real instants, so DST changes count
Time ZoneTZID parameterUTC times converted to the chosen zone
AssigneeATTENDEE;CN, ORGANIZER;CN, CATEGORIESFalls back to X-WR-CALNAME
Recurrence RuleRRULEKept as text
UIDUIDLets you match rows back to events

The file starts with a UTF-8 byte-order mark so Excel on Windows shows accented names correctly, and any cell that begins with =, +, - or @ is prefixed with an apostrophe so a spreadsheet never runs it as a formula.

FAQ

ICS to CSV questions

How do I get an .ics file out of Google Calendar?

In Google Calendar on the web open Settings › Import & export › Export. Google downloads a ZIP with one .ics per calendar; unzip it and drop the calendar you need here. For a single calendar, Settings › the calendar’s name › Export calendar does the same.

And from Outlook or Apple Calendar?

Outlook desktop: File › Save Calendar, choose a date range and “Full details”. Apple Calendar on a Mac: select the calendar, then File › Export › Export. Both produce an .ics that this page reads.

What columns does the CSV contain?

Summary, start date and time, end date and time, all-day flag, duration in hours, time zone, location, description, assignee (from ATTENDEE or ORGANIZER names, CATEGORIES or the calendar name), the repeat rule and the UID. All-day end dates are written inclusively, the way people read them.

Are repeating events expanded into one row per date?

The free CSV keeps one row per VEVENT and includes its RRULE text, so nothing is lost. If you need every occurrence as its own row with holidays removed, that is part of the Pro repeat pack’s expanded-occurrences.csv.

What does the validation check?

Missing DTSTART (the event is skipped and listed), missing SUMMARY or UID, events that end before they start, duplicate UIDs, TZIDs that are Windows names rather than IANA zones, TZIDs without a VTIMEZONE block and unfolded lines over 75 octets.

Can it total hours per person for payroll?

The free CSV includes a duration per event so you can sum it yourself. The Pro hours pack does the totals for you: hours by person, by ISO week and by day, night and weekend, every double-booking pair, and an import preflight report as PDF and JSON.

The converter family

Same engine, four starting points