# Radicale does not work



## IPTRACE (Nov 22, 2016)

Server: py27-radicale-1.1.1
Client: Addin Outlook - CalDav Synchronizer

I cannot sync data with the simple config.


```
[server]
hosts = 10.10.10.18:5232

# Daemon flag
daemon = True

# File storing the PID in daemon mode
#pid =

# SSL flag, enable HTTPS protocol
ssl = True

# SSL certificate path
certificate = /usr/local/etc/radicale/cert/ssl.crt

# SSL private key
key = /usr/local/etc/radicale/cert/ssl.key

# SSL Protocol used. See python's ssl module for available values
protocol = PROTOCOL_SSLv23

# Ciphers available. See python's ssl module for available ciphers
#ciphers =

# Reverse DNS to resolve client address in logs
#dns_lookup = True

# Root URL of Radicale (starting and ending with a slash)
#base_prefix = /

# Possibility to allow URLs cleaned by a HTTP server, without the base_prefix
#can_skip_base_prefix = False

# Message displayed in the client when a password is needed
#realm = Password Required


[encoding]

# Encoding for responding requests
#request = utf-8

# Encoding for storing local collections
#stock = utf-8


[well-known]

# Path where /.well-known/caldav/ is redirected
#caldav = '/radicale/caldav/'

# Path where /.well-known/carddav/ is redirected
#carddav = '/radicale/carddav/'


[auth]

# Authentication method
# Value: None | htpasswd | IMAP | LDAP | PAM | courier | http | remote_user | custom
#type = None

# Custom authentication handler
#custom_handler =

# Htpasswd filename
#htpasswd_filename = /usr/local/etc/radicale/users

# Htpasswd encryption method
# Value: plain | sha1 | ssha | crypt | bcrypt | md5
#htpasswd_encryption = crypt

# LDAP server URL, with protocol and port
#ldap_url = ldap://10.10.12.14:389/

# LDAP base path
#ldap_base = dc=test,dc=local

# LDAP login attribute
#ldap_attribute = uid

# LDAP filter string
# placed as X in a query of the form (&(...)X)
# example: (objectCategory=Person)(objectClass=User)(memberOf=cn=calenderusers,ou=users,dc=example,dc=org)
# leave empty if no additional filter is needed
#ldap_filter =

# LDAP dn for initial login, used if LDAP server does not allow anonymous searches
# Leave empty if searches are anonymous
#ldap_binddn = user

# LDAP password for initial login, used with ldap_binddn
#ldap_password = pass

# LDAP scope of the search
#ldap_scope = SUBTREE

# IMAP Configuration
#imap_hostname = localhost
#imap_port = 143
#imap_ssl = False

# PAM group user should be member of
#pam_group_membership =

# Path to the Courier Authdaemon socket
#courier_socket =

# HTTP authentication request URL endpoint
#http_url =
# POST parameter to use for username
#http_user_parameter =
# POST parameter to use for password
#http_password_parameter =


[git]

# Git default options
#committer = Radicale <radicale@example.com>


[rights]

# Rights backend
# Value: None | authenticated | owner_only | owner_write | from_file | custom
#type = None

# Custom rights handler
#custom_handler =

# File for rights management from_file
#file = /usr/local/share/radicale/rights


[storage]

# Storage backend
# -------
# WARNING: ONLY "filesystem" IS DOCUMENTED AND TESTED,
#          OTHER BACKENDS ARE NOT READY FOR PRODUCTION.
# -------
# Value: filesystem | multifilesystem | database | custom
#type = filesystem

# Custom storage handler
#custom_handler =

# Folder for storing local collections, created if not present
#filesystem_folder = /radicale/

# Database URL for SQLAlchemy
# dialect+driver://user:password@host/dbname[?key=value..]
# For example: sqlite:///var/db/radicale.db, postgresql://user:password@localhost/radicale
# See http://docs.sqlalchemy.org/en/rel_0_8/core/engines.html#sqlalchemy.create_engine
#database_url =


[logging]

# Logging configuration file
# If no config is given, simple information is printed on the standard output
# For more information about the syntax of the configuration file, see:
# http://docs.python.org/library/logging.config.html
config = /usr/local/etc/radicale/logging
# Set the default logging level to debug
#debug = False
# Store all environment variables (including those set in the shell)
#full_environment = False


[headers]

# Additional HTTP headers
#Access-Control-Allow-Origin = *
```

Server log:

```
2016-11-22 20:20:41,262 - INFO: REPORT request at / received
2016-11-22 20:20:41,264 - DEBUG: Request headers:
{'CONTENT_LENGTH': '683',
 'CONTENT_TYPE': 'application/xml; charset=utf-8',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_CONNECTION': 'Keep-Alive',
 'HTTP_DEPTH': '1',
 'HTTP_HOST': 'pim1.domain.local:52322',
 'HTTP_USER_AGENT': 'CalDavSynchronizer/2.10',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '10.101.1.13',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'REPORT',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '10.10.10.18',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.12',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x8006701e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x8018a3b48>,
 'wsgi.input': <socket._fileobject object at 0x801920ed0>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2016-11-22 20:20:41,264 - DEBUG: Sanitized path: /
2016-11-22 20:20:41,265 - DEBUG: Anonymous has read access to collection /
2016-11-22 20:20:41,265 - DEBUG: Anonymous has write access to collection /
2016-11-22 20:20:41,502 - DEBUG: Request content:
<?xml version="1.0"?>
                    <C:calendar-query xmlns:C="urn:ietf:params:xml:ns:caldav">
                        <D:prop xmlns:D="DAV:">
                            <D:getetag/>
                        </D:prop>
                        <C:filter>
                            <C:comp-filter name="VCALENDAR">
                                <C:comp-filter name="VEVENT">
                                  <C:time-range start="20160923T000000Z" end="20170522T000000Z"/>
                                </C:comp-filter>
                            </C:comp-filter>
                        </C:filter>
                    </C:calendar-query>
```

