Kozea / Radicale

A simple CalDAV (calendar) and CardDAV (contact) server.
https://radicale.org
GNU General Public License v3.0
3.39k stars 444 forks source link

No calendars shown for read-only account #171

Closed ghost closed 10 years ago

ghost commented 10 years ago

I'm doing some testing to see if radicale is a viable option for shared family calendars. I'm using htpasswd authentication. I have two users, stevewi and family. Each has owner_write access to their own calendars. Each should have allow-read access to the other's calendars as well. The relevant sections of the ~/.config/radicale/rights file are:

[allow-read] # give read access to all user: .+ collection: .* permission: r

[owner_write] # give write access to owners user: .+ collection: ^%(login)s/.+$ permission: rw

When I log into family s 'account' with family s credentials, I am given access to family s calendars. When I log into family s 'account' with stevewi s credentials, I am shown NO available calendars.

Here's the relevant log messages for determination of rights:

2014-06-13 06:34:48,120 - DEBUG: Sanitized path: /family/ 2014-06-13 06:34:48,120 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights 2014-06-13 06:34:48,121 - DEBUG: Test if 'stevewi:family' matches against '.+:^public(/.+)?$' from section 'public' 2014-06-13 06:34:48,121 - DEBUG: Section 'public' does not match 2014-06-13 06:34:48,121 - DEBUG: Test if 'stevewi:family' matches against '.+:.' from section 'allow-read' 2014-06-13 06:34:48,121 - DEBUG: Section 'allow-read' matches 2014-06-13 06:34:48,121 - DEBUG: stevewi has read access to collection family/ 2014-06-13 06:34:48,121 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights 2014-06-13 06:34:48,122 - DEBUG: Test if 'stevewi:family' matches against '.+:^public(/.+)?$' from section 'public' 2014-06-13 06:34:48,122 - DEBUG: Section 'public' does not match 2014-06-13 06:34:48,122 - DEBUG: Test if 'stevewi:family' matches against '.+:.' from section 'allow-read' 2014-06-13 06:34:48,122 - DEBUG: Section 'allow-read' matches 2014-06-13 06:34:48,122 - DEBUG: Test if 'stevewi:family' matches against '.+:^stevewi/.+$' from section 'owner_write' 2014-06-13 06:34:48,123 - DEBUG: Section 'owner_write' does not match 2014-06-13 06:34:48,123 - DEBUG: stevewi has NO write access to collection family/ 2014-06-13 06:34:48,123 - DEBUG: Answer status: 200 OK

The messages say that stevewi should have allow-read access to family s calendars but Radicale presents no family calendars for stevewi to view. After a refresh by the client, I am shown stevewi s calendars.

This is pretty easy to reproduce and I can send more information upon request.

I'm using python v2.7.5 that comes bundled with Mac OS X 10.9 ( Mavericks ) and commit d5724d717dcf25b66b0988aae302f07e83422e0f of Radicale (aka HEAD).

ghost commented 10 years ago

Also, why do you have to read the rights file twice -- once to determine the read rights and once to determine the write rights. It seems like you could read the file only once and determine both sets of rights. Since this transaction occurs on virtually every request, it seems like you could increase the performance of Radicale by just reading the rights file once and determining both the read and write rights with that information. Are you expecting the rights to change between the time you determine read rights and the time you determine write rights?

ghost commented 10 years ago

This is very broken ... Consider the same scenario as above except that stevewi has no calendars (i.e., there is nothing in collections about stevewi). If I create the following 'account' in (Mac) Calendar:

user:  stevewi
password:   *****
url:   http://localhost:5232/family/         #  'stevewi' has read access to calendars here as above

not only am I not shown family s calendars but a calendar for stevewi is created.

untitaker commented 10 years ago

I feel like there is some information missing.

