caldav in JavaScript; made easy.
The caldav and ICS specifications are large. Additionally, I'm not sure I ever want to implement them completely. But I saw the need to a simple module that works with e.g. radicale and provides decent developer experience. simple-caldav is that attempt.
$ npm i --save simple-caldav
For now, see tests.
- We translate a VEVENT's
STATUS
in the whole library to the name_status
to make sure we're not violating any reserved words rules of JavaScript.
$ git clone git@github.com:TimDaub/simple-caldav.git
$ cd simple-caldav && npm i
$ npm run test
- Bug fix: When adding multiple alarms,
,BEGIN:VALARM
would show up in VEVENT text
- Bug fix: When adding a status to an event, in its ical representation status
statement didn't add new
\n
new line instruction.
- Add static
SimpleCalDAV.extractUid(href)
method.
- Add
_status
property to event.
- Bug fix:
syncCollection
wasn't able to detect a single VEVENT deletion event and simply returned an empty array.
- Bug fix: Stop attempting to parse relative-time VALARMS, as ical.js isn't capable of doing that either. Relative-time VALARMS are now ignored instead. Previously they threw.
- Bug fix: Ensure correct order of
etag
andhref
properties returned fromsyncCollection
- Introduce new method for retrieving single events with
uid
:getEvent(uid)
- Parse and include
VALARM
s ingetEvent
andlistEvents
- Removed
TraversalError
from code base entirely listEvents
now returns an empty array when no events are found or an invalid xml gets passed- Instead of throwing
TraversalError
,SimpleCalDAV.traverseXML
now returns an empty array when path couldn't be found - Added
getSyncToken
method to retrieve a sync token from a server - Added
syncCollection
to receive a diff of an entire collection with a sync token - Added
ServerError
that is thrown when there are problems with the server
- Fix bug in VALARM construction
- Fix bug in VEVENT construction
- Allow adding VALARMS to VEVENTS
- Transform ical.js events to simple JSON objects and all customizable
transformation parameter on
listEvents
method
- Initial release
[WIP]