Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

free-busy-query returns error 500 #697

Open
lbeziaud opened this issue Jun 25, 2017 · 4 comments · May be fixed by sabre-io/dav#974
Open

free-busy-query returns error 500 #697

lbeziaud opened this issue Jun 25, 2017 · 4 comments · May be fixed by sabre-io/dav#974

Comments

@lbeziaud
Copy link

I get error 500 EofException when I try to query free-busy report. Tested on empty and non-empty calendars, and with events in the time-range or not.

REPORT /cal.php/calendars/user/default/ HTTP/1.1

<c:free-busy-query xmlns:c="urn:ietf:params:xml:ns:caldav">
    <c:time-range start="20060104T140000Z" end="20060105T220000Z"/>
</c:free-busy-query>
HTTP/1.1 500

<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
  <s:sabredav-version>3.1.3</s:sabredav-version>
  <s:exception>Sabre\VObject\EofException</s:exception>
  <s:message>End of document reached prematurely</s:message>
</d:error>
@lbeziaud
Copy link
Author

The errors is due to the default timezone for the calendar being an empty string. Switching to UTC if this is the case solves the issue. I have not yet looked into why the timezone is empty.

From ebc59677956614f0f27d65589f41ac943cba524d Mon Sep 17 00:00:00 2001
From: "Louis.Beziaud" <louis.beziaud@ens-rennes.fr>
Date: Sun, 25 Jun 2017 21:15:54 +0200
Subject: [PATCH 1/1] freeBusyQueryReport uses UTC if default timezone for the
 calendar is the empty string instead of return 500 because VObject\Reader
 tries to read it

---
 lib/CalDAV/Plugin.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/CalDAV/Plugin.php b/lib/CalDAV/Plugin.php
index 8bb8012e..27066a48 100644
--- a/lib/CalDAV/Plugin.php
+++ b/lib/CalDAV/Plugin.php
@@ -687,7 +687,7 @@ class Plugin extends DAV\ServerPlugin {
         // times.
         $calendarProps = $this->server->getProperties($uri, [$tzProp]);

-        if (isset($calendarProps[$tzProp])) {
+        if (isset($calendarProps[$tzProp]) && !empty($calendarProps[$tzProp])) {
             $vtimezoneObj = VObject\Reader::read($calendarProps[$tzProp]);
             $calendarTimeZone = $vtimezoneObj->VTIMEZONE->getTimeZone();
             // Destroy circular references so PHP will garbage collect the object.
--
2.11.0

@fr0z3nfyr
Copy link

@lbeziaud I had that already figured out but wouldn't use it because all the events will be in UTC timezone because the test will skip to the else block.

@chdaatson
Copy link

Hi guys,

I've got the same error as above mentioned, even though I'm using UTC on client (thunderbird 60.8.0 lightning 6.2.8) and server side (baikal 0.53 on debian stretch, apache, sqlite). I already did a clean install of thundbird/lightning without any local contacts (only those via carddav from baikal) and only one caldav account (mine). When creating a new schedule in lightning the following error pops up in console (the following is the raw message, I just search/replaced names and mail adresses)

Lightning:CalDAV: send (Originator=mailto:test.user@somedomain.com,Recipient=mailto:test.user@somedomain.com): BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VFREEBUSY
DTSTAMP:20190719T145718Z
ORGANIZER:mailto:test.user@somedomain.com
DTSTART:20190721T220000Z
DTEND:20190806T220000Z
UID:3a5ce255-85c3-423f-9e1c-ade6315582a3
ATTENDEE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL:mail
 to:test.user@somedomain.com
END:VFREEBUSY
END:VCALENDAR
  calDavCalendar.js:2445

POST 
http://192.168.1.3/baikal/html/cal.php/calendars/test.user/outbox/ 
[HTTP/1.1 500 Internal Server Error 20ms]
Lightning:CalDAV: recv: <?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
  <s:sabredav-version>3.2.2</s:sabredav-version>
  <s:exception>Sabre\VObject\EofException</s:exception>
  <s:message>End of document reached prematurely</s:message>
</d:error>
  calDavCalendar.js:2458
Lightning:CalDAV: Received status 500 from freebusy query for Default calendar (test.user)

When trying to add an attendee to the schedule (one from my carddav contacts) I notice that auto completion doesn't work and the following message pops up in console

Lightning:CalDAV: send (Originator=mailto:test.user@somedomain.com,Recipient=mailto:other.user@somedomain.com): BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VFREEBUSY
DTSTAMP:20190719T145856Z
ORGANIZER:mailto:test.user@somedomain.com
DTSTART:20190721T220000Z
DTEND:20190806T220000Z
UID:8525c598-afc0-47d4-ade7-00ed62e96ad4
ATTENDEE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL:mail
 to:other.user@somedomain.com
END:VFREEBUSY
END:VCALENDAR
  calDavCalendar.js:2445

POST 
http://192.168.1.3/baikal/html/cal.php/calendars/test.user/outbox/ 
[HTTP/1.1 200 OK 15ms]
Lightning:CalDAV: recv: <?xml version="1.0" encoding="utf-8"?>
<cal:schedule-response xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:cal="urn:ietf:params:xml:ns:caldav" xmlns:cs="http://calendarserver.org/ns/" xmlns:card="urn:ietf:params:xml:ns:carddav">
  <cal:response>
    <cal:recipient>
      <d:href>mailto:other.user@somedomain.com</d:href>
    </cal:recipient>
    <cal:request-status>3.7;No calendar-home-set property found</cal:request-status>
  </cal:response>
</cal:schedule-response>

Maybe I'am just not able to setup lightning correctly, I doubt that I misconfigured baikal as one has not that much options here. If that's so I would be happy if someone could point me the right direction.

Regards Chris

@lippok
Copy link

lippok commented Oct 7, 2020

I have an issue with my Mas OS Calendar client described in #780 and have analysed it in more detail. In my case it's exactly the same problem as described by @chdaatson in his previous post: The server returns an 3.7;No calendar-home-set property found error for the POST request to the outbox, that is sent by the client.

But I think the problem is different from the one that was originally reported by @lbeziaud here. So I'm not sure if it is suitable to open a new issue.

Has anybody an idea, why the server returns 3.7;No calendar-home-set property found?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants