Well, I just read the latest CalDAV draft. There are some good things and
some bad things about the latest round of changes.
The good news is that they've significantly reduced the prerequisite
requirements. We've almost got enough baseline DAV support to meet the
list of requirements that the CalDAV spec wants to have present before
they get into the calendar-specific stuff. Specifically, only WebDAV
Level 1 is required, not Level 2. The requirement to support the DASL
extensions has, thankfully, been dropped. ACL support is still required,
but we can probably get by with some simple hacks on that one.
The somewhat bad news is that they've removed the language which says
that the HTTP "Location:" header must be supported by clients issuing a
PUT command. This is stupid. If the underlying data store has no way of
preserving the supplied URL (which we currently don't) then the
"Location:" header is supposed to tell the client where it actually went.
This is how GroupDAV does it, and it's the Right Way (tm) to go.
Initially I think I'm going to just do it that way anyway and see how the
available clients handle it -- they're all using HTTP client libraries
anyway so it will probably work.
The really bad news is that the REPORT command is still in there, and it
is *hideously* complex. There are at least a dozen different reports in
there, and chewing through each one requires a craptastic amount of XML
parsing. This is the piece that could potentially take months to
implement.
Lisa Dusseault and all CalDAV proponents are all automatically added to
my chainsaw list.