A simple node package to convert iCal data (.ics file) to JSON format
Download and install from npm
npm install -g ical2json
To convert ics file to json
$ ical2json ./US-Holiday.ics
The json output will be written to a .json
file in the same directory
./US-Holiday.json
To write the output to a separate directory, use the -o
or --output-dir
option
$ ical2json --output-dir ~/destination/directory ./US-Holiday.ics
File output:
{
"VCALENDAR": [
{
"PRODID": "-//Calendar Labs//Calendar 1.0//EN",
"VERSION": "2.0",
"CALSCALE": "GREGORIAN",
"METHOD": "PUBLISH",
"X-WR-CALNAME": "Usa Holidays",
"X-WR-TIMEZONE": "America/New_York",
"VEVENT": [
{
"DTSTART;VALUE=DATE": "20130101",
"DTEND;VALUE=DATE": "20130102",
"DTSTAMP": "20111213T124028Z",
"UID": "[email protected]",
"CREATED": "20111213T123901Z",
"DESCRIPTION": "Visit http",
"LAST-MODIFIED": "20111213T123901Z",
"LOCATION": "",
"SEQUENCE": "0",
"STATUS": "CONFIRMED",
"SUMMARY": "New Year's Day",
"TRANSP": "TRANSPARENT"
},
{
"DTSTART;VALUE=DATE": "20130121",
"DTEND;VALUE=DATE": "20130122",
"DTSTAMP": "20111213T124028Z",
"UID": "[email protected]",
"CREATED": "20111213T123901Z",
"DESCRIPTION": "Visit http",
"LAST-MODIFIED": "20111213T123901Z",
"LOCATION": "",
"SEQUENCE": "0",
"STATUS": "CONFIRMED",
"SUMMARY": "M L King Day",
"TRANSP": "TRANSPARENT"
},
{
"DTSTART;VALUE=DATE": "20130214",
"DTEND;VALUE=DATE": "20130215",
"DTSTAMP": "20111213T124028Z",
"UID": "[email protected]",
"CREATED": "20111213T123901Z",
"DESCRIPTION": "Visit http",
"LAST-MODIFIED": "20111213T123901Z",
"LOCATION": "",
"SEQUENCE": "0",
"STATUS": "CONFIRMED",
"SUMMARY": "Valentine's Day",
"TRANSP": "TRANSPARENT"
}
]
}
]
}
Usage: ical2json [options] [FILES...]
Options:
-V, --version output the version number
-r, --revert Revert JSON to ical
-o, --output-dir <path> Output directory
-h, --help display help for command
Programmatic API
var ical2json = require("ical2json");
// From ical to JSON
var output = ical2json.convert(icalData);
// From JSON to ical
var icalOutput = ical2json.revert(icalJson);