November 24, 2016 - Technic

Free ICS to CSV converter


Privacy Notes

Please do not use the service, if you don't accept the following:

  • When debugging, I log geolocation and the size of the original ics file.

If You Do Choose To Convert

  • To protect the privacy of your data, the converted file has a generic title.
  • You will be prompted to save it on your machine as soon as conversion completes.
  • Data encryption (https) is enabled.
  • I don't keep copies of your ics files.
  • I don't collect or resale your events' information.
  • This is a private hobby and I don't receive any financial benefits.

Please select the ics file(s) to be converted in csv
20 max

Or enter a URL

Include Columns

SUMMARY
DTSTART
DTEND
DUE (required for Reminder Events)
NOTES
ATTENDEE
LOCATION
PRIORITY
URL
CALENDAR
UID
ORGANIZER
DURATION (calculated in hours as DTEND - DTSTART)

Additional Options

Repeats (until the end of next year)
Remove CANCELLED repeated events
Do not convert UTC times

Conversion Notes

You may select a separator, the desired date format and how time in events should be handled. If you don't need all possible columns from the calendar file, you can omit them. This makes the conversion quicker and the resulting csv file smaller.

  • Comma separated csv files open easily in EXCEL.
  • Tab separated csv files are easier to be viewed in simple text editors.
  • Converted file will be a double quoted in Unicode (UTF-8) text file, ending in '.csv'.

Feel free to send your issues or feedback hereto…


BMC logo Buy me a coffee

197407 files converted so far…
Last modified on: August 2020

Last Changes

  • Events with a SUMMARY starting with uppercased strings followed by ':' could create rows with "untitiled" events. This should be fixed now. Thanks James for reporting it.
  • Handling event without a UID could lead to issues, of the UID columns was enabled. This should be fixed now.
  • Events or Todos without DTSTART, DTEND or DUE would get a nill date - ie Jan 1st, 1970 - in the according columns. This should be now working better.
  • New column: 'DURATION (calculated in hours as DTEND - DTSTART)' which calculates the difference in hours between DTEND and DTSTART.
  • New column: 'ORGANIZER' of the event. Thanks Göran for suggesting it.
  • There is a limit of 20 to the amount of files you can convert at once. Now the converter reflects the limit and warns if you exceed it by your selection. Thanks Tim for pointing this out.
  • Long DESCRIPTION texts could show up in the converted NOTES columns without required spaces between some words. Thanks Russ for your feedback, this should work much better now.
  • Sometimes the CALENDAR name wasn't correctly outputted in repeated rows. Thanks Bruce for pointing this out.
  • Inserted the option 'Remove CANCELLED repeated events' to control omitting deleted events in the CSV. If disabled, the deleted events will be outputted along with a note that those events were CANCELLED.
  • Excluded dates in repeat rules (EXDATE) are now also supported and deleted events will be omitted in the CSV. Thanks Bruce for mentioning this missing feature.
  • Handling for DESCRIPTIONS with custom 'Description' tags (such as 'CUST CONTACT', 'PHONE #', 'ADDRESS', 'UNIT #', etc) as requested by Perry and Evan.
  • Inserted an option to convert files by their URL. Currently it only converts URLs containing the 'ics' string. Please contact me, if it should also work for other endings.
  • Increased the limit for Repeats by one year. Thanks Jacque for asking this.
  • Sometimes, sorting the rows by their DTSTART didn't work. This should be fixed now.
  • Some Repetition rules without INTERVAL would cause the conversion to stall. This is fixed now. Thanks Corné for sending me your ics file to debug the issue.
  • Better RRULES logging in the Notes by disabled 'Repeats (until the end of this year)' option.
  • Custom repetition rules such as every 2 month on the 3rd Thursday of the month wouldn't create repetitions. Conversion now creates repeats. Thanks Lisa Marie for reporting it.
  • New option: 'Do not convert UTC times' which leaves UTC times as they have. Suggested by Eric.
  • You can now optionally also output the UID of the event. Thanks Levin for suggesting it.