[GH-ISSUE #140] Radicale support (PROPFIND allprop ?) #137

Closed
opened 2026-02-25 20:30:58 +03:00 by kerem · 2 comments
Owner

Originally created by @jgranduel on GitHub (Jun 23, 2016).
Original GitHub issue: https://github.com/aluxnimm/outlookcaldavsynchronizer/issues/140

Hi,

I'm testing CalDav Synchronizer with Outlook 2010. It's supposed to support Radicale as mentioned on README.
I have Radicale on Win 10 (python 3.5.1, Radicale 1.1.1). No rights at all (so no UserName/Password for my test).

python.exe .\radicale --debug
INFO:root: Starting Radicale (2016-06-23 14:18:50; __main__.py:138)
DEBUG:root: Authentication type is None (2016-06-23 14:18:50; __init__.py:34)
DEBUG:root: Base URL prefix: / (2016-06-23 14:18:50; __main__.py:166)
DEBUG:root: Listening to MyServer port 5232 (2016-06-23 14:18:50; __main__.py:174)
DEBUG:root: Radicale server ready (2016-06-23 14:18:50; __main__.py:179)

On new calendar configuration testing, I get

INFO:root: PROPFIND request at /my/cal/ received (2016-06-23 14:21:57; __init__.py:244)
    DEBUG:root: Request headers:
    {'CONTENT_LENGTH': '174',
     'CONTENT_TYPE': 'application/xml; charset=utf-8',
     'GATEWAY_INTERFACE': 'CGI/1.1',
     'HTTP_CONNECTION': 'Keep-Alive',
     'HTTP_DEPTH': '0',
     'HTTP_HOST': 'localhost:5232',
     'HTTP_USER_AGENT': 'CalDavSynchronizer/2.1',
     'PATH_INFO': '/my/cal/',
     'QUERY_STRING': '',
     'REMOTE_ADDR': '127.0.0.1',
     'REMOTE_HOST': '',
     'REQUEST_METHOD': 'PROPFIND',
     'SCRIPT_NAME': '',
     'SERVER_NAME': 'MyServer',
     'SERVER_PORT': '5232',
     'SERVER_PROTOCOL': 'HTTP/1.1',
     'SERVER_SOFTWARE': 'WSGIServer/0.2',
     'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp65001'>,
     'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
     'wsgi.input': <_io.BufferedReader name=296>,
     'wsgi.multiprocess': False,
     'wsgi.multithread': True,
     'wsgi.run_once': False,
     'wsgi.url_scheme': 'http',
     'wsgi.version': (1, 0)} (2016-06-23 14:21:57; __init__.py:246)
    DEBUG:root: Sanitized path: /my/cal/ (2016-06-23 14:21:57; __init__.py:265)
    DEBUG:root: Anonymous has read access to collection my/cal/ (2016-06-23 14:21:57; __init__.py:195)
    DEBUG:root: Anonymous has write access to collection my/cal/ (2016-06-23 14:21:57; __init__.py:207)
    DEBUG:root: Request content:
    <?xml version='1.0'?>
                            <D:propfind xmlns:D="DAV:">
                                <D:allprop/>
                            </D:propfind>
                      (2016-06-23 14:21:57; __init__.py:322)
    Traceback (most recent call last):
      File "C:\Program Files\Python35\lib\wsgiref\handlers.py", line 137, in run
        self.result = application(self.environ, self.start_response)
      File "C:\Program Files\Python35\lib\site-packages\radicale\__init__.py", line 332, in __call__
        user)
      File "C:\Program Files\Python35\lib\site-packages\radicale\__init__.py", line 548, in do_PROPFIND
        environ["PATH_INFO"], content, collections, user)
      File "C:\Program Files\Python35\lib\site-packages\radicale\xmlutils.py", line 223, in propfind
        props = [prop.tag for prop in root.find(_tag("D", "prop"))]
    TypeError: 'NoneType' object is not iterable

A PROPFIND request is sent with which is rejected. As you say it works with Radicale, I guess I miss something on CalDav Synchronizer configuration. Could you provide some configuration tips known to work if any?

Thanks in advance !

