|
|
CalDAV4j Overview
CalDAV4j is a protocol library that extends the Slide project's WebDAV client library (which itself is an extension of the Apache's HttpClient library) to allow high level manipulation of CalDAV calendar collections as well as lower level CalDAV protocol interactions.
Goals
- A high level API: This API works at the level of ical4j objects, and allows for high level operations like querying for events in a given date range, and updating master events and recurrence instances. All the "hard" protocol work that you need to do to make this happen is hidden from the end user.
- A lower level protocol API: Let's you work at the Http/WebDAV/CalDAV protocol level by creating instances of HttpMethods (like GetMethod, MkCalendar, ReportMethod) and executing them.
- Performance: When possible caches (such as caches of etags and icalendar resources) are maintained so that network chatter and parsing of icalender files is minimized.
- Compliance: We aim to be implement the entire CalDAV spec as well as the WebDAV tickets spec.
Status
CalDAV4j 0.4 is the current release.
The 0.4 release is in development:
- Support for <calendar-multiget> reports
- More and more ready-to-use <calendar-query> methods to search events
- Code refactoring
- HttpClient v3.0 support (download Slide for HttpClient v3 here!)
- More Slide isolation (for a future JackRabbit switch)
- Better Bedework support
The 0.3 release features include:
- Support for <calendar-query> reports
- Protocol level support for MKCALENDAR, GET, REPORT, PUT
- High level API for accessing events within a calendar collection
- Caching of CalDAV resources
- Ticket Support
Among the things not supported yet are:
- Free Busy reports
- High level API for accessing anything other than VEVENTS (like VTODO's for example)
- ... ?
More information here.
Building
CalDAV4j uses Maven 2.x as its build system. Here is some more information on building CalDAV4j
Using
Download the latest JAR file and make sure it's in your classpath. The unit tests are the best place right now to see how to use CalDAV4j. Tutorials and more documentation are forthcoming.
What's Next
Exactly what's next is up in the air right - there are some outstanding issues (have better documentation, use newer version of Slide library, etc) but exactly what happens in what order will largely depend on demand from users, so make sure to make your voice heard on the discussion group!
The roadmap will be updated as things flesh out more.
License & Copyright
CalDAV4j is licensed under the Apache 2.0 License and copyright 2007 Open Source Application Foundation
