DEV Community

Dennis Ploeger
Dennis Ploeger

Posted on

Announcing csv2ics

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.

GitHub logo dploeger / csv2ics

Convert CSV files into ICS calendars

csv2ics - Convert CSV files into ICS calendars

NPM version Build Status Coverage Status

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

These mappings are detected:

  • SUMMARY
  • DTSTART
  • DTEND
  • DESCRIPTION
  • LOCATION

Usage

Install csv2ics using npm:

npm install -g csv2ics

Run it using

csv2ics <input file.csv> <output file.ics&gt

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…

Oldest comments (0)