Originally created by @jgranduel on GitHub (Jun 23, 2016). Original GitHub issue: https://github.com/aluxnimm/outlookcaldavsynchronizer/issues/140 Hi, I'm testing CalDav Synchronizer with Outlook 2010. It's supposed to support Radicale as mentioned on README. I have Radicale on Win 10 (python 3.5.1, Radicale 1.1.1). No rights at all (so no UserName/Password for my test). ``` python python.exe .\radicale --debug INFO:root: Starting Radicale (2016-06-23 14:18:50; __main__.py:138) DEBUG:root: Authentication type is None (2016-06-23 14:18:50; __init__.py:34) DEBUG:root: Base URL prefix: / (2016-06-23 14:18:50; __main__.py:166) DEBUG:root: Listening to MyServer port 5232 (2016-06-23 14:18:50; __main__.py:174) DEBUG:root: Radicale server ready (2016-06-23 14:18:50; __main__.py:179) ``` On new calendar configuration testing, I get ``` python INFO:root: PROPFIND request at /my/cal/ received (2016-06-23 14:21:57; __init__.py:244) DEBUG:root: Request headers: {'CONTENT_LENGTH': '174', 'CONTENT_TYPE': 'application/xml; charset=utf-8', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_CONNECTION': 'Keep-Alive', 'HTTP_DEPTH': '0', 'HTTP_HOST': 'localhost:5232', 'HTTP_USER_AGENT': 'CalDavSynchronizer/2.1', 'PATH_INFO': '/my/cal/', 'QUERY_STRING': '', 'REMOTE_ADDR': '127.0.0.1', 'REMOTE_HOST': '', 'REQUEST_METHOD': 'PROPFIND', 'SCRIPT_NAME': '', 'SERVER_NAME': 'MyServer', 'SERVER_PORT': '5232', 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SOFTWARE': 'WSGIServer/0.2', 'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp65001'>, 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>, 'wsgi.input': <_io.BufferedReader name=296>, 'wsgi.multiprocess': False, 'wsgi.multithread': True, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)} (2016-06-23 14:21:57; __init__.py:246) DEBUG:root: Sanitized path: /my/cal/ (2016-06-23 14:21:57; __init__.py:265) DEBUG:root: Anonymous has read access to collection my/cal/ (2016-06-23 14:21:57; __init__.py:195) DEBUG:root: Anonymous has write access to collection my/cal/ (2016-06-23 14:21:57; __init__.py:207) DEBUG:root: Request content: <?xml version='1.0'?> <D:propfind xmlns:D="DAV:"> <D:allprop/> </D:propfind> (2016-06-23 14:21:57; __init__.py:322) Traceback (most recent call last): File "C:\Program Files\Python35\lib\wsgiref\handlers.py", line 137, in run self.result = application(self.environ, self.start_response) File "C:\Program Files\Python35\lib\site-packages\radicale\__init__.py", line 332, in __call__ user) File "C:\Program Files\Python35\lib\site-packages\radicale\__init__.py", line 548, in do_PROPFIND environ["PATH_INFO"], content, collections, user) File "C:\Program Files\Python35\lib\site-packages\radicale\xmlutils.py", line 223, in propfind props = [prop.tag for prop in root.find(_tag("D", "prop"))] TypeError: 'NoneType' object is not iterable ``` A PROPFIND request is sent with which is rejected. As you say it works with Radicale, I guess I miss something on CalDav Synchronizer configuration. Could you provide some configuration tips known to work if any? Thanks in advance !
kerem closed this issue 2026-02-25 20:30:58 +03:00
Author
Owner

@aluxnimm commented on GitHub (Jun 24, 2016):

no experience with radicale sorry. support for it is mentioned in readme because other users reported us that it works. did you test if other caldav clients work with your server? and propfind request is necessary and shouldn't be rejected from your server if the dav resource url is correct?

<!-- gh-comment-id:228268449 --> @aluxnimm commented on GitHub (Jun 24, 2016): no experience with radicale sorry. support for it is mentioned in readme because other users reported us that it works. did you test if other caldav clients work with your server? and propfind request is necessary and shouldn't be rejected from your server if the dav resource url is correct?
Author
Owner

@jgranduel commented on GitHub (Jun 24, 2016):

Thank you for your answer.

I've restarted afresh today. And I cannot reproduce the issue on Radicale when calling from curl.

>curl -x -X REPORT "http://localhost:5232/my/cal/" -H "Depth: 1" -d "<D:propfind xmlns:D='DAV:'><D:allprop/></D:propfind>"
<?xml version="1.0"?>
<multistatus xmlns="DAV:">
  <response>
    <href>/my/cal/c45e58d5-0e79-4f21-ae48-8e7bb73af9b9.ics</href>
  </response>
  <response>
[...]
  </response>
</multistatus>

And it seems to work from Outlook 2010 (Create Event in lightning <-> see/modify in Outlook), but not when I use "Synchronization Profiles" > "Test Settings" button which triggers the Error 500 described before.
Cannot do more tests now.
Thanks.

<!-- gh-comment-id:228277856 --> @jgranduel commented on GitHub (Jun 24, 2016): Thank you for your answer. I've restarted afresh today. And I cannot reproduce the issue on Radicale when calling from curl. ``` powershell >curl -x -X REPORT "http://localhost:5232/my/cal/" -H "Depth: 1" -d "<D:propfind xmlns:D='DAV:'><D:allprop/></D:propfind>" <?xml version="1.0"?> <multistatus xmlns="DAV:"> <response> <href>/my/cal/c45e58d5-0e79-4f21-ae48-8e7bb73af9b9.ics</href> </response> <response> [...] </response> </multistatus> ``` And it seems to work from Outlook 2010 (Create Event in lightning <-> see/modify in Outlook), but not when I use "Synchronization Profiles" > "Test Settings" button which triggers the Error 500 described before. Cannot do more tests now. Thanks.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/outlookcaldavsynchronizer#137
No description provided.