vobject v0.1.1
VObject-JS -- iCalendar VObject Manipulation in NodeJS
VObject-JS allows you to easily manipulate iCalendar objects using JavaScript. Implements rfc5545. Inspired by node-icalendar, ical.js and sabre-vobject.
Test
Installation
npm install vobject
var vobject = require('vobject');
Example
Create a Calendar
The top-level element in iCalendar is the Calendaring and Scheduling Core Object, a collection of calendar and scheduling information. Typically, this information will consist of a single iCalendar object.
var calendar = vobject.calendar();
The body of the iCalendar object (the icalbody) is made up of a list of calendar properties and one or more calendar components.
calendar.setMethod('REQUEST')
Create a Event
var event = vobject.event();
event.setSummary('Hello World!');
event.setDescription('(made with Sunrise)');
Then, add the event to that calendar (events need to be added to a calendar to be a proper iCal object):
calendar.pushComponent(event);
Then, to ICS:
calendar.toICS();
Add Attendees and Organizer
var attendee = vobject.attendee();
attendee.setCN('Pierre Valade');
attendee.setMail('user@domain.com');
attendee.setPartStat('ACCEPTED');
event.addAttendee(attendee);
var organizer = vobject.organizer();
organizer.setCN('Jeremy Le Van');
organizer.setMail('user@domain.com');
event.setOrganizer(organizer);
Set Dates for an Event
Date:
var date = vobject.dateValue();
date.setDate(1986, 10, 18);
// or
date.parseDate('1986-10-18');
Date Time:
var dateTime = vobject.dateTimeValue();
dateTime.setDateTime(1986, 10, 18, 13, 05, 00, 120); // last parameter is offset in minutes
// or
dateTime.parseDateTime('1986-10-18T13:00:00+02:00'); // ISO 8601 (with TimeZone support)
Then attach date
or dateTime
to an event:
event.setDTStart(date)
event.setDTStart(dateTime)
API
vobject.property(name, value, parameters)
property.setParameter(name, value)
property.getParameter(name)
property.setValue(value)
property.getValue()
property.toICS()
vobject.component(name)
component.pushProperty(property)
component.getProperties(name)
component.setProperty(property)
component.getProperty(name, index=0)
component.pushComponent(childComponent)
component.toICSLines()
component.toICS()
vobject.calendar()
calendar.setMethod(method)
calendar.getMethod()
vobject.event()
event.setUID(uid)
event.getUID()
event.setSummary(summary)
event.getSummary()
event.setDTStart(date)
event.getDTStart()
event.setDTEnd(date)
event.getDTEnd()
event.setDescription(description)
event.getDescription()
event.setLocation(location)
event.getLocation()
event.setStatus(status)
event.getStatus()
event.setDTStamp(date)
event.getDTStamp()
event.setLastModified(date)
event.getLastModified()
event.setSequence(integer)
event.getSequence()
event.setCreated(date)
event.getCreated()
event.setOrganizer(organizer)
event.getOrganizer()
event.addAttendee(attendee)
event.getAttendees()
event.addRRULE(rrule)
event.getRRULEs()
event.setRecurrenceID(date)
event.getRecurrenceID()
event.setTransparency(transparency)
event.getTransparency()
vobject.person(name)
person.setCUType(type)
person.getCUType()
person.setCN(cn)
person.getCN()
person.setMail(mail)
person.getMail()
vobject.attendee()
attendee.setRole(role)
attendee.getRole()
attendee.setPartStat(partstat)
attendee.getPartStat()
attendee.setRSVP(rsvp)
attendee.getRSVP()
vobject.organizer()
vobject.dateValue(dateString='')
dateValue.type
dateValue.parseDate(dateString)
dateValue.toICS()
vobject.dateTimeValue(dateTimeString='')
dateTimeValue.type
dateTimeValue.parseDateTime(dateTimeString)
dateTimeValue.parseTimestamp(timestamp)
dateTimeValue.setTZID(tzid)
dateTimeValue.getTZID()
dateTimeValue.toICS()
7 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago