ownCloud: Kalender-Synchronisation mit Thunderbird/Lightning schlägt fehl

Own­Cloud ist ja eigent­lich eine tolle Sache. Mit­un­ter häuft sich bei mir aber das Pro­blem, dass der Kalen­der-Sync mit Thun­der­bird (bzw. Light­ning) oder das Expor­tie­ren als *.ics fehl­schlägt: Fire­fox meldet Datei nicht gefun­den“, Thun­der­bird meldet Fehler CalDAV: Error: got status 500 fet­ching calen­dar data“.

Android und das own­Cloud-Web­in­ter­face zeigen keine Pro­bleme. Im Fol­gen­den ein schnel­ler Lösungs­an­satz:

Pro­blem­lö­sung

Feh­ler­ur­sa­che ist ein defek­ter Kalen­der­ein­trag. Mit direk­tem Zugriff auf die MySQL-Daten­bank lässt sich der Lümmel direkt iden­ti­fi­zie­ren. Man wähle zuerst die betrof­fene Daten­bank mit USE meine_datenbank und iden­ti­fi­ziere dann den Übel­tä­ter mit

SELECT * FROM oc_clndr_objects WHERE calendardata NOT LIKE '%END:VCALENDAR%';

Das Ergeb­nis sieht etwa wie folgt aus:

mysql> SELECT * FROM oc_clndr_objects WHERE calendardata NOT LIKE '%END:VCALENDAR%';
+-----+------------+------------+---------------------+---------------------+-----------+-------------+--------------------------------------------+----------------+--------------+
| id  | calendarid | objecttype | startdate           | enddate             | repeating | summary     | calendardata                               | uri            | lastmodified |
+-----+------------+------------+---------------------+---------------------+-----------+-------------+--------------------------------------------+----------------+--------------+
| 485 |          4 | VEVENT     | 2015-08-14 15:00:00 | 2015-08-14 15:30:00 |         0 | Mein Termin | BEGIN:VCALENDAR                            | 77b1ee9a-….ics |1436337089    |
|     |            |            |                     |                     |           |             | VERSION:2.0                                |                |              |
|     |            |            |                     |                     |           |             | PRODID:-//dmfs.org//mimedir.icalendar//EN  |                |              |
|     |            |            |                     |                     |           |             | 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                              |                |              |
|     |            |            |                     |                     |           |             | BEGIN:VEVENT                               |                |              |
|     |            |            |                     |                     |           |             | DTSTART;TZID=Europe/Berlin:20150814T170003 |                |              |
|     |            |            |                     |                     |           |             | SUMMARY:Mein Termin                        |                |              |
|     |            |            |                     |                     |           |             | LOCATION:                                  |                |              |
+-----+------------+------------+---------------------+---------------------+-----------+-------------+-------------------------------------------------------------+--------------+
1 row in set (0.01 sec)

Der ein­fachste Weg ist nun, die betrof­fe­nen Kalen­der­ein­träge zu löschen und ggf. neu anzu­le­gen. Das Löschen geht ein­fach per:

DELETE FROM oc_clndr_objects WHERE calendardata NOT LIKE '%END:VCALENDAR%';

Was die eigent­li­che Ursa­che ist, kann ich leider nicht sagen — viel­leicht ist die Android-App zur Syn­chro­ni­sa­tion Schuld (ich benutze übri­gens CalDAV-Sync, aber so genau konnte ich den Bug noch nicht ein­krei­sen.

Gemel­det ist er übri­gens im Bug­tra­cker schon mehr­fach, dort habe ich auch obige Lösung Sym­ptom­be­kämp­fung gefun­den.