Are there even any calendars in /family/? Do they have "tag": "VCALENDAR" in their respective props file? (Otherwise radicale might think it's an addressbook) What are their names? (Do they end in .ics? Otherwise radicale might not create the correct props file)

untitaker commented 10 years ago

It also might be that you have to give Mac Calendar the full paths to the calendars, as it might not correctly discover all of them.

ghost commented 10 years ago

On Jun 15, 2014, at 7:51 AM, Markus Unterwaditzer notifications@github.com wrote:

Are there even any calendars in /family/?

Yes

Do they have "tag": "VCALENDAR" in their respective props file? (Otherwise radicale might think it's an address book)

Yes

What are their names? (Do they end in .ics?

No

Otherwise radicale might not create the correct props file)

This is a bogus argument… If this were the case, they would not be shown when I used ‘family’s credentials either.

On Jun 15, 2014, at 7:53 AM, Markus Unterwaditzer notifications@github.com wrote:

It also might be that you have to give Mac Calendar the full paths to the calendars, as it might not correctly discover all of them.

Another bogus argument… If this were the case, they would not be shown when I used ‘family’s credentials either.

— sw

untitaker commented 10 years ago

Another bogus argument…

Thank you.

I don't deny that Radicale has weird behavior. As an implementor of a client, i often have to work around its minimalistic interpretation of the RFCs.

untitaker commented 10 years ago

In fact, i am just trying to help you to also work around it. These are just the common problems i've run into, but it might well be that you found another series of "fun" when trying to use Radicale's multiuser functionality.

untitaker commented 10 years ago

Please wrap this in a codeblock by indenting this with four spaces, i think GitHub just ate much of the XML. Or better, use a pastebin or Gist.

ghost commented 10 years ago

Here's the debug transcript from the second case I reported.

Radicale is started

2014-06-15 08:22:58,051 - INFO: Starting Radicale
2014-06-15 08:22:58,051 - DEBUG: Authentication type is htpasswd
2014-06-15 08:22:58,155 - DEBUG: Base URL prefix: /
2014-06-15 08:22:58,155 - DEBUG: Listening to timecapsule port 5232
2014-06-15 08:22:58,155 - DEBUG: Radicale server ready

test begins

2014-06-15 08:23:44,898 - INFO: PROPFIND request at /family/ received
2014-06-15 08:23:44,900 - DEBUG: Request headers:
{'CONTENT_LENGTH': '743',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '0',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/family/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:44,901 - DEBUG: Sanitized path: /family/
2014-06-15 08:23:44,902 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <B:calendar-home-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:calendar-user-address-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:current-user-principal/>
    <A:displayname/>
    <C:dropbox-home-URL xmlns:C="http://calendarserver.org/ns/"/>
    <C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
    <C:notification-URL xmlns:C="http://calendarserver.org/ns/"/>
    <A:principal-collection-set/>
    <A:principal-URL/>
    <A:resource-id/>
    <B:schedule-inbox-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:schedule-outbox-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:supported-report-set/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:44,964 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,012 - DEBUG: Test if ':family' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,012 - DEBUG: Test if ':family' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,012 - DEBUG: Test if ':family' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:45,012 - DEBUG: Anonymous has NO read access to collection family/
2014-06-15 08:23:45,012 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,013 - DEBUG: Test if ':family' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,013 - DEBUG: Test if ':family' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,013 - DEBUG: Test if ':family' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:45,013 - DEBUG: Anonymous has NO write access to collection family/
2014-06-15 08:23:45,014 - INFO: Anonymous user refused
2014-06-15 08:23:45,014 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:45,037 - INFO: PROPFIND request at /family/ received
2014-06-15 08:23:45,040 - DEBUG: Request headers:
{'CONTENT_LENGTH': '743',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '0',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/family/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:45,040 - DEBUG: Sanitized path: /family/
2014-06-15 08:23:45,040 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <B:calendar-home-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:calendar-user-address-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:current-user-principal/>
    <A:displayname/>
    <C:dropbox-home-URL xmlns:C="http://calendarserver.org/ns/"/>
    <C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
    <C:notification-URL xmlns:C="http://calendarserver.org/ns/"/>
    <A:principal-collection-set/>
    <A:principal-URL/>
    <A:resource-id/>
    <B:schedule-inbox-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:schedule-outbox-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:supported-report-set/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:45,042 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,042 - DEBUG: Test if 'stevewi:family' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,043 - DEBUG: Section 'public' does not match
2014-06-15 08:23:45,044 - DEBUG: Test if 'stevewi:family' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,044 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:45,044 - DEBUG: stevewi has read access to collection family/
2014-06-15 08:23:45,044 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,045 - DEBUG: Test if 'stevewi:family' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,045 - DEBUG: Section 'public' does not match
2014-06-15 08:23:45,045 - DEBUG: Test if 'stevewi:family' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,045 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:45,045 - DEBUG: Test if 'stevewi:family' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:45,046 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:45,046 - DEBUG: stevewi has NO write access to collection family/
2014-06-15 08:23:45,110 - DEBUG: Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:CS="http://calendarserver.org/ns/">
  <response>
    <href>/family/</href>
    <propstat>
      <prop>
        <C:calendar-user-address-set>
          <href>/family/</href>
        </C:calendar-user-address-set>
        <current-user-principal>
          <href>/stevewi/</href>
        </current-user-principal>
        <displayname>family</displayname>
        <principal-collection-set>
          <href>/</href>
        </principal-collection-set>
        <principal-URL>
          <href>/stevewi/</href>
        </principal-URL>
        <supported-report-set>
          <supported-report>
            <report>principal-property-search</report>
          </supported-report>
          <supported-report>
            <report>sync-collection</report>
          </supported-report>
          <supported-report>
            <report>expand-property</report>
          </supported-report>
          <supported-report>
            <report>principal-search-property-set</report>
          </supported-report>
        </supported-report-set>
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
    <propstat>
      <prop>
        <C:calendar-home-set />
        <CS:dropbox-home-URL />
        <CS:email-address-set />
        <CS:notification-URL />
        <resource-id />
        <C:schedule-inbox-URL />
        <C:schedule-outbox-URL />
      </prop>
      <status>HTTP/1.1 404 Not Found</status>
    </propstat>
  </response>
</multistatus>

2014-06-15 08:23:45,110 - DEBUG: Answer status: 207 Unknown
2014-06-15 08:23:45,148 - INFO: OPTIONS request at /family/ received
2014-06-15 08:23:45,150 - DEBUG: Request headers:
{'CONTENT_LENGTH': '0',
 'CONTENT_TYPE': 'text/plain',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/family/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'OPTIONS',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:45,150 - DEBUG: Sanitized path: /family/
2014-06-15 08:23:45,151 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,151 - DEBUG: Test if 'stevewi:family' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,151 - DEBUG: Section 'public' does not match
2014-06-15 08:23:45,151 - DEBUG: Test if 'stevewi:family' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,151 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:45,152 - DEBUG: stevewi has read access to collection family/
2014-06-15 08:23:45,152 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,152 - DEBUG: Test if 'stevewi:family' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,152 - DEBUG: Section 'public' does not match
2014-06-15 08:23:45,153 - DEBUG: Test if 'stevewi:family' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,153 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:45,153 - DEBUG: Test if 'stevewi:family' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:45,153 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:45,153 - DEBUG: stevewi has NO write access to collection family/
2014-06-15 08:23:45,153 - DEBUG: Answer status: 200 OK
2014-06-15 08:23:45,234 - INFO: PROPFIND request at /stevewi/ received
2014-06-15 08:23:45,236 - DEBUG: Request headers:
{'CONTENT_LENGTH': '743',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '0',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:45,236 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:45,236 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <B:calendar-home-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:calendar-user-address-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:current-user-principal/>
    <A:displayname/>
    <C:dropbox-home-URL xmlns:C="http://calendarserver.org/ns/"/>
    <C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
    <C:notification-URL xmlns:C="http://calendarserver.org/ns/"/>
    <A:principal-collection-set/>
    <A:principal-URL/>
    <A:resource-id/>
    <B:schedule-inbox-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:schedule-outbox-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:supported-report-set/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:45,237 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,237 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,238 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,238 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:45,238 - DEBUG: Anonymous has NO read access to collection stevewi/
2014-06-15 08:23:45,238 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,238 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,239 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,239 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:45,239 - DEBUG: Anonymous has NO write access to collection stevewi/
2014-06-15 08:23:45,239 - INFO: Anonymous user refused
2014-06-15 08:23:45,239 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:45,411 - INFO: PROPFIND request at /stevewi/ received
2014-06-15 08:23:45,414 - DEBUG: Request headers:
{'CONTENT_LENGTH': '743',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '0',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:45,414 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:45,414 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <B:calendar-home-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:calendar-user-address-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:current-user-principal/>
    <A:displayname/>
    <C:dropbox-home-URL xmlns:C="http://calendarserver.org/ns/"/>
    <C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
    <C:notification-URL xmlns:C="http://calendarserver.org/ns/"/>
    <A:principal-collection-set/>
    <A:principal-URL/>
    <A:resource-id/>
    <B:schedule-inbox-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:schedule-outbox-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:supported-report-set/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:45,415 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,415 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,415 - DEBUG: Section 'public' does not match
2014-06-15 08:23:45,415 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,416 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:45,416 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:45,416 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,416 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,416 - DEBUG: Section 'public' does not match
2014-06-15 08:23:45,417 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,417 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:45,417 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:45,417 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:45,417 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:45,419 - DEBUG: Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:CS="http://calendarserver.org/ns/">
  <response>
    <href>/stevewi/</href>
    <propstat>
      <prop>
        <C:calendar-home-set>
          <href>/stevewi/</href>
        </C:calendar-home-set>
        <C:calendar-user-address-set>
          <href>/stevewi/</href>
        </C:calendar-user-address-set>
        <current-user-principal>
          <href>/stevewi/</href>
        </current-user-principal>
        <displayname>stevewi</displayname>
        <principal-collection-set>
          <href>/</href>
        </principal-collection-set>
        <principal-URL>
          <href>/stevewi/</href>
        </principal-URL>
        <supported-report-set>
          <supported-report>
            <report>principal-property-search</report>
          </supported-report>
          <supported-report>
            <report>sync-collection</report>
          </supported-report>
          <supported-report>
            <report>expand-property</report>
          </supported-report>
          <supported-report>
            <report>principal-search-property-set</report>
          </supported-report>
        </supported-report-set>
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
    <propstat>
      <prop>
        <CS:dropbox-home-URL />
        <CS:email-address-set />
        <CS:notification-URL />
        <resource-id />
        <C:schedule-inbox-URL />
        <C:schedule-outbox-URL />
      </prop>
      <status>HTTP/1.1 404 Not Found</status>
    </propstat>
  </response>
</multistatus>

2014-06-15 08:23:45,419 - DEBUG: Answer status: 207 Unknown
2014-06-15 08:23:45,510 - INFO: OPTIONS request at /stevewi/ received
2014-06-15 08:23:45,512 - DEBUG: Request headers:
{'CONTENT_LENGTH': '0',
 'CONTENT_TYPE': 'text/plain',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'OPTIONS',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:45,512 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:45,512 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,513 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,513 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,513 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:45,513 - DEBUG: Anonymous has NO read access to collection stevewi/
2014-06-15 08:23:45,514 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,514 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,514 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,515 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:45,515 - DEBUG: Anonymous has NO write access to collection stevewi/
2014-06-15 08:23:45,515 - DEBUG: Answer status: 200 OK
2014-06-15 08:23:45,563 - INFO: PROPFIND request at /stevewi/ received
2014-06-15 08:23:45,565 - DEBUG: Request headers:
{'CONTENT_LENGTH': '2097',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '1',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:45,566 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:45,566 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <A:add-member/>
    <C:allowed-sharing-modes xmlns:C="http://calendarserver.org/ns/"/>
    <D:autoprovisioned xmlns:D="http://apple.com/ns/ical/"/>
    <E:bulk-requests xmlns:E="http://me.com/_namespace/"/>
    <D:calendar-color xmlns:D="http://apple.com/ns/ical/"/>
    <B:calendar-description xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:calendar-free-busy-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <D:calendar-order xmlns:D="http://apple.com/ns/ical/"/>
    <B:calendar-timezone xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:current-user-privilege-set/>
    <B:default-alarm-vevent-date xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:default-alarm-vevent-datetime xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:displayname/>
    <C:getctag xmlns:C="http://calendarserver.org/ns/"/>
    <D:language-code xmlns:D="http://apple.com/ns/ical/"/>
    <D:location-code xmlns:D="http://apple.com/ns/ical/"/>
    <A:owner/>
    <C:pre-publish-url xmlns:C="http://calendarserver.org/ns/"/>
    <C:publish-url xmlns:C="http://calendarserver.org/ns/"/>
    <C:push-transports xmlns:C="http://calendarserver.org/ns/"/>
    <C:pushkey xmlns:C="http://calendarserver.org/ns/"/>
    <A:quota-available-bytes/>
    <A:quota-used-bytes/>
    <D:refreshrate xmlns:D="http://apple.com/ns/ical/"/>
    <A:resource-id/>
    <A:resourcetype/>
    <B:schedule-calendar-transp xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:schedule-default-calendar-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <C:source xmlns:C="http://calendarserver.org/ns/"/>
    <C:subscribed-strip-alarms xmlns:C="http://calendarserver.org/ns/"/>
    <C:subscribed-strip-attachments xmlns:C="http://calendarserver.org/ns/"/>
    <C:subscribed-strip-todos xmlns:C="http://calendarserver.org/ns/"/>
    <B:supported-calendar-component-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:supported-calendar-component-sets xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:supported-report-set/>
    <A:sync-token/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:45,566 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,567 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,567 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,567 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:45,567 - DEBUG: Anonymous has NO read access to collection stevewi/
2014-06-15 08:23:45,567 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,568 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,568 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,568 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:45,568 - DEBUG: Anonymous has NO write access to collection stevewi/
2014-06-15 08:23:45,568 - INFO: Anonymous user refused
2014-06-15 08:23:45,568 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:45,634 - INFO: PROPFIND request at /stevewi/ received
2014-06-15 08:23:45,637 - DEBUG: Request headers:
{'CONTENT_LENGTH': '2097',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '1',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:45,637 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:45,637 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <A:add-member/>
    <C:allowed-sharing-modes xmlns:C="http://calendarserver.org/ns/"/>
    <D:autoprovisioned xmlns:D="http://apple.com/ns/ical/"/>
    <E:bulk-requests xmlns:E="http://me.com/_namespace/"/>
    <D:calendar-color xmlns:D="http://apple.com/ns/ical/"/>
    <B:calendar-description xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:calendar-free-busy-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <D:calendar-order xmlns:D="http://apple.com/ns/ical/"/>
    <B:calendar-timezone xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:current-user-privilege-set/>
    <B:default-alarm-vevent-date xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:default-alarm-vevent-datetime xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:displayname/>
    <C:getctag xmlns:C="http://calendarserver.org/ns/"/>
    <D:language-code xmlns:D="http://apple.com/ns/ical/"/>
    <D:location-code xmlns:D="http://apple.com/ns/ical/"/>
    <A:owner/>
    <C:pre-publish-url xmlns:C="http://calendarserver.org/ns/"/>
    <C:publish-url xmlns:C="http://calendarserver.org/ns/"/>
    <C:push-transports xmlns:C="http://calendarserver.org/ns/"/>
    <C:pushkey xmlns:C="http://calendarserver.org/ns/"/>
    <A:quota-available-bytes/>
    <A:quota-used-bytes/>
    <D:refreshrate xmlns:D="http://apple.com/ns/ical/"/>
    <A:resource-id/>
    <A:resourcetype/>
    <B:schedule-calendar-transp xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:schedule-default-calendar-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <C:source xmlns:C="http://calendarserver.org/ns/"/>
    <C:subscribed-strip-alarms xmlns:C="http://calendarserver.org/ns/"/>
    <C:subscribed-strip-attachments xmlns:C="http://calendarserver.org/ns/"/>
    <C:subscribed-strip-todos xmlns:C="http://calendarserver.org/ns/"/>
    <B:supported-calendar-component-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:supported-calendar-component-sets xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:supported-report-set/>
    <A:sync-token/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:45,637 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,638 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,638 - DEBUG: Section 'public' does not match
2014-06-15 08:23:45,638 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,638 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:45,638 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:45,639 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,639 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,639 - DEBUG: Section 'public' does not match
2014-06-15 08:23:45,639 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,639 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:45,640 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:45,640 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:45,640 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:45,663 - DEBUG: Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:CS="http://calendarserver.org/ns/" xmlns:ICAL="http://apple.com/ns/ical/" xmlns:ME="http://me.com/_namespace/">
  <response>
    <href>/stevewi/</href>
    <propstat>
      <prop>
        <ICAL:calendar-color>#d5024</ICAL:calendar-color>
        <C:calendar-timezone>BEGIN:VCALENDAR
END:VCALENDAR
</C:calendar-timezone>
        <current-user-privilege-set>
          <privilege>
            <all />
            <read />
            <write />
            <write-properties />
            <write-content />
          </privilege>
        </current-user-privilege-set>
        <displayname>stevewi</displayname>
        <CS:getctag>"d41d8cd98f00b204e9800998ecf8427e"</CS:getctag>
        <resourcetype>
          <principal />
          <C:calendar />
          <collection />
        </resourcetype>
        <C:supported-calendar-component-set>
          <C:comp name="VTODO" />
          <C:comp name="VEVENT" />
          <C:comp name="VJOURNAL" />
        </C:supported-calendar-component-set>
        <supported-report-set>
          <supported-report>
            <report>principal-property-search</report>
          </supported-report>
          <supported-report>
            <report>sync-collection</report>
          </supported-report>
          <supported-report>
            <report>expand-property</report>
          </supported-report>
          <supported-report>
            <report>principal-search-property-set</report>
          </supported-report>
        </supported-report-set>
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
    <propstat>
      <prop>
        <add-member />
        <CS:allowed-sharing-modes />
        <ICAL:autoprovisioned />
        <ME:bulk-requests />
        <C:calendar-description />
        <C:calendar-free-busy-set />
        <ICAL:calendar-order />
        <C:default-alarm-vevent-date />
        <C:default-alarm-vevent-datetime />
        <ICAL:language-code />
        <ICAL:location-code />
        <owner />
        <CS:pre-publish-url />
        <CS:publish-url />
        <CS:push-transports />
        <CS:pushkey />
        <quota-available-bytes />
        <quota-used-bytes />
        <ICAL:refreshrate />
        <resource-id />
        <C:schedule-calendar-transp />
        <C:schedule-default-calendar-URL />
        <CS:source />
        <CS:subscribed-strip-alarms />
        <CS:subscribed-strip-attachments />
        <CS:subscribed-strip-todos />
        <C:supported-calendar-component-sets />
        <sync-token />
      </prop>
      <status>HTTP/1.1 404 Not Found</status>
    </propstat>
  </response>
</multistatus>

2014-06-15 08:23:45,663 - DEBUG: Answer status: 207 Unknown
2014-06-15 08:23:45,703 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:45,705 - DEBUG: Request headers:
{'CONTENT_LENGTH': '425',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:45,705 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:45,706 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><B:default-alarm-vevent-date xmlns:B="urn:ietf:params:xml:ns:caldav">BEGIN:VALARM&#13;
X-WR-ALARMUID:7D23296A-6BD8-4CEC-8E40-C6C1C322A9C2&#13;
UID:7D23296A-6BD8-4CEC-8E40-C6C1C322A9C2&#13;
TRIGGER:-PT15H&#13;
ATTACH;VALUE=URI:Basso&#13;
ACTION:AUDIO&#13;
END:VALARM&#13;
</B:default-alarm-vevent-date></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:45,706 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,707 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,707 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,707 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:45,707 - DEBUG: Anonymous has NO read access to collection stevewi/
2014-06-15 08:23:45,707 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,708 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,708 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,708 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:45,708 - DEBUG: Anonymous has NO write access to collection stevewi/
2014-06-15 08:23:45,708 - INFO: Anonymous user refused
2014-06-15 08:23:45,708 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:45,716 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:45,719 - DEBUG: Request headers:
{'CONTENT_LENGTH': '425',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:45,719 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:45,719 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><B:default-alarm-vevent-date xmlns:B="urn:ietf:params:xml:ns:caldav">BEGIN:VALARM&#13;
X-WR-ALARMUID:7D23296A-6BD8-4CEC-8E40-C6C1C322A9C2&#13;
UID:7D23296A-6BD8-4CEC-8E40-C6C1C322A9C2&#13;
TRIGGER:-PT15H&#13;
ATTACH;VALUE=URI:Basso&#13;
ACTION:AUDIO&#13;
END:VALARM&#13;
</B:default-alarm-vevent-date></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:45,720 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,720 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,720 - DEBUG: Section 'public' does not match
2014-06-15 08:23:45,720 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,721 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:45,721 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:45,721 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,722 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,722 - DEBUG: Section 'public' does not match
2014-06-15 08:23:45,722 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,722 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:45,722 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:45,722 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:45,722 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:45,723 - DEBUG: Answer status: 403 Forbidden
2014-06-15 08:23:45,871 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:45,873 - DEBUG: Request headers:
{'CONTENT_LENGTH': '430',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:45,873 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:45,874 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><B:default-alarm-vevent-datetime xmlns:B="urn:ietf:params:xml:ns:caldav">BEGIN:VALARM&#13;
X-WR-ALARMUID:B9C99CF4-EC4F-4DA1-A292-E7713B012E07&#13;
UID:B9C99CF4-EC4F-4DA1-A292-E7713B012E07&#13;
TRIGGER;VALUE=DATE-TIME:19760401T005545Z&#13;
ACTION:NONE&#13;
END:VALARM&#13;
</B:default-alarm-vevent-datetime></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:45,874 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,875 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,875 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,875 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:45,875 - DEBUG: Anonymous has NO read access to collection stevewi/
2014-06-15 08:23:45,875 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,876 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,876 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,876 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:45,876 - DEBUG: Anonymous has NO write access to collection stevewi/
2014-06-15 08:23:45,876 - INFO: Anonymous user refused
2014-06-15 08:23:45,876 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:45,918 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:45,920 - DEBUG: Request headers:
{'CONTENT_LENGTH': '430',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:45,921 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:45,921 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><B:default-alarm-vevent-datetime xmlns:B="urn:ietf:params:xml:ns:caldav">BEGIN:VALARM&#13;
X-WR-ALARMUID:B9C99CF4-EC4F-4DA1-A292-E7713B012E07&#13;
UID:B9C99CF4-EC4F-4DA1-A292-E7713B012E07&#13;
TRIGGER;VALUE=DATE-TIME:19760401T005545Z&#13;
ACTION:NONE&#13;
END:VALARM&#13;
</B:default-alarm-vevent-datetime></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:45,921 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,922 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,922 - DEBUG: Section 'public' does not match
2014-06-15 08:23:45,922 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,922 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:45,922 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:45,923 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:45,923 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:45,924 - DEBUG: Section 'public' does not match
2014-06-15 08:23:45,924 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:45,924 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:45,924 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:45,924 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:45,924 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:45,924 - DEBUG: Answer status: 403 Forbidden
2014-06-15 08:23:46,013 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:46,015 - DEBUG: Request headers:
{'CONTENT_LENGTH': '198',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:46,015 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:46,015 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><D:calendar-order xmlns:D="http://apple.com/ns/ical/">1</D:calendar-order></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:46,016 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,017 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,017 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,017 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,017 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,017 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:46,017 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,018 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,018 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,018 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,018 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,018 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:46,018 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:46,019 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:46,019 - DEBUG: Answer status: 403 Forbidden
2014-06-15 08:23:46,110 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:46,112 - DEBUG: Request headers:
{'CONTENT_LENGTH': '230',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:46,112 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:46,113 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><D:calendar-color xmlns:D="http://apple.com/ns/ical/" symbolic-color="purple">#711A76FF</D:calendar-color></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:46,113 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,113 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,114 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,114 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:46,114 - DEBUG: Anonymous has NO read access to collection stevewi/
2014-06-15 08:23:46,114 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,115 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,115 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,115 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:46,115 - DEBUG: Anonymous has NO write access to collection stevewi/
2014-06-15 08:23:46,115 - INFO: Anonymous user refused
2014-06-15 08:23:46,115 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:46,128 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:46,130 - DEBUG: Request headers:
{'CONTENT_LENGTH': '230',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:46,130 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:46,130 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><D:calendar-color xmlns:D="http://apple.com/ns/ical/" symbolic-color="purple">#711A76FF</D:calendar-color></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:46,131 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,131 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,131 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,131 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,132 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,132 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:46,132 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,132 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,132 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,133 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,133 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,133 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:46,133 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:46,133 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:46,133 - DEBUG: Answer status: 403 Forbidden
2014-06-15 08:23:46,249 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:46,251 - DEBUG: Request headers:
{'CONTENT_LENGTH': '230',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:46,251 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:46,251 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><D:calendar-color xmlns:D="http://apple.com/ns/ical/" symbolic-color="purple">#711A76FF</D:calendar-color></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:46,252 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,252 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,252 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,253 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,253 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,253 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:46,253 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,253 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,254 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,254 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,254 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,254 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:46,254 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:46,254 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:46,255 - DEBUG: Answer status: 403 Forbidden
2014-06-15 08:23:46,300 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:46,303 - DEBUG: Request headers:
{'CONTENT_LENGTH': '198',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:46,303 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:46,303 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><D:calendar-order xmlns:D="http://apple.com/ns/ical/">1</D:calendar-order></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:46,303 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,304 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,304 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,304 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,304 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,304 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:46,305 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,305 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,305 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,306 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,306 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,306 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:46,306 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:46,306 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:46,306 - DEBUG: Answer status: 403 Forbidden
2014-06-15 08:23:46,346 - INFO: PROPFIND request at / received
2014-06-15 08:23:46,348 - DEBUG: Request headers:
{'CONTENT_LENGTH': '267',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '0',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:46,348 - DEBUG: Sanitized path: /
2014-06-15 08:23:46,348 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <B:calendar-user-address-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:displayname/>
    <C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:46,349 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,349 - DEBUG: Test if ':/' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,349 - DEBUG: Test if ':/' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,349 - DEBUG: Test if ':/' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:46,350 - DEBUG: Anonymous has NO read access to collection /
2014-06-15 08:23:46,350 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,351 - DEBUG: Test if ':/' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,351 - DEBUG: Test if ':/' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,351 - DEBUG: Test if ':/' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:46,351 - DEBUG: Anonymous has NO write access to collection /
2014-06-15 08:23:46,351 - INFO: Anonymous user refused
2014-06-15 08:23:46,351 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:46,360 - INFO: PROPFIND request at / received
2014-06-15 08:23:46,363 - DEBUG: Request headers:
{'CONTENT_LENGTH': '267',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '0',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:46,363 - DEBUG: Sanitized path: /
2014-06-15 08:23:46,363 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <B:calendar-user-address-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:displayname/>
    <C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:46,364 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,364 - DEBUG: Test if 'stevewi:/' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,364 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,364 - DEBUG: Test if 'stevewi:/' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,364 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,365 - DEBUG: stevewi has read access to collection /
2014-06-15 08:23:46,365 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,365 - DEBUG: Test if 'stevewi:/' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,365 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,365 - DEBUG: Test if 'stevewi:/' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,366 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,366 - DEBUG: Test if 'stevewi:/' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:46,366 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:46,366 - DEBUG: stevewi has NO write access to collection /
2014-06-15 08:23:46,367 - DEBUG: Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:CS="http://calendarserver.org/ns/">
  <response>
    <href>/</href>
    <propstat>
      <prop>
        <C:calendar-user-address-set>
          <href>/</href>
        </C:calendar-user-address-set>
        <displayname />
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
    <propstat>
      <prop>
        <CS:email-address-set />
      </prop>
      <status>HTTP/1.1 404 Not Found</status>
    </propstat>
  </response>
</multistatus>

2014-06-15 08:23:46,465 - DEBUG: Answer status: 207 Unknown
2014-06-15 08:23:46,507 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:46,509 - DEBUG: Request headers:
{'CONTENT_LENGTH': '750',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:46,510 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:46,510 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><B:calendar-timezone xmlns:B="urn:ietf:params:xml:ns:caldav">BEGIN:VCALENDAR&#13;
VERSION:2.0&#13;
PRODID:-//Apple Inc.//Mac OS X 10.9.3//EN&#13;
CALSCALE:GREGORIAN&#13;
BEGIN:VTIMEZONE&#13;
TZID:America/Los_Angeles&#13;
BEGIN:DAYLIGHT&#13;
TZOFFSETFROM:-0800&#13;
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU&#13;
DTSTART:20070311T020000&#13;
TZNAME:PDT&#13;
TZOFFSETTO:-0700&#13;
END:DAYLIGHT&#13;
BEGIN:STANDARD&#13;
TZOFFSETFROM:-0700&#13;
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU&#13;
DTSTART:20071104T020000&#13;
TZNAME:PST&#13;
TZOFFSETTO:-0800&#13;
END:STANDARD&#13;
END:VTIMEZONE&#13;
END:VCALENDAR&#13;
</B:calendar-timezone></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:46,510 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,511 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,511 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,511 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:46,511 - DEBUG: Anonymous has NO read access to collection stevewi/
2014-06-15 08:23:46,511 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,512 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,512 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,512 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:46,512 - DEBUG: Anonymous has NO write access to collection stevewi/
2014-06-15 08:23:46,513 - INFO: Anonymous user refused
2014-06-15 08:23:46,513 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:46,523 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:46,525 - DEBUG: Request headers:
{'CONTENT_LENGTH': '750',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:46,525 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:46,525 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><B:calendar-timezone xmlns:B="urn:ietf:params:xml:ns:caldav">BEGIN:VCALENDAR&#13;
VERSION:2.0&#13;
PRODID:-//Apple Inc.//Mac OS X 10.9.3//EN&#13;
CALSCALE:GREGORIAN&#13;
BEGIN:VTIMEZONE&#13;
TZID:America/Los_Angeles&#13;
BEGIN:DAYLIGHT&#13;
TZOFFSETFROM:-0800&#13;
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU&#13;
DTSTART:20070311T020000&#13;
TZNAME:PDT&#13;
TZOFFSETTO:-0700&#13;
END:DAYLIGHT&#13;
BEGIN:STANDARD&#13;
TZOFFSETFROM:-0700&#13;
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU&#13;
DTSTART:20071104T020000&#13;
TZNAME:PST&#13;
TZOFFSETTO:-0800&#13;
END:STANDARD&#13;
END:VTIMEZONE&#13;
END:VCALENDAR&#13;
</B:calendar-timezone></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:46,526 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,526 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,526 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,526 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,527 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,527 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:46,527 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,528 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,528 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,528 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,528 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,528 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:46,528 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:46,528 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:46,528 - DEBUG: Answer status: 403 Forbidden
2014-06-15 08:23:46,599 - INFO: PROPFIND request at / received
2014-06-15 08:23:46,602 - DEBUG: Request headers:
{'CONTENT_LENGTH': '171',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '0',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:46,602 - DEBUG: Sanitized path: /
2014-06-15 08:23:46,602 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <C:checksum-versions xmlns:C="http://calendarserver.org/ns/"/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:46,602 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,603 - DEBUG: Test if ':/' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,603 - DEBUG: Test if ':/' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,604 - DEBUG: Test if ':/' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:46,604 - DEBUG: Anonymous has NO read access to collection /
2014-06-15 08:23:46,604 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,605 - DEBUG: Test if ':/' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,605 - DEBUG: Test if ':/' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,605 - DEBUG: Test if ':/' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:46,605 - DEBUG: Anonymous has NO write access to collection /
2014-06-15 08:23:46,605 - INFO: Anonymous user refused
2014-06-15 08:23:46,605 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:46,699 - INFO: PROPFIND request at / received
2014-06-15 08:23:46,701 - DEBUG: Request headers:
{'CONTENT_LENGTH': '171',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '0',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:46,702 - DEBUG: Sanitized path: /
2014-06-15 08:23:46,702 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <C:checksum-versions xmlns:C="http://calendarserver.org/ns/"/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:46,702 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,703 - DEBUG: Test if 'stevewi:/' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,703 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,703 - DEBUG: Test if 'stevewi:/' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,703 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,703 - DEBUG: stevewi has read access to collection /
2014-06-15 08:23:46,704 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,705 - DEBUG: Test if 'stevewi:/' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,705 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,705 - DEBUG: Test if 'stevewi:/' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,705 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,706 - DEBUG: Test if 'stevewi:/' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:46,706 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:46,706 - DEBUG: stevewi has NO write access to collection /
2014-06-15 08:23:46,707 - DEBUG: Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:CS="http://calendarserver.org/ns/">
  <response>
    <href>/</href>
    <propstat>
      <prop />
      <status>HTTP/1.1 200 OK</status>
    </propstat>
    <propstat>
      <prop>
        <CS:checksum-versions />
      </prop>
      <status>HTTP/1.1 404 Not Found</status>
    </propstat>
  </response>
</multistatus>

2014-06-15 08:23:46,707 - DEBUG: Answer status: 207 Unknown
2014-06-15 08:23:46,746 - INFO: PROPFIND request at /stevewi/ received
2014-06-15 08:23:46,749 - DEBUG: Request headers:
{'CONTENT_LENGTH': '181',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '0',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:46,749 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:46,749 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <C:getctag xmlns:C="http://calendarserver.org/ns/"/>
    <A:sync-token/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:46,749 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,750 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,750 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,750 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:46,750 - DEBUG: Anonymous has NO read access to collection stevewi/
2014-06-15 08:23:46,751 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,751 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,751 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,751 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:46,751 - DEBUG: Anonymous has NO write access to collection stevewi/
2014-06-15 08:23:46,752 - INFO: Anonymous user refused
2014-06-15 08:23:46,752 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:46,763 - INFO: PROPFIND request at /stevewi/ received
2014-06-15 08:23:46,765 - DEBUG: Request headers:
{'CONTENT_LENGTH': '181',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '0',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:46,765 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:46,765 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <C:getctag xmlns:C="http://calendarserver.org/ns/"/>
    <A:sync-token/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:46,766 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,766 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,766 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,766 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,767 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,767 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:46,767 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,767 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,768 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,768 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,768 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,769 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:46,769 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:46,769 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:46,770 - DEBUG: Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:CS="http://calendarserver.org/ns/">
  <response>
    <href>/stevewi/</href>
    <propstat>
      <prop>
        <CS:getctag>"d41d8cd98f00b204e9800998ecf8427e"</CS:getctag>
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
    <propstat>
      <prop>
        <sync-token />
      </prop>
      <status>HTTP/1.1 404 Not Found</status>
    </propstat>
  </response>
</multistatus>

2014-06-15 08:23:46,770 - DEBUG: Answer status: 207 Unknown
2014-06-15 08:23:46,800 - INFO: PROPFIND request at /stevewi/ received
2014-06-15 08:23:46,803 - DEBUG: Request headers:
{'CONTENT_LENGTH': '145',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '1',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:46,803 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:46,803 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <A:getcontenttype/>
    <A:getetag/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:46,803 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,804 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,804 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,804 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:46,804 - DEBUG: Anonymous has NO read access to collection stevewi/
2014-06-15 08:23:46,804 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,805 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,805 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,805 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:46,805 - DEBUG: Anonymous has NO write access to collection stevewi/
2014-06-15 08:23:46,805 - INFO: Anonymous user refused
2014-06-15 08:23:46,805 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:46,818 - INFO: PROPFIND request at /stevewi/ received
2014-06-15 08:23:46,820 - DEBUG: Request headers:
{'CONTENT_LENGTH': '145',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '1',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:46,820 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:46,821 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <A:getcontenttype/>
    <A:getetag/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:46,821 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,822 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,822 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,822 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,822 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,822 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:46,822 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:46,823 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:46,823 - DEBUG: Section 'public' does not match
2014-06-15 08:23:46,823 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:46,823 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:46,823 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:46,824 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:46,824 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:46,827 - DEBUG: Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:">
  <response>
    <href>/stevewi/</href>
    <propstat>
      <prop>
        <getcontenttype>text/calendar</getcontenttype>
        <getetag>"d41d8cd98f00b204e9800998ecf8427e"</getetag>
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
</multistatus>

2014-06-15 08:23:46,827 - DEBUG: Answer status: 207 Unknown
2014-06-15 08:23:47,024 - INFO: PROPFIND request at /stevewi/ received
2014-06-15 08:23:47,026 - DEBUG: Request headers:
{'CONTENT_LENGTH': '2097',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '1',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:47,026 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:47,027 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <A:add-member/>
    <C:allowed-sharing-modes xmlns:C="http://calendarserver.org/ns/"/>
    <D:autoprovisioned xmlns:D="http://apple.com/ns/ical/"/>
    <E:bulk-requests xmlns:E="http://me.com/_namespace/"/>
    <D:calendar-color xmlns:D="http://apple.com/ns/ical/"/>
    <B:calendar-description xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:calendar-free-busy-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <D:calendar-order xmlns:D="http://apple.com/ns/ical/"/>
    <B:calendar-timezone xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:current-user-privilege-set/>
    <B:default-alarm-vevent-date xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:default-alarm-vevent-datetime xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:displayname/>
    <C:getctag xmlns:C="http://calendarserver.org/ns/"/>
    <D:language-code xmlns:D="http://apple.com/ns/ical/"/>
    <D:location-code xmlns:D="http://apple.com/ns/ical/"/>
    <A:owner/>
    <C:pre-publish-url xmlns:C="http://calendarserver.org/ns/"/>
    <C:publish-url xmlns:C="http://calendarserver.org/ns/"/>
    <C:push-transports xmlns:C="http://calendarserver.org/ns/"/>
    <C:pushkey xmlns:C="http://calendarserver.org/ns/"/>
    <A:quota-available-bytes/>
    <A:quota-used-bytes/>
    <D:refreshrate xmlns:D="http://apple.com/ns/ical/"/>
    <A:resource-id/>
    <A:resourcetype/>
    <B:schedule-calendar-transp xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:schedule-default-calendar-URL xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <C:source xmlns:C="http://calendarserver.org/ns/"/>
    <C:subscribed-strip-alarms xmlns:C="http://calendarserver.org/ns/"/>
    <C:subscribed-strip-attachments xmlns:C="http://calendarserver.org/ns/"/>
    <C:subscribed-strip-todos xmlns:C="http://calendarserver.org/ns/"/>
    <B:supported-calendar-component-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <B:supported-calendar-component-sets xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:supported-report-set/>
    <A:sync-token/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:47,027 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,028 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,028 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,028 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,028 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,028 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:47,029 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,029 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,029 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,029 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,030 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,030 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:47,030 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:47,030 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:47,066 - DEBUG: Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:CS="http://calendarserver.org/ns/" xmlns:ICAL="http://apple.com/ns/ical/" xmlns:ME="http://me.com/_namespace/">
  <response>
    <href>/stevewi/</href>
    <propstat>
      <prop>
        <ICAL:calendar-color>#d5024</ICAL:calendar-color>
        <C:calendar-timezone>BEGIN:VCALENDAR
END:VCALENDAR
</C:calendar-timezone>
        <current-user-privilege-set>
          <privilege>
            <all />
            <read />
            <write />
            <write-properties />
            <write-content />
          </privilege>
        </current-user-privilege-set>
        <displayname>stevewi</displayname>
        <CS:getctag>"d41d8cd98f00b204e9800998ecf8427e"</CS:getctag>
        <resourcetype>
          <principal />
          <C:calendar />
          <collection />
        </resourcetype>
        <C:supported-calendar-component-set>
          <C:comp name="VTODO" />
          <C:comp name="VEVENT" />
          <C:comp name="VJOURNAL" />
        </C:supported-calendar-component-set>
        <supported-report-set>
          <supported-report>
            <report>principal-property-search</report>
          </supported-report>
          <supported-report>
            <report>sync-collection</report>
          </supported-report>
          <supported-report>
            <report>expand-property</report>
          </supported-report>
          <supported-report>
            <report>principal-search-property-set</report>
          </supported-report>
        </supported-report-set>
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
    <propstat>
      <prop>
        <add-member />
        <CS:allowed-sharing-modes />
        <ICAL:autoprovisioned />
        <ME:bulk-requests />
        <C:calendar-description />
        <C:calendar-free-busy-set />
        <ICAL:calendar-order />
        <C:default-alarm-vevent-date />
        <C:default-alarm-vevent-datetime />
        <ICAL:language-code />
        <ICAL:location-code />
        <owner />
        <CS:pre-publish-url />
        <CS:publish-url />
        <CS:push-transports />
        <CS:pushkey />
        <quota-available-bytes />
        <quota-used-bytes />
        <ICAL:refreshrate />
        <resource-id />
        <C:schedule-calendar-transp />
        <C:schedule-default-calendar-URL />
        <CS:source />
        <CS:subscribed-strip-alarms />
        <CS:subscribed-strip-attachments />
        <CS:subscribed-strip-todos />
        <C:supported-calendar-component-sets />
        <sync-token />
      </prop>
      <status>HTTP/1.1 404 Not Found</status>
    </propstat>
  </response>
</multistatus>

2014-06-15 08:23:47,066 - DEBUG: Answer status: 207 Unknown
2014-06-15 08:23:47,143 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:47,145 - DEBUG: Request headers:
{'CONTENT_LENGTH': '425',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:47,145 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:47,145 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><B:default-alarm-vevent-date xmlns:B="urn:ietf:params:xml:ns:caldav">BEGIN:VALARM&#13;
X-WR-ALARMUID:7D23296A-6BD8-4CEC-8E40-C6C1C322A9C2&#13;
UID:7D23296A-6BD8-4CEC-8E40-C6C1C322A9C2&#13;
TRIGGER:-PT15H&#13;
ATTACH;VALUE=URI:Basso&#13;
ACTION:AUDIO&#13;
END:VALARM&#13;
</B:default-alarm-vevent-date></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:47,146 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,146 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,147 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,147 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:47,147 - DEBUG: Anonymous has NO read access to collection stevewi/
2014-06-15 08:23:47,147 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,147 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,148 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,148 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:47,148 - DEBUG: Anonymous has NO write access to collection stevewi/
2014-06-15 08:23:47,148 - INFO: Anonymous user refused
2014-06-15 08:23:47,148 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:47,253 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:47,255 - DEBUG: Request headers:
{'CONTENT_LENGTH': '425',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:47,256 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:47,256 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><B:default-alarm-vevent-date xmlns:B="urn:ietf:params:xml:ns:caldav">BEGIN:VALARM&#13;
X-WR-ALARMUID:7D23296A-6BD8-4CEC-8E40-C6C1C322A9C2&#13;
UID:7D23296A-6BD8-4CEC-8E40-C6C1C322A9C2&#13;
TRIGGER:-PT15H&#13;
ATTACH;VALUE=URI:Basso&#13;
ACTION:AUDIO&#13;
END:VALARM&#13;
</B:default-alarm-vevent-date></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:47,256 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,257 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,257 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,257 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,257 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,257 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:47,257 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,258 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,258 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,258 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,258 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,258 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:47,259 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:47,259 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:47,259 - DEBUG: Answer status: 403 Forbidden
2014-06-15 08:23:47,389 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:47,391 - DEBUG: Request headers:
{'CONTENT_LENGTH': '430',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:47,391 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:47,392 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><B:default-alarm-vevent-datetime xmlns:B="urn:ietf:params:xml:ns:caldav">BEGIN:VALARM&#13;
X-WR-ALARMUID:B9C99CF4-EC4F-4DA1-A292-E7713B012E07&#13;
UID:B9C99CF4-EC4F-4DA1-A292-E7713B012E07&#13;
TRIGGER;VALUE=DATE-TIME:19760401T005545Z&#13;
ACTION:NONE&#13;
END:VALARM&#13;
</B:default-alarm-vevent-datetime></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:47,392 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,393 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,393 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,393 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,393 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,393 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:47,393 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,394 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,394 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,394 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,394 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,394 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:47,394 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:47,394 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:47,395 - DEBUG: Answer status: 403 Forbidden
2014-06-15 08:23:47,435 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:47,437 - DEBUG: Request headers:
{'CONTENT_LENGTH': '230',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:47,437 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:47,437 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><D:calendar-color xmlns:D="http://apple.com/ns/ical/" symbolic-color="purple">#711A76FF</D:calendar-color></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:47,438 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,438 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,438 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,439 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:47,439 - DEBUG: Anonymous has NO read access to collection stevewi/
2014-06-15 08:23:47,439 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,439 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,440 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,440 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:47,440 - DEBUG: Anonymous has NO write access to collection stevewi/
2014-06-15 08:23:47,440 - INFO: Anonymous user refused
2014-06-15 08:23:47,440 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:47,448 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:47,450 - DEBUG: Request headers:
{'CONTENT_LENGTH': '230',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:47,450 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:47,450 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><D:calendar-color xmlns:D="http://apple.com/ns/ical/" symbolic-color="purple">#711A76FF</D:calendar-color></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:47,450 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,451 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,451 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,451 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,451 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,451 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:47,451 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,452 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,452 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,452 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,452 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,452 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:47,453 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:47,453 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:47,453 - DEBUG: Answer status: 403 Forbidden
2014-06-15 08:23:47,492 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:47,495 - DEBUG: Request headers:
{'CONTENT_LENGTH': '230',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:47,495 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:47,495 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><D:calendar-color xmlns:D="http://apple.com/ns/ical/" symbolic-color="purple">#711A76FF</D:calendar-color></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:47,495 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,496 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,496 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,496 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:47,496 - DEBUG: Anonymous has NO read access to collection stevewi/
2014-06-15 08:23:47,496 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,497 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,497 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,497 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:47,497 - DEBUG: Anonymous has NO write access to collection stevewi/
2014-06-15 08:23:47,497 - INFO: Anonymous user refused
2014-06-15 08:23:47,497 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:47,537 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:47,540 - DEBUG: Request headers:
{'CONTENT_LENGTH': '230',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:47,540 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:47,540 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><D:calendar-color xmlns:D="http://apple.com/ns/ical/" symbolic-color="purple">#711A76FF</D:calendar-color></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:47,540 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,541 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,541 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,541 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,541 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,541 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:47,542 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,542 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,542 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,542 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,542 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,543 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:47,543 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:47,543 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:47,543 - DEBUG: Answer status: 403 Forbidden
2014-06-15 08:23:47,673 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:47,676 - DEBUG: Request headers:
{'CONTENT_LENGTH': '198',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:47,676 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:47,676 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><D:calendar-order xmlns:D="http://apple.com/ns/ical/">1</D:calendar-order></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:47,677 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,677 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,677 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,677 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:47,678 - DEBUG: Anonymous has NO read access to collection stevewi/
2014-06-15 08:23:47,678 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,681 - DEBUG: Test if ':stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,682 - DEBUG: Test if ':stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,682 - DEBUG: Test if ':stevewi' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:47,682 - DEBUG: Anonymous has NO write access to collection stevewi/
2014-06-15 08:23:47,682 - INFO: Anonymous user refused
2014-06-15 08:23:47,682 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:47,712 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:47,714 - DEBUG: Request headers:
{'CONTENT_LENGTH': '198',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:47,715 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:47,715 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><D:calendar-order xmlns:D="http://apple.com/ns/ical/">1</D:calendar-order></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:47,715 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,716 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,716 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,716 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,716 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,716 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:47,716 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,717 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,717 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,717 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,717 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,718 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:47,718 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:47,718 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:47,719 - DEBUG: Answer status: 403 Forbidden
2014-06-15 08:23:47,763 - INFO: PROPFIND request at / received
2014-06-15 08:23:47,766 - DEBUG: Request headers:
{'CONTENT_LENGTH': '267',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '0',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:47,766 - DEBUG: Sanitized path: /
2014-06-15 08:23:47,766 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <B:calendar-user-address-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:displayname/>
    <C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:47,766 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,767 - DEBUG: Test if ':/' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,767 - DEBUG: Test if ':/' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,767 - DEBUG: Test if ':/' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:47,767 - DEBUG: Anonymous has NO read access to collection /
2014-06-15 08:23:47,768 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,768 - DEBUG: Test if ':/' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,768 - DEBUG: Test if ':/' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,768 - DEBUG: Test if ':/' matches against '.+:^/.+$' from section 'owner_write'
2014-06-15 08:23:47,768 - DEBUG: Anonymous has NO write access to collection /
2014-06-15 08:23:47,769 - INFO: Anonymous user refused
2014-06-15 08:23:47,769 - DEBUG: Answer status: 401 Unauthorized
2014-06-15 08:23:47,777 - INFO: PROPFIND request at / received
2014-06-15 08:23:47,779 - DEBUG: Request headers:
{'CONTENT_LENGTH': '267',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_BRIEF': 't',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DEPTH': '0',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_PREFER': 'return-minimal',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:47,780 - DEBUG: Sanitized path: /
2014-06-15 08:23:47,780 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <B:calendar-user-address-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <A:displayname/>
    <C:email-address-set xmlns:C="http://calendarserver.org/ns/"/>
  </A:prop>
</A:propfind>

2014-06-15 08:23:47,780 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,781 - DEBUG: Test if 'stevewi:/' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,781 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,781 - DEBUG: Test if 'stevewi:/' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,782 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,782 - DEBUG: stevewi has read access to collection /
2014-06-15 08:23:47,782 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,783 - DEBUG: Test if 'stevewi:/' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,784 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,784 - DEBUG: Test if 'stevewi:/' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,784 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,784 - DEBUG: Test if 'stevewi:/' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:47,784 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:47,784 - DEBUG: stevewi has NO write access to collection /
2014-06-15 08:23:47,785 - DEBUG: Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:CS="http://calendarserver.org/ns/">
  <response>
    <href>/</href>
    <propstat>
      <prop>
        <C:calendar-user-address-set>
          <href>/</href>
        </C:calendar-user-address-set>
        <displayname />
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
    <propstat>
      <prop>
        <CS:email-address-set />
      </prop>
      <status>HTTP/1.1 404 Not Found</status>
    </propstat>
  </response>
</multistatus>

2014-06-15 08:23:47,786 - DEBUG: Answer status: 207 Unknown
2014-06-15 08:23:47,838 - INFO: PROPPATCH request at /stevewi/ received
2014-06-15 08:23:47,844 - DEBUG: Request headers:
{'CONTENT_LENGTH': '750',
 'CONTENT_TYPE': 'text/xml',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-us',
 'HTTP_AUTHORIZATION': 'Basic c3RldmV3aTpzdyEzMDQ1Mw==',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'localhost:5232',
 'HTTP_USER_AGENT': 'Mac_OS_X/10.9.3 (13D65) CalendarAgent/176.2',
 'PATH_INFO': '/stevewi/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '1.0.0.127.in-addr.arpa',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'timecapsule',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.5',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x109ac41e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x109d650b8>,
 'wsgi.input': <socket._fileobject object at 0x109e84450>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2014-06-15 08:23:47,844 - DEBUG: Sanitized path: /stevewi/
2014-06-15 08:23:47,844 - DEBUG: Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><B:calendar-timezone xmlns:B="urn:ietf:params:xml:ns:caldav">BEGIN:VCALENDAR&#13;
VERSION:2.0&#13;
PRODID:-//Apple Inc.//Mac OS X 10.9.3//EN&#13;
CALSCALE:GREGORIAN&#13;
BEGIN:VTIMEZONE&#13;
TZID:America/Los_Angeles&#13;
BEGIN:DAYLIGHT&#13;
TZOFFSETFROM:-0800&#13;
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU&#13;
DTSTART:20070311T020000&#13;
TZNAME:PDT&#13;
TZOFFSETTO:-0700&#13;
END:DAYLIGHT&#13;
BEGIN:STANDARD&#13;
TZOFFSETFROM:-0700&#13;
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU&#13;
DTSTART:20071104T020000&#13;
TZNAME:PST&#13;
TZOFFSETTO:-0800&#13;
END:STANDARD&#13;
END:VTIMEZONE&#13;
END:VCALENDAR&#13;
</B:calendar-timezone></A:prop></A:set></A:propertyupdate>

2014-06-15 08:23:47,844 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,845 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,845 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,845 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,845 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,845 - DEBUG: stevewi has read access to collection stevewi/
2014-06-15 08:23:47,845 - DEBUG: Reading rights from file /Users/stevewi/.config/radicale/rights
2014-06-15 08:23:47,857 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^public(/.+)?$' from section 'public'
2014-06-15 08:23:47,857 - DEBUG: Section 'public' does not match
2014-06-15 08:23:47,857 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:.*' from section 'allow-read'
2014-06-15 08:23:47,857 - DEBUG: Section 'allow-read' matches
2014-06-15 08:23:47,858 - DEBUG: Test if 'stevewi:stevewi' matches against '.+:^stevewi/.+$' from section 'owner_write'
2014-06-15 08:23:47,858 - DEBUG: Section 'owner_write' does not match
2014-06-15 08:23:47,858 - DEBUG: stevewi has NO write access to collection stevewi/
2014-06-15 08:23:47,858 - DEBUG: Answer status: 403 Forbidden

Radicale stopped

2014-06-15 08:24:07,468 - INFO: Stopping Radicale
2014-06-15 08:24:07,468 - DEBUG: Closing server listening to timecapsule port 5232
2014-06-15 08:24:07,897 - DEBUG: Cleaning up
liZe commented 10 years ago

Is that bug fixed with #198 merged?

ghost commented 10 years ago

On Oct 22, 2014, at 5:23 AM, Guillaume Ayoub notifications@github.com wrote:

Is that bug fixed with #198 merged?

I don’t know… I gave up on Radicale as a viable solution to my problem.

— sw