November 24, 2016 - Technic

Free ICS to CSV converter

Privacy Notes

Please do not use the free conversion service, if you don't accept the terms

  • 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.
  • If you find the convertion tool helpfull and want to support me maintaining it, feel free to bye me a coffee.

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

Or enter a URL

Include Columns

DUE (required for Reminder Events)
DURATION (calculated as DTEND - DTSTART in hours)

Additional Options

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

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'.

Credits and thanks for the original idea to this converter go to ProjectWizards GmbH.

Feel free to send your issues or feedback hereto…

BMC logo Buy me a coffee

444973 files converted so far…
Last modified on: August 2023

Last Changes

  • Events created by a repeating rule like 'RRULE:FREQ=MONTHLY;BYMONTHDAY=…;UNTIL=' were not detected correctly and caused the converter to show a white screen. Thanks Alan for reporting it.
  • Events created by a repeating rule could get removed by enabled option 'Remove CANCELLED repeated events', in case they weren't moved but just renamed. Thanks Kevin for reporting it.
  • ICS calendar files saved in UTF-8 with BOM wouldn't get recognized as valid ICS calendars. Should be fixed now.
  • In some cases CANCELLED events would somehow appear in the csv even by enabled option 'Remove CANCELLED repeated events'. Thanks Kenny for reporting it.
  • Inserted Info about the max downloadable ics file size 15MB.
  • Regression issue by DAILY Repeated events. Should be fixed now.
  • Better error handling in case the csv file cannot be created. Reported by Joe and Thomas.
  • Big ics files with many repeat rules needed a great deal of calculation time, rendering the system unresponsive. This should be much better now. Thanks Joe for reporting it.
  • Better detection of X-MICROSOFT tags and their removal from the SUMMARY.
  • Better fix for the issue of repeat rules by MONTH and MONTHDAY reported by Neil.
  • Removed some PHP 7 deprecated features and done some cleaning up.
  • Switching to PHP 8 caused an issue for events having repeat rules by MONTH and MONTHDAY rules. This should be fixed now. Thanks Peter for reporting it.
  • Switching to PHP 8 caused some issues for events having repeat rules. This should be fixed now. Thanks Len, Thomas and Neil for reporting it.
  • There was an issue with the page on PHP 8. This is now fixed.
  • Rescheduled single events wouldn't remove or report the event they replaced. This should work better now. Thanks Ryan for reporting this.
  • The option 'Repeats (until the end of next year)' is now checked per default. This does not change the conversion performance for calendars without repeat rules, but it ensures better conversion for those having some.
  • Inserted a conversion range option of 'Last Month'. Complying to a request of Tiffany.
  • My last change outputting a 'CALENDAR' name if this isn't existing in the ics file, broke the conversion of ics files handled by their URL. This is now fixed. Thanks Colin for reporting this.
  • If the 'CALENDAR' option was used, but the Calendar name was missing in the ics file, the conversion would output an empty value for the name. As of now the ics file name will be rendered into the CSV in such case. Thanks Christian for mentioning this.
  • Weekly repeat rules on Sunday could be sometimes off. Thanks Kevin for letting me know.
  • Better fix for issue where the option 'Current Month' would omit sometimes events on the last day of the month. Thanks Julie for letting me know that this was still not always working.
  • In calendars where there was no time zone info, time conversion happened according to the time zone of the web server (Europe/London). Now the converter first searches for the time zone of the browser and defaults to the time zone of the web server only if the info couldn't get retrieved. Thanks Jason for reporting it.
  • New column: 'CATEGORIES' of the event. Thanks Adelle for suggesting it.
  • Sometimes, when many events were scheduled on the same date and time some rows might get omitted. Thanks Jonathan for reporting this.
  • The option 'Current Month' would omit sometimes events on the last day of the month. This is fixed now. Thanks Mauricio for letting me know.
  • Inserted a conversion range option of 'Current Quarter'. It will deliver events of the last 3 months until the end of the current month. Complying to a request of Gustavo.
  • Inserted an option to convert the complete or just some range of the calendar. Suggested by Funny.
  • The option 'Remove CANCELLED repeated events' removes now also events which had been moved and replaced by another event on other dates. Thanks Frank for suggesting this.
  • Moved recurring events show now in an extra column 'REPLACES RECURRENT EVENT FROM' the date of the event they replace. Thanks Frank for your feedback.
  • 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.