Forum OpenACS Development: calDAV

Collapse
Posted by Richard Hamilton on
I have seen a post on DaveB's website taling about calDAV in the context of OpenACS, but there is no discussion about it on this site.

Is anyone interested in the possibility of developing calDAV support for OpenACS calendar?

It strikes me that this would put OpenACS calendar back on the map because synchronising with portable devices including the iPhone (and probably some other smartphones) would be possible natively without the need for either additional 'apps' or an exchange server or gmail server.

Regards
Richard

Collapse
2: Re: calDAV (response to 1)
Posted by Cesareo Garci­a Rodicio on
Any work on this?

I mean, can I synchronize (and more interesting, use Calendar Native Phone App Openacs calendar? iOS and/or Android would be awesome !

Collapse
3: Re: calDAV (response to 2)
Posted by Gustaf Neumann on
we did some work on this. In 2006 i did some work on webdav + ical to synchronize the calendar (bidirectional) working with the Mac OS X tools (ical program, itunes, sync with IOS) and the mozilla tools (e.g. thunderbird). For more details, see here https://openacs.org/forums/message-view?message_id=436039)

With some newer versions of IOS (starting from maybe IOS 4) Apple changed to calDAV, which has not only much more functionality (including TODOs and group management) but as well different ways for user management, caching etc. A group of students was working on this recently, but it needs much more testing before we can release this.

Collapse
4: Re: calDAV (response to 3)
Posted by Cesareo Garci­a Rodicio on
It would be really interesting and get Calendar a bit impulse (with aceptable effort). I've never tried but I've read that Openacs can handle WebDAV and some icalendar data interchange so it might be quite viable (I'dont know)

Let me know how this work goes and I can test it with my instalation.

Collapse
5: Re: calDAV (response to 1)
Posted by Jim Lynch on
at one point, I got to wondering if/how it would be possible to perform logical operations on calendars... one useful op would be, to take a specific bunch of calendars, and invert them, then intersect them, to form "available times among many calendars"
Collapse
6: Re: calDAV (response to 5)
Posted by Cesareo Garci­a Rodicio on
Hi

I don't know but perhaps that sounds too complicated. At least for me, it would be nice to have only a read and write events using CAlendar App Interface.

I mean, "froze" web interface (it seems to be pretty good now) but use OPenacs as a calDAV server. Having webDAv support and ics file support (I think) would be a reasonable benefit/effort balance (perhaps, I don't know)

I would be nice for this package and, perhaps get attention/traction for another packages and openacs also

Regards
Cesáreo

Collapse
7: Re: calDAV (response to 6)
Posted by Jim Lynch on
imagine a group, members of which each have a calendar for scheduling their own appointments...

now imagine the group wishes to meet... then simply invert each calendar, and find the times the inverted calendars have in common (aka "and" them, aka "intersect" them). Then you have the times all members of the group have which has no event/appointment scheduled.

Collapse
8: Re: calDAV (response to 6)
Posted by Jim Lynch on
negation and intersection are well understood, and there are other uses for tools like this. copying events in several calendars to one, this is like "where and when are all the parties" or "where/when are all musical events where Herbie Hancock is performing" or "where/when are all cool jazz performances in area code 12345", etc etc, a user clicks the button saying "I'm interested in jazz" puts those performances on their calendar, as well as expressing interest in particular styles, the musicians who play a particular instrument.

also, webdav has already been integrated with file storage and it works well. if you/someone wants to, they can look at the code and use it... I hope they factor instead, so that the common code is not duplicated.

Collapse
9: Re: calDAV (response to 8)
Posted by Cesareo Garci­a Rodicio on
I was wondering about a more simple functionality: use Openacs Calendar from my phone (or any calDAV client). That's what I would really use.
Collapse
10: Re: calDAV (response to 9)
Posted by Gustaf Neumann on
Jim,

CalDAV is somewhat more complicated that WebDAV. The following RFCs are involved (including WebDAV).

* RFC 2445, 5545 - iCalendar
* RFC 2446, 5546 - iCalendar Transport-Independent Interoperability Protocol (iTIP)
* RFC2518, 4918 - HTTP Extensions for Web Distributed Authoring and Versioning
* RFC3744 - Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol
* RFC4791 - Calendaring Extensions to WebDAV (CalDAV)
* RFC5689 - Extended MKCOL for Web Distributed Authoring and Versioning (WebDAV)
* RFC6638 - Scheduling Extensions to CalDAV

oacs-dav is just implementing a small portion of WebDAV, and that just for the purpose of writing files to the file storage. The 2006 implementation of iCal-over-WebDAV linked above allows subclassing and is therefore better suited for reuse and extension. This implementation did exactly what Cesareo is asking, aside the facts, that many of the mentioned RFCs are much newer and the client implementations are moving targets. I have used it over many years to share may calendar data from our learning platform on my iPhone, but since i switched to Android, i am disconnected in this respect. I've tried a few CalDAV clients for Android, but last time i've checked, none of these were usable; haven't had time to play with this lately; Google seems to prefer its own interfaces over open standards.

Concerning "inverting calendars" etc.: CalDAV defines several protocols to deliver appointment and scheduling data for people in a platform independent way. The client-side is typically the mobile device (but as well mail programs like Thunderbird+lightning), where the client side can't be influenced much. CalDAV includes a flexible "report" interface for various kinds of calendar queries for finding free/busy/due times (based on the report syntax from RFC 3744), but the client has to support this as well.