Garten Eden

#linux #programming #android #online #stuff

Thunderbird mit Google Calendar: Fehler beim Synchronisieren

Aufgrund einiger Änderungen der CalDAV-Synchronisierung von Google Calendar tritt unter der Verwendung von Lightning in Thunderbird evtl. folgender Fehler auf:
CalDAV: Error doing webdav sync: 400

Hintergrund ist, dass CalDAV auf Googles Server gemäß Standard RFC6578 einen gewissen Wert (sync-level) erwartet, der zur Zeit noch nicht von Lightning mitgesendet wird, weswegen die Kalendardatenabfrage scheitert. Während Mozilla an einem Bugfix arbeitet, kann man das Problem manuell lösen.

Workaround

Dieser Fix von Matthew Mecca [:mmecca] entstammt der Diskussion auf Bugzilla zu diesem Fehler.
Man öffne die Datei calDavRequestHandlers.js aus dem Thunderbird-Profil-Ordner (genauer dort in extensions/LIGHTNING-ADDON-KENNUNG/calendar-js/) und füge die markierte Zeile in Zeile 342 ein und lösche Zeile 359.
Beachte, dass die Zeilennummer abweichen kann, je nach Thunderbird-/Lightning-Version (bei mir aktuell TB 24 und Lightning 2.6).

                 let syncToken =     cal.xml.escapeString(this.calendar.mWebdavSyncToken);
                 syncTokenString = "<sync-token>" + syncToken + "</sync-token>";
             }
     
             let queryXml =
               xmlHeader +
               '<sync-collection xmlns="DAV:">' +
                 syncTokenString +
/*EINFUEGEN:*/   '<sync-level>1</sync-level>' +
                 '<prop>' +
                   '<getcontenttype/>' +
                   '<getetag/>' +
                 '</prop>' +
               '</sync-collection>';
     
             let requestUri = this.calendar.makeUri(null, this.baseUri);

             if (this.calendar.verboseLogging()) {
                 cal.LOG("CalDAV: send(" + requestUri.spec + "): " + queryXml);
             }
             cal.LOG("CalDAV: webdav-sync Token: " + this.calendar.mWebdavSyncToken);
             let httpchannel = this.calendar.prepHttpChannel(requestUri,
                                                             queryXml,
                                                             "text/xml; charset=utf-8",
                                                             this.calendar);
/*ENTF:      httpchannel.setRequestHeader("Depth", "1", false); */
             httpchannel.requestMethod = "REPORT";
             // Submit the request
             httpchannel.asyncOpen(this, httpchannel);

Nach einem Neustart des Programms war der Fehler bei mir behoben.

Systemweite Änderung

Für systemweite Änderung muss dieselbe Datei zusätzlich in /usr/lib/thunderbird-addons/ bearbeitet werden.

Update am 01.10.2013 14:30: Auf Bugzilla wurde eine neue Version des Fixes veröffentlicht. Ich habe die Änderungen angepasst. Danke auch an Andreas Becker.

Kommentare

Dein Kommentar:






Bisher...

 
22.10.2013 14:38 Chris sagt:
Super! Hat mir sehr geholfen! Danke!
 
06.10.2013 15:53 dk sagt:
VIELEN DANK!
Das funktioniert wunderbar.
lg
 
03.10.2013 22:19 M.Walter sagt:
DANKE!!!!
Ihr Lösungsweg hat mehrere Tage des Ärgerns beendet ...
 
01.10.2013 14:34 Eduard Dopler sagt:
Mit dem Namespace hast du Recht, danke. Zwischenzeitlich wurde auch eine überarbeitete Version des Fixes auf Bugzilla veröffentlicht, weswegen ich den Artikel angepasst habe.
 
01.10.2013 09:28 Andreas Becker sagt:
Ok, vorherige Nachricht ist obsolete...

Anstatt `1` sollte `1` verwendet werden. Das `D:` wird nicht benötigt, da ein paar Zeilen weiter oben der Namespace bereits angegeben wird: .

Grüße
Andreas Becker
 
01.10.2013 09:16 Andreas Becker sagt:
Leider funktioniert der Fix nicht vollumfänglich. Nach einer Recherche bin ich auf folgenden Thread gestoßen: http://www.thunderbird-mail.de/forum/viewtopic.php?f=47&p=349689 auch hier ist die bisherige Lösung nur über das “Provider für Google Kalender" Addon.

Mist.

de

Moment, lade ältere Artikel...

E-Mail (nicht öffentlich)

Homepage (optional)

Kommentar... (code-Tag erlaubt)