JSPM

  • Created
  • Published
  • Downloads 70970
  • Score
    100M100P100Q155218F

A minimal icalendar/ics parser for nodejs

Package Exports

  • node-ical

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-ical) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

node-ical

Build Status NPM version Downloads

NPM

A minimal icalendar/ics (http://tools.ietf.org/html/rfc5545) parser for nodejs. This modul is a direct fork of the ical.js module by Peter Braden (https://github.com/peterbraden/ical.js) which is primarily targeted for allowing to parse icalender/ics files in pure javascript, thus within the browser itself. This node-ical module, however, primarily targets nodejs use which should allow to parse icalendar/ics files in a more flexible way.

Install

node-ical is availble on npm:

npm install node-ical

API

var ical = require('node-ical');
ical.parseICS(str);

Parses a string with an ICS File

var data = ical.parseFile(filename);

Reads in the specified iCal file, parses it and returns the parsed data

ical.fromURL(url, options, function(err, data) {} );

Use the request library to fetch the specified URL (opts gets passed on to the request() call), and call the function with the result (either an error or the data).

Example 1 - Print list of upcoming node conferences (see example.js)

var ical = require('node-ical');
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];

ical.fromURL('http://lanyrd.com/topics/nodejs/nodejs.ics', {}, function(err, data) {
  for (var k in data){
    if (data.hasOwnProperty(k)) {
      var ev = data[k]
      console.log("Conference",
        ev.summary,
        'is in',
        ev.location,
        'on the', ev.start.getDate(), 'of', months[ev.start.getMonth()]);
    }
  }
});