Client log:

```
CalDavSynchronizer.DataAccess.WebDavClientException: Response status code does not indicate success: '500' ('InternalServerError')
```


----------



## SirDice (Nov 23, 2016)

A 500 server error usually indicates there's something wrong on the web server. You typically get this when, for example, PHP crashes on Apache (this is not related but has similar consequences). So if the builtin web server is producing 500 server errors I would guess there's something wrong with the server's configuration. Maybe a file permission issue?


----------



## IPTRACE (Nov 23, 2016)

Yes, I know but I need working configuration.
Unfortunately, I was checking a lot from the Internet but without success.
In my scenario, Radicale is the web server so the problem is with config but I cannot resolve it because these errors say nothing.

Anyway thanks.


----------



## IPTRACE (Nov 25, 2016)

I've uncommented the following line in /usr/local/etc/radicale/config file.


```
# Folder for storing local collections, created if not present
filesystem_folder = /radicale/
```

Radicale created there .propos file with content 
	
	



```
{"tag": "VCALENDAR"}
```
But client still gets 500 error code.

Server log:

```
2016-11-25 12:06:32,888 - INFO: REPORT request at / received
2016-11-25 12:06:32,889 - DEBUG: Request headers:
{'CONTENT_LENGTH': '683',
 'CONTENT_TYPE': 'application/xml; charset=utf-8',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_CONNECTION': 'Keep-Alive',
 'HTTP_DEPTH': '1',
 'HTTP_HOST': 'pim1.domain.local:5232',
 'HTTP_USER_AGENT': 'CalDavSynchronizer/2.10',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '10.101.1.13',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'REPORT',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '10.10.10.18',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.12',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x8006701e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x8018a3b48>,
 'wsgi.input': <socket._fileobject object at 0x801920ed0>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2016-11-25 12:06:32,889 - DEBUG: Sanitized path: /
2016-11-25 12:06:32,890 - DEBUG: Anonymous has read access to collection /
2016-11-25 12:06:32,890 - DEBUG: Anonymous has write access to collection /
2016-11-25 12:06:33,029 - DEBUG: Request content:
<?xml version="1.0"?>
                    <C:calendar-query xmlns:C="urn:ietf:params:xml:ns:caldav">
                        <D:prop xmlns:D="DAV:">
                            <D:getetag/>
                        </D:prop>
                        <C:filter>
                            <C:comp-filter name="VCALENDAR">
                                <C:comp-filter name="VEVENT">
                                  <C:time-range start="20160926T000000Z" end="20170525T000000Z"/>
                                </C:comp-filter>
                            </C:comp-filter>
                        </C:filter>
                    </C:calendar-query>

2016-11-25 12:06:33,032 - DEBUG: Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" />
2016-11-25 12:06:33,033 - DEBUG: Answer status: 207 Unknown
2016-11-25 12:06:33,623 - INFO: PUT request at /f66037e3-bde7-4e1e-8513-ede0930d6248.ics received
2016-11-25 12:06:33,624 - DEBUG: Request headers:
{'CONTENT_LENGTH': '809',
 'CONTENT_TYPE': 'text/calendar; charset=utf-8',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_CONNECTION': 'Keep-Alive',
 'HTTP_HOST': 'pim1.domain.local:5232',
 'HTTP_IF_NONE_MATCH': '*',
 'HTTP_USER_AGENT': 'CalDavSynchronizer/2.10',
 'PATH_INFO': '/f66037e3-bde7-4e1e-8513-ede0930d6248.ics',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '10.10.1.13',
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PUT',
 'SCRIPT_NAME': '',
 'SERVER_NAME': '10.10.10.18',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.12',
 'wsgi.errors': <open file '<stderr>', mode 'w' at 0x8006701e0>,
 'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x8018a3b48>,
 'wsgi.input': <socket._fileobject object at 0x801920ed0>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
2016-11-25 12:06:33,625 - DEBUG: Sanitized path: /f66037e3-bde7-4e1e-8513-ede0930d6248.ics
2016-11-25 12:06:33,625 - DEBUG: Anonymous has read access to collection /
2016-11-25 12:06:33,625 - DEBUG: Anonymous has write access to collection /
2016-11-25 12:06:33,780 - DEBUG: Request content:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN
BEGIN:VTIMEZONE
TZID:Central European Standard Time
BEGIN:STANDARD
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYHOUR=3;BYMINUTE=0;BYMONTH=10
TZNAME:Central European Standard Time
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYHOUR=2;BYMINUTE=0;BYMONTH=3
TZNAME:Central European Daylight Time
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
DTEND;VALUE=DATE:20161123
DTSTAMP:20161125T110633Z
DTSTART;VALUE=DATE:20161122
PRIORITY:5
SEQUENCE:0
SUMMARY:test
TRANSP:TRANSPARENT
UID:f66037e3-bde7-4e1e-8513-ede0930d6248
X-MICROSOFT-CDO-BUSYSTATUS:FREE
END:VEVENT
END:VCALENDAR
```


----------



## IPTRACE (Nov 25, 2016)

Anyway this works with IOS CalDav client. The problem is with Outlook CalDav Synchronizer.
I use MS Outlook 2016.


----------



## IPTRACE (Nov 25, 2016)

Credentials needed, even fill with fake.
https://sourceforge.net/p/outlookcaldavsynchronizer/discussion/general/thread/a183a1cc/


----------

