Creating CalDav Meeting: invalid object
When I create a new appointment for a CalDav collection with Summary QWERT, Evolution reports "Failed to create an event in the calendar “xyz@example.int : Default” \n Cannot create calendar object: Invalid object".
This is the communiction with the server:
REQUEST
PROPFIND /dav/calendars/user/someone/Default/ HTTP/1.1" (type=prop; depth=0) => ""
Host:127.0.0.3
Connection:close
Content-Length:113
User-Agent:Evolution/3.28.2
Cache-Control:no-cache
Pragma:no-cache
Depth:0
Content-Type:application/xml; charset="utf-8"
Accept-Language:en-us, en;q=0.9
Authorization:Basic ABCD
<propfind xmlns="DAV:" xmlns:CS="http://calendarserver.org/ns/"> <prop> <CS:getctag/> </prop></propfind>
RESPONSE
HTTP/1.1 207 Multi-Status
Date: Sun, 17 Jun 2018 13:40:55 GMT
Connection: close, Upgrade
Upgrade: h2c
Vary: Accept-Encoding, Brief, Prefer
Content-Type: application/xml; charset=utf-8
Content-Length: 304
<?xml version="1.0" encoding="utf-8"?><multistatus xmlns="DAV:" xmlns:CS="http://calendarserver.org/ns/"><response><href>/dav/calendars/user/someone/Default/</href><propstat><prop><CS:getctag>1454443908-215375</CS:getctag></prop><status>HTTP/1.1 200 OK</status></propstat></response></multistatus>
REQUEST
GET /dav/calendars/user/someone/Default/49bc5eab9c4647b0bf125c445f24d9a7ae9b19c5.ics
Host:127.0.0.3
Connection:close
User-Agent:Evolution/3.28.2
Cache-Control:no-cache
Pragma:no-cache
Accept-Language:en-us, en;q=0.9
Authorization:Basic ABCD
RESPONSE
HTTP/1.1 404 Not Found (error=The requested URL was not found on this server.)
Date: Sun, 17 Jun 2018 13:40:55 GMT
Connection: close, Upgrade
Upgrade: h2c
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Content-Length: 462
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL was not found on this server.</p><hr><address>Cyrus-HTTP/3.0.7-22-g0e083d796-dirty Cyrus-SASL/2.1.27 OpenSSL/1.0.0 Nghttp2/1.31.1 Zlib/1.2.11 Brotli/1.0.3 LibXML2.9.8 SQLite/3.20.1 LibiCal/3.0 ICU4C/56.1 Jansson/2.10 Server at 127.0.0.3 Port 80</address></body></html>
REQUEST
GET /dav/calendars/user/someone/Default/49bc5eab9c4647b0bf125c445f24d9a7ae9b19c5 HTTP/1.1
Host:127.0.0.3
Connection:close
User-Agent:Evolution/3.28.2
Cache-Control:no-cache
Pragma:no-cache
Accept-Language:en-us, en;q=0.9
Authorization:Basic ABCD
REPLY
HTTP/1.1 404 Not Found (error=The requested URL was not found on this server.)
Date: Sun, 17 Jun 2018 13:40:55 GMT
Connection: close, Upgrade
Upgrade: h2c
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Content-Length: 462
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL was not found on this server.</p><hr><address>Cyrus-HTTP/3.0.7-22-g0e083d796-dirty Cyrus-SASL/2.1.27 OpenSSL/1.0.0 Nghttp2/1.31.1 Zlib/1.2.11 Brotli/1.0.3 LibXML2.9.8 SQLite/3.20.1 LibiCal/3.0 ICU4C/56.1 Jansson/2.10 Server at 127.0.0.3 Port 80</address></body></html>
REQUEST
PUT /dav/calendars/user/someone/Default/49bc5eab9c4647b0bf125c445f24d9a7ae9b19c5.ics HTTP/1.1
Host:127.0.0.3
Connection:close
Content-Length:377
User-Agent:Evolution/3.28.2
Cache-Control:no-cache
Pragma:no-cache
If-None-Match:*
Content-Type:text/calendar; charset="utf-8"
Accept-Language:en-us, en;q=0.9
Authorization:Basic ABCD
BEGIN:VCALENDAR
CALSCALE:GREGORIAN
PRODID:-//Ximian//NONSGML Evolution Calendar//EN
VERSION:2.0
BEGIN:VEVENT
UID:49bc5eab9c4647b0bf125c445f24d9a7ae9b19c5
DTSTAMP:20180617T125733Z
DTSTART:20180617T134000Z
DTEND:20180617T144000Z
SEQUENCE:2
SUMMARY:QWERT
TRANSP:OPAQUE
CLASS:PUBLIC
CREATED:20180617T134055Z
LAST-MODIFIED:20180617T134055Z
END:VEVENT
END:VCALENDAR
RESPONSE
HTTP/1.1 201 Created
Date: Sun, 17 Jun 2018 13:40:57 GMT
Connection: close, Upgrade
Upgrade: h2c
Cache-Control: no-cache
Accept-Patch: text/calendar; charset=utf-8; component=VPATCH; optinfo="PATCH-VERSION:1"
ETag: "f6a5b71cf3429aac014451a3e965748e249dcd0f"
Last-Modified: Sun, 17 Jun 2018 13:40:56 GMT
Content-Length: 0
REQUEST
GET /dav/calendars/user/someone/Default/49bc5eab9c4647b0bf125c445f24d9a7ae9b19c5.ics HTTP/1.1
Host:127.0.0.3
Connection:close
User-Agent:Evolution/3.28.2
Cache-Control:no-cache
Pragma:no-cache
Accept-Language:en-us, en;q=0.9
Authorization:Basic ABCD
RESPONSE
HTTP/1.1 200 OK
Date: Sun, 17 Jun 2018 13:40:57 GMT
Connection: close, Upgrade
Upgrade: h2c
Cache-Control: must-revalidate, no-transform, max-age=3600
Expires: Sun, 17 Jun 2018 14:40:57 GMT
Vary: Accept, Accept-Encoding
Accept-Ranges: bytes
ETag: "f6a5b71cf3429aac014451a3e965748e249dcd0f"
Last-Modified: Sun, 17 Jun 2018 13:40:56 GMT
Content-Type: text/calendar; charset=utf-8
Content-Length: 377
BEGIN:VCALENDAR
CALSCALE:GREGORIAN
PRODID:-//Ximian//NONSGML Evolution Calendar//EN
VERSION:2.0
BEGIN:VEVENT
UID:49bc5eab9c4647b0bf125c445f24d9a7ae9b19c5
DTSTAMP:20180617T125733Z
DTSTART:20180617T134000Z
DTEND:20180617T144000Z
SEQUENCE:2
SUMMARY:QWERT
TRANSP:OPAQUE
CLASS:PUBLIC
CREATED:20180617T134055Z
LAST-MODIFIED:20180617T134055Z
END:VEVENT
END:VCALENDAR
To be precise, I tweaked the http server manually to do some more logs, hoping that I decoded correctly the logs above (as they were quite cryptic and normalizing them was error prone) and the furhter, between the webserver and Evolution there is a HTTP proxy, but I don't think it makes problems.
The event is created on the server and refreshing the source in Evolution displays the event in the latter. The problem is, that Evolution shows error during the creation, but I think nothing is wrong.
-
Is the fact, that PUT returns
201 CREATED, Content-Length: 0
the reason for Evolution to show to the user an error? -
What is the point for the GET before the PUT? If that GET was successfull, but the latter
PUT... If-None-Match:*
fails, it means that between the GET and PUT some other event allocated the URL?