en

CSV to ICS

Convert a CSV appointment list to a calendar file (.ics) locally - ready to import into any calendar.

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+

Appointment lists often arrive as a table - an export from event planning, a shift-schedule spreadsheet or a project timeline. Google Calendar, Outlook and Apple Calendar, however, import the iCalendar file (.ics), not CSV directly.

This tool reads your CSV entirely locally in the browser and expects the columns summary, start, end, all_day, location, description, uid (missing columns simply stay empty; start/end as an ISO date or date-time). Each row becomes its own RFC 5545-compliant VEVENT block, all bundled into one .ics file.

Nothing is uploaded - the conversion happens entirely locally, even for appointments with sensitive details. You can import the .ics file straight into your calendar.

Specifications

Specifications
Input formatsCSV
Auto-conversionZIP, XLSX, SQLite, DBF, VCF, ICS, DXF, GeoJSON
Output formatICS
Batch processingNo
ProcessingLocally in your browser (JavaScript)
File uploadNone

In 3 steps

  1. Drop or pick your CSV file.
  2. The tool builds an appointment per row locally.
  3. Download and import the .ics file.

Limitations: Expected columns: summary, start, end, all_day, location, description, uid. Each row becomes a single, non-recurring appointment - recurrence rules (RRULE) and reminders are not generated. A timestamp without a "Z" is written as a local (not timezone-converted) time. Very large lists need memory.

FAQ

Is my CSV uploaded?

No. The calendar file is built entirely locally in the browser.

Which columns must my CSV have?

summary, start, end, all_day, location, description, uid - missing columns simply stay empty.

How do I specify an all-day event?

Set all_day to true and start as a plain date (YYYY-MM-DD) without a time.

Are recurrence rules supported?

No, every row becomes a single, non-recurring appointment.

ICS to CSV instead?

Yes, use the "ICS to CSV" tool.

Related tools

ICS to CSV · CSV to VCF · VCF to CSV · JSON to CSV · CSV to XML · Convert DATEV CSV · xDT to CSV