{"id":19449092,"url":"https://github.com/outlook/vobject-js","last_synced_at":"2025-04-25T02:32:13.164Z","repository":{"id":8943295,"uuid":"10677681","full_name":"outlook/vobject-js","owner":"outlook","description":"VObject allows you to easily manipulate iCalendar objects using JavaScript. Implements rfc5545.","archived":false,"fork":false,"pushed_at":"2023-04-18T19:10:43.000Z","size":451,"stargazers_count":39,"open_issues_count":6,"forks_count":12,"subscribers_count":46,"default_branch":"master","last_synced_at":"2025-04-03T15:05:19.305Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"jspahrsummers/xcconfigs","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/outlook.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-06-13T22:52:01.000Z","updated_at":"2025-03-30T00:40:44.000Z","dependencies_parsed_at":"2024-11-10T16:31:46.265Z","dependency_job_id":"0ddd6341-2da7-4ee1-8d5f-6afe7be253c4","html_url":"https://github.com/outlook/vobject-js","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outlook%2Fvobject-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outlook%2Fvobject-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outlook%2Fvobject-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outlook%2Fvobject-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/outlook","download_url":"https://codeload.github.com/outlook/vobject-js/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250742004,"owners_count":21479713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T16:29:59.001Z","updated_at":"2025-04-25T02:32:12.708Z","avatar_url":"https://github.com/outlook.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VObject-JS -- iCalendar VObject Manipulation in NodeJS\n\nVObject-JS allows you to easily manipulate iCalendar objects using JavaScript. Implements [rfc5545](http://tools.ietf.org/html/rfc5545). Inspired by [node-icalendar](https://github.com/tritech/node-icalendar), [ical.js](https://github.com/mozilla-comm/ical.js/) and [sabre-vobject](https://github.com/fruux/sabre-vobject).\n\n## Test\n\n[ ![Codeship Status for sunrise/vobject-js](https://www.codeship.io/projects/3d19f660-ee41-0130-a06d-5a4a20d5c6cf/status?branch=master)](https://www.codeship.io/projects/6175)\n\n## Installation\n\n```\nnpm install vobject\nvar vobject = require('vobject');\n```\n\n## Example\n\n### Create a Calendar\n\nThe 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.\n\n```js\nvar calendar = vobject.calendar();\n```\n\nThe body of the iCalendar object (the icalbody) is made up of a list of calendar properties and one or more calendar components.\n\n```js\ncalendar.setMethod('REQUEST')\n```\n\n### Create a Event\n\n```js\nvar event = vobject.event();\nevent.setSummary('Hello World!');\nevent.setDescription('(made with Sunrise)');\n```\n\nThen, add the event to that calendar (events need to be added to a calendar to be a proper iCal object):\n\n```js\ncalendar.pushComponent(event);\n```\n\nThen, to ICS:\n\n```js\ncalendar.toICS();\n```\n\n### Add Attendees and Organizer\n\n```js\nvar attendee = vobject.attendee();\nattendee.setCN('Pierre Valade');\nattendee.setMail('user@domain.com');\nattendee.setPartStat('ACCEPTED');\nevent.addAttendee(attendee);\n```\n\n```js\nvar organizer = vobject.organizer();\norganizer.setCN('Jeremy Le Van');\norganizer.setMail('user@domain.com');\nevent.setOrganizer(organizer);\n```\n\n### Set Dates for an Event\n\nDate:\n\n```js\nvar date = vobject.dateValue();\ndate.setDate(1986, 10, 18);\n// or\ndate.parseDate('1986-10-18');\n```\n\nDate Time:\n\n```js\nvar dateTime = vobject.dateTimeValue();\ndateTime.setDateTime(1986, 10, 18, 13, 05, 00, 120); // last parameter is offset in minutes\n// or\ndateTime.parseDateTime('1986-10-18T13:00:00+02:00'); // ISO 8601 (with TimeZone support)\n```\n\nThen attach `date` or `dateTime` to an event:\n\n```js\nevent.setDTStart(date)\nevent.setDTStart(dateTime)\n```\n\n## API\n\n### [vobject.property(name, value, parameters)](docs/vobject/property.md)\n##### [property.setParameter(name, value)](docs/vobject/property.md#propertysetparameternamevalue)\n##### [property.getParameter(name)](docs/vobject/property.md#propertygetparametername)\n\n##### [property.setValue(value)](docs/vobject/property.md#propertysetvaluevalue)\n##### [property.getValue()](docs/vobject/property.md#propertygetvalue)\n\n##### [property.toICS()](docs/vobject/property.md#propertytoics)\n\n### [vobject.component(name)](docs/vobject/component.md)\n##### [component.pushProperty(property)](docs/vobject/component.md#componentpushpropertyproperty)\n##### [component.getProperties(name)](docs/vobject/component.md#componentgetpropertiesname)\n\n##### [component.setProperty(property)](docs/vobject/component.md#componentsetpropertyproperty)\n##### [component.getProperty(name, index=0)](docs/vobject/component.md#componentgetpropertyname-index0)\n\n##### [component.pushComponent(childComponent)](docs/vobject/component.md#componentpushcomponentchildcomponent)\n\n##### [component.toICSLines()](docs/vobject/component.md#componenttoicslines)\n##### [component.toICS()](docs/vobject/component.md#componenttoics)\n\n### [vobject.calendar()](docs/vobject/calendar.md)\n##### [calendar.setMethod(method)](docs/vobject/calendar.md#setmethodmethod)\n##### [calendar.getMethod()](docs/vobject/calendar.md#getmethod)\n\n### [vobject.event()](docs/vobject/event.md)\n##### [event.setUID(uid)](docs/vobject/event.md#eventsetuiduid-rfc)\n##### [event.getUID()](docs/vobject/event.md#eventgetuid-rfc)\n\n##### [event.setSummary(summary)](docs/vobject/event.md#eventsetsummarysummary-rfc)\n##### [event.getSummary()](docs/vobject/event.md#eventgetsummary-rfc)\n\n##### [event.setDTStart(date)](docs/vobject/event.md#eventsetdtstartdate-rfc)\n##### [event.getDTStart()](docs/vobject/event.md#eventgetdtstart-rfc)\n\n##### [event.setDTEnd(date)](docs/vobject/event.md#eventsetdtenddate-rfc)\n##### [event.getDTEnd()](docs/vobject/event.md#eventgetdtend-rfc)\n\n##### [event.setDescription(description)](docs/vobject/event.md#eventsetdescriptiondescription-rfc)\n##### [event.getDescription()](docs/vobject/event.md#eventgetdescription-rfc)\n\n##### [event.setLocation(location)](docs/vobject/event.md#eventsetlocationlocation-rfc)\n##### [event.getLocation()](docs/vobject/event.md#eventgetlocation-rfc)\n\n##### [event.setStatus(status)](docs/vobject/event.md#eventsetstatusstatus-rfc)\n##### [event.getStatus()](docs/vobject/event.md#eventgetstatus-rfc)\n\n##### [event.setDTStamp(date)](docs/vobject/event.md#eventsetdtstampdate-rfc)\n##### [event.getDTStamp()](docs/vobject/event.md#eventgetdtstamp-rfc)\n\n##### [event.setLastModified(date)](docs/vobject/event.md#eventsetlastmodifieddate-rfc)\n##### [event.getLastModified()](docs/vobject/event.md#eventgetlastmodified-rfc)\n\n##### [event.setSequence(integer)](docs/vobject/event.md#eventsetsequenceinteger-rfc)\n##### [event.getSequence()](docs/vobject/event.md#eventgetsequence-rfc)\n\n##### [event.setCreated(date)](docs/vobject/event.md#eventsetcreateddate-rfc)\n##### [event.getCreated()](docs/vobject/event.md#eventgetcreated-rfc)\n\n##### [event.setOrganizer(organizer)](docs/vobject/event.md#eventsetorganizerorganizer-rfc)\n##### [event.getOrganizer()](docs/vobject/event.md#eventgetorganizer-rfc)\n\n##### [event.addAttendee(attendee)](docs/vobject/event.md#eventaddattendeeattendee-rfc)\n##### [event.getAttendees()](docs/vobject/event.md#eventgetattendees-rfc)\n\n##### [event.addRRULE(rrule)](docs/vobject/event.md#eventaddrrulerrule-rfc)\n##### [event.getRRULEs()](docs/vobject/event.md#eventgetrrules-rfc)\n\n##### [event.setRecurrenceID(date)](docs/vobject/event.md#eventsetrecurrenceiddate-rfc)\n##### [event.getRecurrenceID()](docs/vobject/event.md#eventgetrecurrenceid-rfc)\n\n##### [event.setTransparency(transparency)](docs/vobject/event.md#settransparencytransparency)\n##### [event.getTransparency()](docs/vobject/event.md#eventgettransparency)\n\n### [vobject.person(name)](docs/vobject/person.md)\n##### [person.setCUType(type)](docs/vobject/person.md#personsetcutypetype-rfc)\n##### [person.getCUType()](docs/vobject/person.md#persongetcutype-rfc)\n\n##### [person.setCN(cn)](docs/vobject/person.md#personsetcncn-rfc)\n##### [person.getCN()](docs/vobject/person.md#persongetcn-rfc)\n\n##### [person.setMail(mail)](docs/vobject/person.md#personsetmailmail)\n##### [person.getMail()](docs/vobject/person.md#persongetmail)\n\n### [vobject.attendee()](docs/vobject/attendee.md)\n##### [attendee.setRole(role)](docs/vobject/attendee.md#attendeesetrolerole-rfc)\n##### [attendee.getRole()](docs/vobject/attendee.md#attendeegetrole-rfc)\n\n##### [attendee.setPartStat(partstat)](docs/vobject/attendee.md#attendeesetpartstatpartstat-rfc)\n##### [attendee.getPartStat()](docs/vobject/attendee.md#attendeegetpartstat-rfc)\n\n##### [attendee.setRSVP(rsvp)](docs/vobject/attendee.md#attendeesetrsvprsvp-rfc)\n##### [attendee.getRSVP()](docs/vobject/attendee.md#attendeegetrsvp-rfc)\n\n### [vobject.organizer()](docs/vobject/organizer.md)\n\n### [vobject.dateValue(dateString='')](docs/vobject/dateValue.md)\n##### [dateValue.type](docs/vobject/dateValue.md#datevaluetype--datevalue)\n##### [dateValue.parseDate(dateString)](docs/vobject/dateValue.md#dateparsedatedatestring)\n##### [dateValue.toICS()](docs/vobject/dateValue.md#datetoics)\n\n### [vobject.dateTimeValue(dateTimeString='')](docs/vobject/dateTimeValue.md)\n##### [dateTimeValue.type](docs/vobject/dateTimeValue.md#datetimevaluetype--datetimevalue)\n##### [dateTimeValue.parseDateTime(dateTimeString)](docs/vobject/dateTimeValue.md#dateparsedatetimedatetimestring)\n##### [dateTimeValue.parseTimestamp(timestamp)](docs/vobject/dateTimeValue.md#dateparsetimestamptimestamp)\n##### [dateTimeValue.setTZID(tzid)](docs/vobject/dateTimeValue.md#datesettzidtzid)\n##### [dateTimeValue.getTZID()](docs/vobject/dateTimeValue.md#dategettzid)\n##### [dateTimeValue.toICS()](docs/vobject/dateTimeValue.md#datetoics)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutlook%2Fvobject-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foutlook%2Fvobject-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutlook%2Fvobject-js/lists"}