Kozea / Radicale

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

OSX - Cannot add calendars from Calendar application #330

Closed westende closed 5 months ago

westende commented 8 years ago

I'm writing a simple Ansible role for Radicale for Debian. While testing Radicale with Calendar on OSX 10.10 I noticed I could not add new calendars properly. I could use the existing calendar, but when adding a calendar the existing calendar disappears in favor of the new Untitled calendar.

I am running Radicale 0.9.1 on Debian Jessie behind Nginx with uWSGI.

Have I configured Radicale incorrectly, is this a feature which is not implemented or could this be a bug?

ghost commented 8 years ago

I can confirm that behavior on my end as well. Every time I add a new calendar, the existing one disappears. Any news on this issue?

liZe commented 8 years ago

Thanks for reporting this bug. Could you give your logs?

rca commented 8 years ago

I'm running into the same issue on Mac OS X El Capitan 10.11.3, Calendar 8.0. I created a calendar /berto/calendar.ics/ at localhost port 5232, then selected File -> New Calendar -> Localhost and entered the name another. Output is below:

[berto@g6]$ radicale --debug
Logging configuration file '/etc/radicale/logging' not found, using stdout.
Starting Radicale
Authentication type is None
Base URL prefix: /
Listening to 158.42.168.192.in-addr.arpa port 5232
Radicale server ready
PROPFIND request at /berto/calendar.ics/ received
Request headers:
{'CONTENT_LENGTH': '127',
 '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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <A:principal-URL/>
  </A:prop>
</A:propfind>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:">
  <response>
    <href>/berto/calendar.ics/</href>
    <propstat>
      <prop>
        <principal-URL>
          <href>/berto/calendar.ics/</href>
        </principal-URL>
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
</multistatus>

Answer status: 207 Multi-Status
PROPFIND request at /berto/calendar.ics/ received
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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
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>

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>/berto/calendar.ics/</href>
    <propstat>
      <prop>
        <C:calendar-home-set>
          <href>/berto/calendar.ics/</href>
        </C:calendar-home-set>
        <C:calendar-user-address-set>
          <href>/berto/calendar.ics/</href>
        </C:calendar-user-address-set>
        <displayname>calendar.ics</displayname>
        <principal-collection-set>
          <href>/berto/calendar.ics/</href>
        </principal-collection-set>
        <principal-URL>
          <href>/berto/calendar.ics/</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>
        <current-user-principal />
        <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>

Answer status: 207 Multi-Status
OPTIONS request at /berto/calendar.ics/ received
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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'OPTIONS',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
Answer status: 200 OK
PROPFIND request at /berto/calendar.ics/ received
Request headers:
{'CONTENT_LENGTH': '2217',
 '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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
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/"/>
    <B:calendar-alarm xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <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/"/>
    <C:invite 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>

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>/berto/calendar.ics/</href>
    <propstat>
      <prop>
        <ICAL:calendar-color>#ca82a1</ICAL:calendar-color>
        <C:calendar-timezone>BEGIN:VCALENDAR
PRODID:-//Radicale//NONSGML Radicale Server//EN
VERSION:2.0
END:VCALENDAR
</C:calendar-timezone>
        <current-user-privilege-set>
          <privilege>
            <all />
            <read />
            <write />
            <write-properties />
            <write-content />
          </privilege>
        </current-user-privilege-set>
        <displayname>calendar.ics</displayname>
        <CS:getctag>"d41d8cd98f00b204e9800998ecf8427e"</CS:getctag>
        <owner>/berto/</owner>
        <resourcetype>
          <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-alarm />
        <C:calendar-description />
        <C:calendar-free-busy-set />
        <ICAL:calendar-order />
        <C:default-alarm-vevent-date />
        <C:default-alarm-vevent-datetime />
        <CS:invite />
        <ICAL:language-code />
        <ICAL:location-code />
        <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>

Answer status: 207 Multi-Status
PROPPATCH request at /berto/calendar.ics/ received
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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
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:24E1198F-347F-48C2-92D3-2D6ED260AB69&#13;
UID:24E1198F-347F-48C2-92D3-2D6ED260AB69&#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>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
  <response>
    <href>/berto/calendar.ics/</href>
    <propstat>
      <prop>
        <C:default-alarm-vevent-date />
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
</multistatus>

Answer status: 207 Multi-Status
PROPPATCH request at /berto/calendar.ics/ received
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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
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:28E6588B-B79B-4A98-BC95-997011D26878&#13;
UID:28E6588B-B79B-4A98-BC95-997011D26878&#13;
TRIGGER;VALUE=DATE-TIME:19760401T005545Z&#13;
ACTION:NONE&#13;
END:VALARM&#13;
</B:default-alarm-vevent-datetime></A:prop></A:set></A:propertyupdate>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
  <response>
    <href>/berto/calendar.ics/</href>
    <propstat>
      <prop>
        <C:default-alarm-vevent-datetime />
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
</multistatus>

Answer status: 207 Multi-Status
PROPPATCH request at /berto/calendar.ics/ received
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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
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>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:ICAL="http://apple.com/ns/ical/">
  <response>
    <href>/berto/calendar.ics/</href>
    <propstat>
      <prop>
        <ICAL:calendar-order />
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
</multistatus>

Answer status: 207 Multi-Status
PROPPATCH request at /berto/calendar.ics/ received
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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
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>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:ICAL="http://apple.com/ns/ical/">
  <response>
    <href>/berto/calendar.ics/</href>
    <propstat>
      <prop>
        <ICAL:calendar-order />
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
</multistatus>

Answer status: 207 Multi-Status
PROPFIND request at / received
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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /
Anonymous has read access to collection /
Anonymous has write access to collection /
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>

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>

Answer status: 207 Multi-Status
PROPPATCH request at /berto/calendar.ics/ received
Request headers:
{'CONTENT_LENGTH': '748',
 '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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
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.11.3//EN&#13;
CALSCALE:GREGORIAN&#13;
BEGIN:VTIMEZONE&#13;
TZID:America/New_York&#13;
BEGIN:DAYLIGHT&#13;
TZOFFSETFROM:-0500&#13;
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU&#13;
DTSTART:20070311T020000&#13;
TZNAME:EDT&#13;
TZOFFSETTO:-0400&#13;
END:DAYLIGHT&#13;
BEGIN:STANDARD&#13;
TZOFFSETFROM:-0400&#13;
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU&#13;
DTSTART:20071104T020000&#13;
TZNAME:EST&#13;
TZOFFSETTO:-0500&#13;
END:STANDARD&#13;
END:VTIMEZONE&#13;
END:VCALENDAR&#13;
</B:calendar-timezone></A:prop></A:set></A:propertyupdate>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
  <response>
    <href>/berto/calendar.ics/</href>
    <propstat>
      <prop>
        <C:calendar-timezone />
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
</multistatus>

Answer status: 207 Multi-Status
PROPFIND request at /berto/calendar.ics/ received
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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
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>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:CS="http://calendarserver.org/ns/">
  <response>
    <href>/berto/calendar.ics/</href>
    <propstat>
      <prop>
        <CS:getctag>"34dde05d3bf1aca9c92706abd79ebce8"</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>

Answer status: 207 Multi-Status
REPORT request at /berto/calendar.ics/ received
Request headers:
{'CONTENT_LENGTH': '413',
 '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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'REPORT',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
Request content:
<?xml version="1.0" encoding="UTF-8"?>
<B:calendar-query xmlns:B="urn:ietf:params:xml:ns:caldav">
  <A:prop xmlns:A="DAV:">
    <A:getetag/>
    <A:getcontenttype/>
  </A:prop>
  <B:filter>
    <B:comp-filter name="VCALENDAR">
      <B:comp-filter name="VEVENT">
        <B:time-range start="20160502T010101Z" end="20160523T010101Z"/>
      </B:comp-filter>
    </B:comp-filter>
  </B:filter>
</B:calendar-query>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" />
Answer status: 207 Multi-Status
REPORT request at /berto/calendar.ics/ received
Request headers:
{'CONTENT_LENGTH': '318',
 '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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'REPORT',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
Request content:
<?xml version="1.0" encoding="UTF-8"?>
<B:calendar-query xmlns:B="urn:ietf:params:xml:ns:caldav">
  <A:prop xmlns:A="DAV:">
    <A:getetag/>
    <A:getcontenttype/>
  </A:prop>
  <B:filter>
    <B:comp-filter name="VCALENDAR">
      <B:comp-filter name="VTODO"/>
    </B:comp-filter>
  </B:filter>
</B:calendar-query>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" />
Answer status: 207 Multi-Status
PROPFIND request at /berto/ received
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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/
Anonymous has read access to collection berto/
Anonymous has write access to collection berto/
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>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:CS="http://calendarserver.org/ns/">
  <response>
    <href>/berto/</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>

Answer status: 207 Multi-Status
PROPFIND request at /berto/calendar.ics/ received
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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
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>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:CS="http://calendarserver.org/ns/">
  <response>
    <href>/berto/calendar.ics/</href>
    <propstat>
      <prop>
        <CS:getctag>"34dde05d3bf1aca9c92706abd79ebce8"</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>

Answer status: 207 Multi-Status
PROPFIND request at /berto/calendar.ics/ received
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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <A:getcontenttype/>
    <A:getetag/>
  </A:prop>
</A:propfind>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:">
  <response>
    <href>/berto/calendar.ics/</href>
    <propstat>
      <prop>
        <getcontenttype>text/calendar</getcontenttype>
        <getetag>"34dde05d3bf1aca9c92706abd79ebce8"</getetag>
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
</multistatus>

Answer status: 207 Multi-Status
MKCALENDAR request at /berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/ received
Request headers:
{'CONTENT_LENGTH': '1204',
 '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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'MKCALENDAR',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
Request content:
<?xml version="1.0" encoding="UTF-8"?>
<B:mkcalendar xmlns:B="urn:ietf:params:xml:ns:caldav">
  <A:set xmlns:A="DAV:">
    <A:prop>
      <B:calendar-free-busy-set>
        <YES/>
      </B:calendar-free-busy-set>
      <B:supported-calendar-component-set>
        <B:comp name="VEVENT"/>
      </B:supported-calendar-component-set>
      <A:displayname>Untitled</A:displayname>
      <D:calendar-color xmlns:D="http://apple.com/ns/ical/" symbolic-color="blue">#0E61B9FF</D:calendar-color>
      <D:calendar-order xmlns:D="http://apple.com/ns/ical/">19</D:calendar-order>
      <B:calendar-timezone>BEGIN:VCALENDAR&#13;
VERSION:2.0&#13;
PRODID:-//Apple Inc.//Mac OS X 10.11.3//EN&#13;
CALSCALE:GREGORIAN&#13;
BEGIN:VTIMEZONE&#13;
TZID:America/New_York&#13;
BEGIN:DAYLIGHT&#13;
TZOFFSETFROM:-0500&#13;
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU&#13;
DTSTART:20070311T020000&#13;
TZNAME:EDT&#13;
TZOFFSETTO:-0400&#13;
END:DAYLIGHT&#13;
BEGIN:STANDARD&#13;
TZOFFSETFROM:-0400&#13;
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU&#13;
DTSTART:20071104T020000&#13;
TZNAME:EST&#13;
TZOFFSETTO:-0500&#13;
END:STANDARD&#13;
END:VTIMEZONE&#13;
END:VCALENDAR&#13;
</B:calendar-timezone>
    </A:prop>
  </A:set>
</B:mkcalendar>

Answer status: 201 Created
PROPFIND request at /berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/ received
Request headers:
{'CONTENT_LENGTH': '117',
 '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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <A:acl/>
  </A:prop>
</A:propfind>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:">
  <response>
    <href>/berto/calendar.ics/</href>
    <propstat>
      <prop />
      <status>HTTP/1.1 200 OK</status>
    </propstat>
    <propstat>
      <prop>
        <acl />
      </prop>
      <status>HTTP/1.1 404 Not Found</status>
    </propstat>
  </response>
</multistatus>

Answer status: 207 Multi-Status
PROPFIND request at / received
Request headers:
{'CONTENT_LENGTH': '176',
 '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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /
Anonymous has read access to collection /
Anonymous has write access to collection /
Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <B:calendar-free-busy-set xmlns:B="urn:ietf:params:xml:ns:caldav"/>
  </A:prop>
</A:propfind>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
  <response>
    <href>/</href>
    <propstat>
      <prop />
      <status>HTTP/1.1 200 OK</status>
    </propstat>
    <propstat>
      <prop>
        <C:calendar-free-busy-set />
      </prop>
      <status>HTTP/1.1 404 Not Found</status>
    </propstat>
  </response>
</multistatus>

Answer status: 207 Multi-Status
PROPPATCH request at /berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/ received
Request headers:
{'CONTENT_LENGTH': '228',
 '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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
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="blue">#0E61B9FF</D:calendar-color></A:prop></A:set></A:propertyupdate>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:ICAL="http://apple.com/ns/ical/">
  <response>
    <href>/berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/</href>
    <propstat>
      <prop>
        <ICAL:calendar-color />
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
</multistatus>

Answer status: 207 Multi-Status
PROPPATCH request at /berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/ received
Request headers:
{'CONTENT_LENGTH': '199',
 '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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
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/">19</D:calendar-order></A:prop></A:set></A:propertyupdate>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:ICAL="http://apple.com/ns/ical/">
  <response>
    <href>/berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/</href>
    <propstat>
      <prop>
        <ICAL:calendar-order />
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
</multistatus>

Answer status: 207 Multi-Status
PROPPATCH request at /berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/ received
Request headers:
{'CONTENT_LENGTH': '163',
 '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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
Request content:
<?xml version="1.0" encoding="UTF-8"?>
<A:propertyupdate xmlns:A="DAV:"><A:set><A:prop><A:displayname>Untitled</A:displayname></A:prop></A:set></A:propertyupdate>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:">
  <response>
    <href>/berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/</href>
    <propstat>
      <prop>
        <displayname />
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
</multistatus>

Answer status: 207 Multi-Status
PROPPATCH request at /berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/ received
Request headers:
{'CONTENT_LENGTH': '748',
 '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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPPATCH',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
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.11.3//EN&#13;
CALSCALE:GREGORIAN&#13;
BEGIN:VTIMEZONE&#13;
TZID:America/New_York&#13;
BEGIN:DAYLIGHT&#13;
TZOFFSETFROM:-0500&#13;
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU&#13;
DTSTART:20070311T020000&#13;
TZNAME:EDT&#13;
TZOFFSETTO:-0400&#13;
END:DAYLIGHT&#13;
BEGIN:STANDARD&#13;
TZOFFSETFROM:-0400&#13;
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU&#13;
DTSTART:20071104T020000&#13;
TZNAME:EST&#13;
TZOFFSETTO:-0500&#13;
END:STANDARD&#13;
END:VTIMEZONE&#13;
END:VCALENDAR&#13;
</B:calendar-timezone></A:prop></A:set></A:propertyupdate>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
  <response>
    <href>/berto/calendar.ics/AA59119E-56F6-4DD4-8D06-F8E52242E063/</href>
    <propstat>
      <prop>
        <C:calendar-timezone />
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
  </response>
</multistatus>

Answer status: 207 Multi-Status
PROPFIND request at /berto/calendar.ics/ received
Request headers:
{'CONTENT_LENGTH': '2217',
 '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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
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/"/>
    <B:calendar-alarm xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <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/"/>
    <C:invite 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>

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>/berto/calendar.ics/</href>
    <propstat>
      <prop>
        <ICAL:calendar-color>#0E61B9FF</ICAL:calendar-color>
        <C:calendar-free-busy-set>
        </C:calendar-free-busy-set>
        <ICAL:calendar-order>19</ICAL:calendar-order>
        <C:calendar-timezone>BEGIN:VCALENDAR
PRODID:-//Radicale//NONSGML Radicale Server//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:America/New_York
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
DTSTART:20070311T020000
TZNAME:EDT
TZOFFSETTO:-0400
X-RADICALE-NAME:America/New_York
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0400
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
DTSTART:20071104T020000
TZNAME:EST
TZOFFSETTO:-0500
X-RADICALE-NAME:America/New_York
END:STANDARD
X-RADICALE-NAME:America/New_York
END:VTIMEZONE
END:VCALENDAR
</C:calendar-timezone>
        <current-user-privilege-set>
          <privilege>
            <all />
            <read />
            <write />
            <write-properties />
            <write-content />
          </privilege>
        </current-user-privilege-set>
        <C:default-alarm-vevent-date>BEGIN:VALARM
X-WR-ALARMUID:24E1198F-347F-48C2-92D3-2D6ED260AB69
UID:24E1198F-347F-48C2-92D3-2D6ED260AB69
TRIGGER:-PT15H
ATTACH;VALUE=URI:Basso
ACTION:AUDIO
END:VALARM
</C:default-alarm-vevent-date>
        <C:default-alarm-vevent-datetime>BEGIN:VALARM
X-WR-ALARMUID:28E6588B-B79B-4A98-BC95-997011D26878
UID:28E6588B-B79B-4A98-BC95-997011D26878
TRIGGER;VALUE=DATE-TIME:19760401T005545Z
ACTION:NONE
END:VALARM
</C:default-alarm-vevent-datetime>
        <displayname>Untitled</displayname>
        <CS:getctag>"34dde05d3bf1aca9c92706abd79ebce8"</CS:getctag>
        <owner>/berto/</owner>
        <resourcetype>
          <C:calendar />
          <collection />
        </resourcetype>
        <C:supported-calendar-component-set>
          <C:comp name="VEVENT" />
        </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-alarm />
        <C:calendar-description />
        <CS:invite />
        <ICAL:language-code />
        <ICAL:location-code />
        <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>

Answer status: 207 Multi-Status
PROPFIND request at / received
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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /
Anonymous has read access to collection /
Anonymous has write access to collection /
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>

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>

Answer status: 207 Multi-Status
PROPFIND request at /berto/calendar.ics/ received
Request headers:
{'CONTENT_LENGTH': '2217',
 '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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/berto/calendar.ics/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /berto/calendar.ics/
Anonymous has read access to collection berto/calendar.ics/
Anonymous has write access to collection berto/calendar.ics/
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/"/>
    <B:calendar-alarm xmlns:B="urn:ietf:params:xml:ns:caldav"/>
    <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/"/>
    <C:invite 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>

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>/berto/calendar.ics/</href>
    <propstat>
      <prop>
        <ICAL:calendar-color>#0E61B9FF</ICAL:calendar-color>
        <C:calendar-free-busy-set>
        </C:calendar-free-busy-set>
        <ICAL:calendar-order>19</ICAL:calendar-order>
        <C:calendar-timezone>BEGIN:VCALENDAR
PRODID:-//Radicale//NONSGML Radicale Server//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:America/New_York
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
DTSTART:20070311T020000
TZNAME:EDT
TZOFFSETTO:-0400
X-RADICALE-NAME:America/New_York
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0400
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
DTSTART:20071104T020000
TZNAME:EST
TZOFFSETTO:-0500
X-RADICALE-NAME:America/New_York
END:STANDARD
X-RADICALE-NAME:America/New_York
END:VTIMEZONE
END:VCALENDAR
</C:calendar-timezone>
        <current-user-privilege-set>
          <privilege>
            <all />
            <read />
            <write />
            <write-properties />
            <write-content />
          </privilege>
        </current-user-privilege-set>
        <C:default-alarm-vevent-date>BEGIN:VALARM
X-WR-ALARMUID:24E1198F-347F-48C2-92D3-2D6ED260AB69
UID:24E1198F-347F-48C2-92D3-2D6ED260AB69
TRIGGER:-PT15H
ATTACH;VALUE=URI:Basso
ACTION:AUDIO
END:VALARM
</C:default-alarm-vevent-date>
        <C:default-alarm-vevent-datetime>BEGIN:VALARM
X-WR-ALARMUID:28E6588B-B79B-4A98-BC95-997011D26878
UID:28E6588B-B79B-4A98-BC95-997011D26878
TRIGGER;VALUE=DATE-TIME:19760401T005545Z
ACTION:NONE
END:VALARM
</C:default-alarm-vevent-datetime>
        <displayname>Untitled</displayname>
        <CS:getctag>"34dde05d3bf1aca9c92706abd79ebce8"</CS:getctag>
        <owner>/berto/</owner>
        <resourcetype>
          <C:calendar />
          <collection />
        </resourcetype>
        <C:supported-calendar-component-set>
          <C:comp name="VEVENT" />
        </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-alarm />
        <C:calendar-description />
        <CS:invite />
        <ICAL:language-code />
        <ICAL:location-code />
        <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>

Answer status: 207 Multi-Status
PROPFIND request at / received
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.11.3 (15D21) CalendarAgent/361.1',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '158.42.168.192.in-addr.arpa',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized path: /
Anonymous has read access to collection /
Anonymous has write access to collection /
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>

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>

Answer status: 207 Multi-Status
liZe commented 8 years ago

@rca Thanks for the log!

cimm commented 7 years ago

Any updates on this bug? I think I have the same problem. It creates the first calendar with my username but when I try to add a calendar it replaces the first calendar with the new one (or it simply changes the name which makes the new one disappear, not sure).

liZe commented 7 years ago

Any updates on this bug?

No, I didn't take the time to debug with MacOS yet.

tobixen commented 7 years ago

Maybe and maybe not related ...

I'm the author of the python caldav library, and the test suite seems broken towards radicale now. I'm frequently creating and deleting a dedicated testing calendar in the tests. It seems that radicale is a bit confused over weather /home/radicale/.config/radicale/collections/someuser should be a file or a directory (where someuser is the user id).

Here are my reproduction steps:

sudo docker run -p5232:5232 jcsaaddupuy/radicale
cd /tmp ; hg clone https://bitbucket.org/cyrilrbt/caldav 
cd caldav
hg checkout v0.5.0.dev 
sudo python ./setup.py install
echo 'caldav_servers=[{"url": "http://localhost:5232/someuser/", "username": "someuser", "password": "123"}]' >> tests/conf.py 
nosetests -x --pdb

... and radicale will complain either that it cannot open /home/radicale/.config/radicale/collections/someuser/pythoncaldav-test.props (because /home/radicale/.config/radicale/collections/someuser is already a file) or that /home/radicale/.config/radicale/collections/someuser cannot be opened as a file because it's already a directory.

I'll see if I get time to investigate a bit more.

tobixen commented 7 years ago

Guessing that it should be a directory, here is the traceback for where it's trying to create the file:

Traceback (most recent call last):
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run
    self.result = application(self.environ, self.start_response)
  File "/usr/local/lib/python2.7/dist-packages/radicale/__init__.py", line 331, in __call__
    user)
  File "/usr/local/lib/python2.7/dist-packages/radicale/__init__.py", line 473, in mkcalendar
    collection.write()
  File "/usr/local/lib/python2.7/dist-packages/radicale/ical.py", line 395, in write
    self.save(text)
  File "/usr/local/lib/python2.7/dist-packages/radicale/storage/filesystem.py", line 81, in save
    with open(self._path, "w") as fd:
  File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "/usr/local/lib/python2.7/dist-packages/radicale/storage/filesystem.py", line 51, in open
    with codecs.open(abs_path, mode, config.get("encoding", "stock")) as fd:
  File "/usr/lib/python2.7/codecs.py", line 881, in open
    file = __builtin__.open(filename, mode, buffering)
IOError: [Errno 21] Is a directory: '/home/radicale/.config/radicale/collections/someuser'

(perhaps I should file a separate bug, since this has nothing to do with OSX)

tobixen commented 7 years ago

Here are some debug logs from the client side:

sending request - method=MKCALENDAR, url=http://localhost:5232/someuser/pythoncaldav-test, headers={'User-Agent': 'Mozilla/5.0', 'Accept': 'text/xml', 'Depth': '0'}
body:
b'<?xml version=\'1.0\' encoding=\'utf-8\'?>\n<C:mkcalendar xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:D="DAV"><ns0:set xmlns:ns0="DAV:"><ns0:prop><ns0:displayname>Yep</ns0:displayname></ns0:prop></ns0:set></C:mkcalendar>'
response headers: {'Date': 'Wed, 04 Jan 2017 00:27:06 GMT', 'Server': 'WSGIServer/0.1 Python/2.7.3', 'Content-Length': '59', 'Content-Type': 'text/plain'}
response status: 500
raw response: b'A server error occurred.  Please contact the administrator.'
liZe commented 7 years ago

@tobixen Looks like this second issue is not happening with the current git version.

woj-tek commented 6 years ago

I'm just (very) new to Radicale and have set-it up recently. I added contacts and calendar on the server. Sync works great with dav-droid. I was also able to add contact CardDAV do OSX High Sierra and it syncs well, however adding CalDAV it shows that there aren't any calendars delegated.

I haven't found any information on the server / in the logs (granted, haven't search a lot). How should I proceed?

edwardando commented 4 years ago

The solution that I have found (OSX High Sierra and Calendar 10), is to use the web interface to radicale, log in and copy the URL written there (which includes a long and apparently random hexadecimal string after the username), using this as the source URL the calendar subscribes fine.

edwardando commented 4 years ago

The above solution is read-only, the real solution is as follows:

System Preferences -> Internet Accounts -> Add other account

and on manual mode, Radicale calendar is picked up and synced no problem, it would be great to add this to the website.

TimDaub commented 3 years ago

I can confirm that adding an account is possible as @edwardando described above. It's, however, important to remove the protocol scheme from the URL (https://).

I then see the events from radical in my iCal calendar. But when I try to edit/delete/create new appointments, they're not synced. I tried Cmd + R to "refresh" the calendar manually. But no updates...

marcastel commented 3 years ago

+5 years down the line and this issue is still open! I came here because I have the same (or at least similar) issues. With one significant handicap: I don't have access to the Radicale servers.

Nonetheless I need to have my accounts operational in macOS/iOS native apps -- namely Calendar, Contacts, Notes and Reminders (i.e. CalDAV & CardDAV). I want my vanilla operating systems to operate correctly without third party products à la Thunderbird, Busy Contacts, Informant, Fantastical, ...

I have mileage on the topic (mostly with SABRE) and am happy to test/re-test configure/re-configure ... Egoistically I would be happy with a workaround.

My issues so far:

I have my curl(1) handy to query the server's headers and responses. I only know how to PROPFIND/REPORT/GET the main URL. So pretty much stuck here in understanding the issue. Help needed.

pavinjosdev commented 3 years ago

@TimDaub @marcastel I had success testing with iOS 14.4.2 and the Calendar app using Radicale 2.1.11 and 3.0.6.

So with the direct URL to the resource like this https://example.domain.tld/radicale/user@domain.com/146f3568-1175-414f-b194-45342de3326e/, it didn't work ❌ But URL to the home https://example.domain.tld/radicale/user@domain.com/ worked ✔

It would be nice if you could verify if the same solution works on Mac OSX/11 and its calendar application.

TimDaub commented 3 years ago

@pavinjosdev thanks for clarifying all the options. I think you've finally found the appropriate parameters. I can confirm Test 3 but with slight modifications. I'm on Mac OS Catalina 10.15.6 and radicale v3.0.3

I too got it working by going through the Mac OS Settings app > "Internet Accounts" > Add Account > Add CalDAV account. Then, the only way I was able to retrieve calendar events from radical but also write, is with the following options:

Screen Shot 2021-03-30 at 17

What's important to note here is that server address should be a domain name without a protocol scheme:

In my opinion, this information could now be added to the radical docs. Are PRs welcome?

fcorneli commented 3 years ago

@TimDaub @marcastel I had success testing with iOS 14.4.2 and the Calendar app using Radicale 2.1.11 and 3.0.6.

So with the direct URL to the resource like this https://example.domain.tld/radicale/user@domain.com/146f3568-1175-414f-b194-45342de3326e/, it didn't work ❌ But URL to the home https://example.domain.tld/radicale/user@domain.com/ worked ✔

I encountered a similar issue with the Mac Calendar client. Using: https://vagrant.e-contract.be/calendar/fcorneli/ made my test agenda visible in Mac Calendar, using: https://vagrant.e-contract.be/calendar/fcorneli/dc134844-f02e-0241-cb35-50c416968ec6/ showed up nothing in Mac Calendar.

luckydonald commented 2 years ago

I want to re-iterate, that also under iOS under Advanced the Account URL must not be https://example.com/username/ but indeed /username/ (sometimes it even changes that on it's own!).

It seems to still complain about not being able to connect via SSL, but not giving in (pressing cancel to not remove SSL) and then pressing Save a second time to save even with it "not working", it actually starts to work!