CSVICSConverter

CSV to ICS converter for rosters, timetables and fixtures

Drop a spreadsheet, check every row on a real calendar, download a standards-clean .ics for Google Calendar, Outlook or Apple Calendar. Free, no signup, nothing uploaded.

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

From spreadsheet to calendar in four checks

  1. Bring the tableDrop a .csv, .tsv, .xlsx or .ics file, paste rows from Excel or Google Sheets, or open a sample. Up to 5 MB and 5,000 rows.
  2. Confirm the columnsTwelve calendar fields are matched from your headers. Step 2 lets you change any of them; the calendar redraws as you pick.
  3. Read the problem listUnreadable dates, missing titles, overnight shifts and day-first dates are listed with their row number before anything is written.
  4. DownloadThe free .ics holds up to 2,000 events with a TZID and VTIMEZONE block. A one-event test file lets you try the import first.

Behind the preview, every value goes through the same deterministic rules: dates in ISO, US month-first, day-first, written-out or Excel serial form become one calendar date; times written as 7:00 AM, 07:00, 7am or noon become minutes after midnight; and each event receives a stable UID derived from its content, so re-importing an updated roster updates events instead of duplicating them.

Examples

Six real schedules you can open and edit

Each sample is a complete, realistic table. Open one, change a cell in your own copy, and compare the calendar before and after — it is the fastest way to see how your own sheet will convert.

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.

University Semester Course Schedule

Six fall sections with MWF, TuTh and every-other-Friday repeat rules, room numbers and Thanksgiving week to skip.

Retail Store Weekly Shift Plan

Five associates, cashier / stock / floor-lead roles and a 15-minute reminder column for one store week.

Youth Soccer League Fixture List

Four Saturdays of U12 fixtures with home and away teams, two fields and four different date formats in one column.

Global Remote Team Release Calendar

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

Sample .ics Reverse Audit

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

Who it is for

Schedules that start life in a spreadsheet

Shift and roster managers

Clinics, call centres and stores plan rotas in Excel. Convert the week, then use the schedule CSV to ICS page to see one lane per person and catch double-bookings.

Registrars and teachers

Semester timetables with MWF or TuTh classes, room numbers and holiday weeks. The Excel to ICS converter reads the workbook directly, serial dates included.

League and event organisers

Fixture lists typed by several volunteers often mix October 3, 10/10 and 2026-10-17 in one column. All three land on the right Saturday.

Teams across time zones

Release plans where each row names its own zone. The free file uses one zone; the Pro repeat pack keeps every row's own TZID.

Anyone importing into Google

Google's own CSV import has strict headers and no time-zone column. Our Google Calendar import guide explains when to use CSV and when an .ics is safer.

Auditing an existing calendar

Already have an .ics? The ICS to CSV converter turns it back into rows with a duration column for payroll or billing checks.

Free and Pro

What stays free, what the packs add

TaskFreePro packs
Import CSV, TSV, XLSX, ICS · paste rowsYes, unlimited filesSame
Merged .ics with TZID + VTIMEZONEUp to 2,000 events per fileUp to 5,000 rows per pack
Month / week preview and problem listYesSame
One .ics per person, room or team + roster sheetPreview countsSplit pack ZIP
RRULE series, holiday EXDATE skips, two reminders, several time zonesPreview countsRepeat & time-zone pack ZIP
Hours by person and week, double-bookings, import preflightPreview totalsHours & preflight pack ZIP (CSV + PDF + JSON)

The 7-Day Roster & Schedule Pass covers a one-off rota or a term timetable; the monthly plan suits teams who publish a new schedule every week; the lifetime pass is a single payment. All three unlock the same three packs.

Reference

How your columns become calendar fields

Your columnHeaders we recogniseWritten as
TitleSubject, Title, Summary, Shift, Course, MatchSUMMARY
Start date + timeStart Date, Date, Class Date · Start Time, Time, Kick OffDTSTART;TZID=…
End date + timeEnd Date · End Time, Finish, Shift EndDTEND (all-day end is made exclusive)
All-day flagAll Day Event, All Day (True, Yes, Y, 1, X)VALUE=DATE
LocationLocation, Room, Venue, Field, Department, StoreLOCATION
Person or groupStaff Name, Employee, Instructor, Team, OwnerDESCRIPTION line; split key for Pro
NotesDescription, Notes, Details, AgendaDESCRIPTION

Line endings are CRLF, long lines are folded at 75 octets with a leading space, and text is escaped as RFC 5545 requires. The full property list, with RRULE, EXDATE, VALARM and VTIMEZONE examples generated by this engine, is in the CSV to ICS field reference.

FAQ

Questions people ask before importing

Is the CSV to ICS converter really free?

Yes. Importing CSV, TSV, XLSX or ICS files, mapping columns, fixing dates, the month and week preview, the merged .ics (up to 2,000 events per file), the one-event test file, the template and the mapping profile are free with no account and no file limit. Only the three Pro packs — split calendars, repeat series with holiday skips, and the hours and conflict report — need a pass.

Does my schedule get uploaded anywhere?

No. The file is read and converted inside your browser tab. Nothing is sent while you preview or download the free .ics. The Pro packs send only the cleaned event list (title, times, place, person) to this site so the ZIP can be built in memory; it is returned immediately and never stored.

Which columns do I need?

Only a title and a start date. A start time, end time, end date, location, description, person, time zone, repeat rule and reminder minutes are optional. Headers are matched automatically — Subject, Title or Shift all work for the title; Date, Start Date or Class Date for the date — and you can change any match in step 2.

Why do my events show up an hour or a day off in Google Calendar?

Usually because the times were written without a time zone, or because 03/04 was read as April 3 instead of March 4. This converter writes every time with a TZID and a matching VTIMEZONE block, shows which date order it detected, and lists every row it had to interpret so you can fix the sheet before importing.

What happens to a night shift that ends the next morning?

If the end time is earlier than the start time and the row has no end date, the event is treated as an overnight shift that finishes the next day — 11:00 PM to 7:00 AM becomes an 8-hour event, not a negative one. The problem list notes each row it rolled over.

Can I give every employee their own calendar file?

That is the split pack. Choose the column that names the person, room or team and the preview shows how many calendars you will get, how many events each holds and where people are double-booked. The ZIP contains one named, coloured .ics per person plus a roster summary sheet.

The converter family

Same engine, four starting points