bloodstix
Goto Top

PHP - PUT-Request an Nextcloud-Davical-Kalender

Hallo zusammen,

wir haben einen neuen Kalender-Server und ich muss die Anbindung an unser Ticketsystem
überarbeiten.

Ich erhalte leider folgenden Response wenn ich es wie bei unserem vorherigen DaviCal mache:
<?xml version="1.0" encoding="utf-8"?> 
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns"> 
  <s:exception>Sabre\DAV\Exception\UnsupportedMediaType</s:exception>
  <s:message>This resource only supports valid iCalendar 2.0 data. Parse error: Invalid Mimedir file. Line starting at 35 did not follow iCalendar/vCard conventions</s:message>
</d:error>

Hier mal die anonymisierten Daten die wir zum Server senden, also die ics-Datei:
BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Europe/Berlin
X-LIC-LOCATION:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
METHOD:PUBLISH
BEGIN:VEVENT
DTSTART:20200708T090000
DTEND:20200708T092000
LOCATION:
TRANSP: OPAQUE
SEQUENCE:0
UID:6CE80C4C-B686-7AB3-64B7-5BCA7E6587FC
DTSTAMP:20200707T152848Z
SUMMARY:Testtermin
ORGANIZER;RSVP=TRUE;CN=Anonymous;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:anon@ymous.com
ATTENDEE;RSVP=TRUE;CN=Anonymous;PARTSTAT=ACCEPTED;ROLE=REQ-PARTICIPANT;SCHEDULE-STATUS=3.8:mailto:anon@ymous.com
DESCRIPTION:Ein bisschen Text als Beschreibung.

Termin an Ort XYZ
Möglicherweise folgen noch weitere Einträge...
PRIORITY:1
CLASS:PUBLIC
BEGIN:VALARM
TRIGGER:-PT60M
REPEAT:2
DURATION:PT20M
ACTION:DISPLAY
End:VALARM
End:VEVENT
End:VCALENDAR

Jemand ne Idee was ich übersehe? :D Sehe grad glaub ich den Wald vor lauter Bäumen nicht.

Grüße
bloody

Content-ID: 585434

Url: https://administrator.de/contentid/585434

Ausgedruckt am: 21.11.2024 um 21:11 Uhr

144705
Lösung 144705 07.07.2020 aktualisiert um 15:49:12 Uhr
Goto Top
Line starting at 35 did not follow iCalendar/vCard conventions
Naja, die Fehlermeldung gibt dir ja schon den Hinweis. Deine iCal Datei hält sich nicht an die RFCs

Erstens die Leerzeile, dann schau mal auf Seite 46 der RFC zu Multiline-Text in der Property:
https://tools.ietf.org/html/rfc5545#section-3.3.11

Example:  A multiple line value of:

       Project XYZ Final Review
       Conference Room - 3B
       Come Prepared.

      would be represented as:

       Project XYZ Final Review\nConference Room - 3B\nCome Prepared.

Und noch mehr Fehler/Probleme mit der Formatierung:
https://icalendar.org/validator.html

Ergebnis
Results

    File Size: 46 lines, 1063 bytes
    Number of events found: 1
    Number of timezones found: 1

Problem! Found 3 warnings
Warnings

    Blank line detected, specification does not address the use of blank lines near line # 34
    Line length should not be longer than 75 characters near line # 31Reference: RFC 5545 3.1. Content Lines
    Line length should not be longer than 75 characters near line # 32Reference: RFC 5545 3.1. Content Lines

Problem! Found 3 errors
Errors

    Missing required PRODID property near line # 1Reference: RFC 5545 3.6. Calendar Components
    Missing DESCRIPTION property in VALARM near line # 39Reference: RFC 5545 3.6.6. Alarm Component
    Invalid TRANSP value, must be OPAQUE or TRANSPARENT near line # 22Reference: 3.8.2.7. Time Transparency
bloodstix
bloodstix 07.07.2020 um 15:50:38 Uhr
Goto Top
Hi latavia,

den Validator kannte ich noch gar nicht. Danke dir.
Dann werd ich das mal fixen face-smile.
DaviCal hat das bisher komischerweise nicht gestört.

Grüße
bloody
144705
144705 07.07.2020 aktualisiert um 15:55:55 Uhr
Goto Top
Zitat von @bloodstix:
DaviCal hat das bisher komischerweise nicht gestört.
Manche halten sich eben strikt an RFCs andere nicht face-smile.
bloodstix
bloodstix 07.07.2020 um 18:41:39 Uhr
Goto Top
Dem ist wohl so. Haben leider oft sync Probleme mit DaviCal deshalb testen wir nun was neues.
Ich habe die Hoffnung, dass diese Lösung sauberer läuft, weil die sich eben an RFC halten.
144705
144705 07.07.2020 aktualisiert um 19:14:16 Uhr
Goto Top
Zitat von @bloodstix:

Dem ist wohl so. Haben leider oft sync Probleme mit DaviCal deshalb testen wir nun was neues.
Ich habe die Hoffnung, dass diese Lösung sauberer läuft, weil die sich eben an RFC halten.
Ich nutze Radicale, bisher läuft das sehr gut.
bloodstix
bloodstix 07.07.2020 um 20:28:20 Uhr
Goto Top
Steht leider nicht zur Debatte, nutzen Nextcloud und dort ist nunmal SabreDAV als Backend tätig face-smile
Aber danke für den Tipp.
bloodstix
bloodstix 08.07.2020 um 09:42:25 Uhr
Goto Top
Soo,
habs hinbekommen. Ein Wordwrap bei 75 Zeichen und anfügen von \\n alleine hat nicht geholfen.
In der neuen Zeile, wenns da aus der vorherigen noch weiter geht, muss das erste Zeichen ein Leerzeichen sein.
Am Schluss erhielt ich dann noch die Meldung "Error in validating the event. An iCalender event MUST NOT have a METHOD property".
Find ich schon krass das der DaviCal das alles so schluckt und SabreDAV da einem vor die Füße kotzt :D ...und die letzten "Probleme"
hat leider nichtmal mehr der Validator angemerkt. Der sagte "top alles perfekt!", fand SabreDAV nicht.

Grüße
bloody