npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

cozy-ical

v1.1.22

Published

Cozy-Ical provides ICal Parser, generators and helpers

Downloads

955

Readme

cozy-ical

Build Status

Description

cozy-ical is a simple library to deal with the iCal format. It makes life easier to parse iCal files and to build them.

Warning: API backward-compatibilty breaks with the 1.0.0 version

With 1.0.0 version every component of Cozy-Ical parameters of components construction must be given through an option object. See example below for details.

Usage

Build a calendar

var VCalendar = require('cozy-ical').VCalendar;
var VEvent = require('cozy-ical').VEvent;
var VTodo = require('cozy-ical').VTodo;
var VAlarm = require('cozy-ical').VAlarm;

var cal = new VCalendar({
  organization: 'Cozy Cloud',
  title: 'Cozy Calendar'
});

var date = new Date(2013, 5, 9, 15, 0, 0);
var vtodo = new VTodo({
  stampDate: date,
  startDate: date,
  summary: 'john',
  description: 'my description',
  uid: "9615"
});

var startDate = new Date(2013, 5, 9, 15, 0, 0);
var endDate = new Date(2013, 5, 10, 15, 0, 0);
var vevent = new VEvent({
  stampDate: startDate,
  startDate: startDate,
  endDate: endDate,
  description: "desc",
  location: "loc",
  uid: "3615"
});

vtodo.addAlarm({
  action: VAlarm.EMAIL_ACTION,
  trigger: "-P3D",
  description: 'alarm for todo',
  summary: 'john',
  attendees: []
});
cal.add(vtodo);
cal.add(vevent);

cal.toString();

output:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Cozy Cloud//NONSGML Cozy Calendar//EN
BEGIN:VTODO
UID:9615
DTSTAMP:20130609T130000Z
DESCRIPTION:my description
DTSTART:20130609T150000Z
SUMMARY:john
BEGIN:VALARM
ACTION:EMAIL
TRIGGER:-P3D
DESCRIPTION:alarm for todo
SUMMARY:john
END:VALARM
END:VTODO
BEGIN:VEVENT
UID:3615
DTSTAMP:20130609T130000Z
DTSTART:20130609T150000Z
DTEND:20130610T150000Z
DESCRIPTION:desc
LOCATION:loc
END:VEVENT
END:VCALENDAR

Parsing

var calString = `BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Cozy Cloud//NONSGML Cozy Agenda//EN
BEGIN:VTODO
DTSTAMP:20130609T150000Z
SUMMARY:my description
UID:john
BEGIN:VALARM
ACTION:DISPLAY
REPEAT:1
TRIGGER:20130609T150000Z
END:VALARM
END:VTODO
END:VCALENDAR`;

parser = new ICalParser();
parser.parseString(calString, function(err, cal) {
  console.log(cal.name);
  console.log(cal.getRawValue('PRODID'));
  console.log(cal.subComponents[0].name);
  console.log(cal.subComponents[0].getRawValue('SUMMARY'));
});

output:

VCALENDAR
-//Cozy Cloud//NONSGML Cozy Agenda//EN
VTODO
my description

Notes on iCal support

This library is meant to support all iCal features as defined in RFC 5545. Thus it's not fully supporting everything yet, here is the list of unsupported fields:

vEvent

  • ATTACH
  • CLASS
  • COMMENT
  • CONTACT
  • CREATED
  • EXDATE
  • GEO
  • LAST-MOD
  • PRIORITY
  • RECURRENCE-ID
  • RELATED-TO
  • RESOURCES
  • RDATE
  • RS-STATUS
  • SEQ
  • STATUS
  • TRANSPARENCY
  • URL

vTodo

  • ATTACH
  • ATTENDEE
  • CATEGORIES
  • CLASS
  • COMMENT
  • CONTACT
  • COMPLETED
  • CREATED
  • DESCRIPTION
  • EXDATE
  • GEO
  • LAST-MOD
  • LOCATION
  • ORGANIZER
  • PRECENT
  • PRIORITY
  • RDATE
  • RECURID
  • RELATED
  • RESOURCES
  • RRULE
  • RSTATUS
  • SEQ
  • STATUS
  • URL

vAlarm

  • TRIGGER related to END

vJournal

  • not supported at all

vFreeBusy

  • not supported at all

vTimezone

  • not supported at all

Test the parsing

If you want to test the parsing of an iCalendar file, just run:

    node index.js xxxx.ics

What is Cozy?

Cozy Logo

Cozy is a platform that brings all your web services in the same private space. With it, your web apps and your devices can share data easily, providing you with a new experience. You can install Cozy on your own hardware where no one profiles you. You install only the applications you want. You can build your own one too.

Community

You can reach the Cozy community via various support: