I'm somehow always fiddling with automating calendar events and now I even have to deal with ICS and CSV files!
Some background: I'm acting in an amateur theatre community and also manage their internal communications tool. In this tool, all rehearsals, shows and meetings are presented.
However, my fellow actors and the directors are not that tech-savvy to fill in the calendar by, i.e. exporting ical files from their google calendars and import them.
Instead, they wrap up an excel sheet with all events for the coming season.
And so, here we are with a CSV file.
I've searched through various csv to ics converters, but I haven't found one, that served all my needs. I especially needed to create custom vendor fields, that none of the tools I found supported.
So I created my own.
It's called csv2ics (creative, eh?) and you can find it on GitHub and NPM. Check out its README.md for details.
csv2ics - Convert CSV files into ICS calendars
Introduction
Convert a CSV file into an ICS calendar.
Header map
csv2ics needs to know which columns are mapped to which ICAL properties. This can not be easily specified through CSV headers, so we rely on the header map.
The header map is a comma separated list of strings that specify the matching ICAL-properties for each column. Certain mappings are detected and handled properly (e.g. the parsing of the date fields). If a mapping is unknown, it is simply added as a custom attribute.
Usage
Install csv2ics by downloading the latest binary from the latest release and run it using
csv2ics <input file.csv> <output file.ics>
Input and output files are optional. If only one file is specified, it is used as an input file. If no file is specified, CSV data is taken from the STDIN.
For option help, use
csv2ics --help
Top comments (0)