CSV to ICS converter — spreadsheet in, calendar out

You have events in a CSV or Excel spreadsheet — a schedule, a shift plan, a conference agenda — and your calendar app wants an .ics file. Drop the file in, check the automatic column mapping, and export an iCalendar file that imports anywhere. Your data never leaves your device.

Drag & drop your .csv / .xlsx files here

first row must be the header row — up to 200 files per batch

Your files never leave your device — everything is parsed locally in your browser.

How it works

1

Drop your spreadsheet

A .csv (or .tsv, or the first sheet of an .xlsx) with one header row and one event per row. It is parsed on the spot by JavaScript in this tab — nothing is uploaded, ever.

2

Check the column mapping

The converter guesses which columns are the title, start, end, location and description, and shows sample values next to each. Fix any guess with the dropdown — a live preview of the first five events updates instantly.

3

Export an .ics

One click produces a standards-compliant iCalendar file — every event with its own UID and timestamp — that Google Calendar, Apple Calendar and Outlook all import. Exporting one file is free, forever; converting 2+ files at once into one zip is the one-time $9.99 license.

Simple pricing

Everything essential is free. A one-time $9.99 unlocks batch export forever.

Free

$0

  • Convert & preview .csv/.xlsx files, any number
  • Automatic column mapping, fully adjustable
  • All-day events and unparseable dates flagged in the preview
  • Export any ONE file to .ics — unlimited
  • No account, no upload, no watermark

Frequently asked questions

How do I turn a CSV into calendar events?

Drop the .csv or .xlsx file into the box above. The converter reads the header row, guesses which columns are the title, start, end, location and description, and shows you the mapping — adjust any column, check the live preview, then export an .ics file that every calendar app imports. Going the other way? Use the ICS to CSV converter.

Which columns do I need at minimum?

Just two: a title and a start date/time. End, location and description are optional. Rows without a recognizable start are reported in the preview so you can fix them before exporting.

Which date formats are accepted?

ISO 8601 (2026-03-15, 2026-03-15 14:30, with or without seconds/zone), the common US and European orders (03/15/2026, 15.03.2026), and Excel's own date cells when the input is .xlsx. A date without a time becomes an all-day event; a date-time is written in UTC.

How are all-day events handled?

A start value that is a bare date (no time) becomes an all-day event, written as DTSTART;VALUE=DATE — the way calendar apps expect it. If the end is also a bare date it is exported as-is; calendar apps treat the end date as exclusive.

Will Google Calendar, Apple Calendar or Outlook import the .ics?

Yes. The file is a standards-compliant iCalendar with a unique UID and DTSTAMP per event. In Google Calendar use Settings → Import; in Apple Calendar just open the file; in Outlook use File → Open → Import.

What's free and what costs $9.99?

Free, forever: converting any number of spreadsheets, adjusting the column mapping, and exporting any ONE file to .ics — unlimited. The one-time $9.99 license unlocks batch export: select 2 or more files and download them all packed into one zip. Pay once — it's a lifetime license, not a subscription.

Is my spreadsheet uploaded anywhere?

No. The spreadsheet is read and the iCalendar file is generated entirely by JavaScript in your browser tab — the data never crosses the network. Verify it in the Network tab of your developer tools: the only requests are page loads, an anonymous usage counter (counts only, never content), and license validation for paid users. Details in the privacy policy.

I already paid but lost my license key — what do I do?

Your key is shown on your Gumroad receipt, emailed to you right after checkout — search your inbox for "Gumroad" and open the receipt to copy it. Then click "Enter license key" in the top navigation to re-activate batch export.