Subject: [calsify] Looking for resources to debug webdav server

From: Rick DeNatale <[email-masked]>
Date: Tue, 28 Jul 2009 10:32:49 -0400

I'm hoping someone can point me to some help sources.  I'm striking
out with google. While I find caldav threads, most appear to be from
the client viewpoint. I tried finding irc channels and the like but
can't find anything which appears to be active.

I'm trying to add webdav support to an existing ruby on rails
application which already supports calendars.

I've been trying to figure out the realities of caldav by snooping on
the conversation between ical.app and google calendar establishing a
webdav account and then syncing, and then trying, as a first step to
send canned responses to the propfind requests sent by ical.app from
my server app.

But I'm seeing some strange things.

First, for the first connection to google calendar in establishing an
account, ical.app is sending some propfinds which I am not seeing when
it tries to establish an account with my server app.  Instead it sends
a propfind which only occurs after the connection setup handshaking
with google cal.

<?xml version="1.0" encoding="utf-8"?>
<x0:propfind xmlns:x2="http://calendarserver.org/ns/"
xmlns:x1="urn:ietf:params:xml:ns:caldav" xmlns:x0="DAV:">
 <x0:prop>
 <x1:calendar-home-set/>
 <x1:calendar-user-address-set/>
 <x1:schedule-inbox-URL/>
 <x1:schedule-outbox-URL/>
 <x2:dropbox-home-URL/>
 <x2:notifications-URL/>
 <x0:displayname/>
 </x0:prop>
</x0:propfind>

Second, when I respond to the propfind with what I think is a valid
response, same headers, and valid xml for the body, ical.app doesn't
seem to like it

HTTP/1.1 207 Multi-Status
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 2.2.4
Cache-Control: private, max-age=0
Status: 207 Multi-Status
X-Runtime: 0.54242
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7l DAV/2
Phusion_Passenger/2.2.4
DAV: 1, calendar-access, calendar-schedule, calendar-proxy
Date: Thu, 23 Jul 2009 14:29:05 GMT
Content-Length: 1375
Content-Type: application/xml; charset=utf-8
Connection: Keep-Alive, close

<?xml version="1.0" encoding="UTF-8"?>
<D:multistatus xmlns:D="DAV:">
 <D:response>
   <D:href>/caldav/calendar/Personal/</D:href>
   <D:propstat>
     <D:status>HTTP/1.1 200 OK</D:status>
     <D:prop>
       <C:calendar-home-set xmlns:C="urn:ietf:params:xml:ns:caldav">
         <D:href>/caldav/calendar/</D:href>
       </C:calendar-home-set>
       <C:calendar-user-address-set xmlns:C="urn:ietf:params:xml:ns:caldav">
         <D:href>mailto:[email-masked]</D:href>
         <D:href>/caldav/calendar/virtuser%40cals.37s.backpack.com/user/</D:href>
       </C:calendar-user-address-set>
       <C:schedule-inbox-URL xmlns:C="urn:ietf:params:xml:ns:caldav">
         <D:href>/caldav/calendar/virtuser%40cals.37s.backpack.com/inbox/</D:href>
       </C:schedule-inbox-URL>
       <C:schedule-outbox-URL xmlns:C="urn:ietf:params:xml:ns:caldav">
         <D:href>/caldav/calendar/virtuser%40cals.37s.backpack.com/outbox/</D:href>
       </C:schedule-outbox-URL>
       <D:displayname>Personal</D:displayname>
     </D:prop>
   </D:propstat>
   <D:propstat>
     <D:status>HTTP/1.1 404 Not Found</D:status>
     <D:prop>
       <x2:dropbox-home-URL xmlns:x2="http://calendarserver.org/ns/" />
       <x2:notifications-URL xmlns:x2="http://calendarserver.org/ns/" />
     </D:prop>
   </D:propstat>
 </D:response>
</D:multistatus>

But ical.app puts up an error dialog with the message "Request
encountered an unexpected error (domain CalDAV No Calendar Home Error
/ code 1)."

I've tried to find an irc channel which might have someone who could help

I found a calendarserver irc channel (for Apple's CalendarServer
project) but no one seems to be responsive.  There's another caldav
channel associated with Chandler, but no one seems to be home.

So, does anyone have any suggestions about where I might get some help
in figuring this out?

-- 
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale