Thunderbird Kalender Rettung

Ralfs Thunderbird Kalender hatte von einem Tag auf den anderen alle Termine vergessen und egal was wir hier versuchten – ich konnte diese nicht mehr herstellen. Dazu kam, dass Thunderbird obendrein auch alle Spracheinstellungen ignorierte. Also kopierten wir zuerst das Profil weg

mv .thunderbird .thunderbird_bak

und starteten Thunderbird neu. Plötzlich sprach er wieder Deutsch und auch der Kalender funktionierte. Der Fehler schien demnach irgendwo im Profilverzeichnis versteckt zu sein …. leider war aber nicht heraus zu finden, wo genau.

Mir erschien es an diesem Punkt einfacher zu sein, Thunderbird neu einzurichten statt viel Zeit in Reparaturversuche zu stecken. Wir beendeten also TB und aktivierten das alte Profil wieder

rm -r .thunderbird

mv .thunderbird_bak .thunderbird

und installierten einen lokalen Mailserver

sudo apt-get install dovecot-postfix

Der lokale Mailserver wurde in TB als neues E-Mail Konto eingerichtet (benutzername@localhost) und In diesen lokalen Mailserver schoben wir dann auch alle Mails aus TB. Die Mails waren damit vor unseren weiteren Spielchen mit TB sicher.

Die gesammelten Adressen hätten wir an dieser Stelle ebenfalls exportieren sollen … was aber leider vergessen wurde. Ralf hat das – denke ich – inzwischen auch schon gemerkt 🙁

TB wurde beendet und sein Profilverzeichnis wieder nach .thunderbird_bak geschoben.

Im nächsten Schritt wurde TB dann erneut neu gestartet. Im Kalender wurde ein einzelner Termin eingetragen, um diesen zu initialisieren. Dann wurde TB wieder beendet.

Aus dem alten Profilverzeichnis

~/.thunderbird_bak/xyz-und-so.default/calendar-data/

wurde dann die local.sqlite in den neuen Profilordner unter

~/.thunderbird/xyz-und-so.default/calendar-data/

kopiert. Die durch die Termineintragung (s.o.) im neuen Profilordner vorzufindende local.sqlite muss hierbei überschrieben werden.

Leider waren wir jetzt nicht am Ende angelangt – denn: Die local.sqlite enthält zwar die eigentlichen Kalenderdaten, aber leider nur in Bezug auf eine bestimmte Kalender-ID. In unserem Fall auf die Kalender-ID aus dem alten Profilordner, so dass diese ID im nächsten Schritt noch geändert werden musste. Das geht mit dem Programm sqlitebrowser recht einfach, den man sich wie folgt an Bord holt:

sudo apt-get install sqlitebrowser

Die für den nächsten Schritt benötigte ID des neuen Kalenders besorgt man sich aus der Datei prefs.js im aktuellen .thunderbird Profilpfad. Diese sieht ungefähr so aus:

calid

Mit dem sqlitebrowser wurde die ~/.thunderbird/xyz-und-so.default/calendar-data/local.sqlite geöffnet und die folgenden SQL Befehle im Tab „Execute SQL“ ersetzten dann die ID des Kalenders in der local.sqlite

update cal_attendees set cal_id=’ID des Kalenders‘;

update cal_events set cal_id=’ID des Kalenders‘;

update cal_properties set cal_id=’ID des Kalenders‘;

update cal_recurrence set cal_id=’ID des Kalenders‘;

Thunderbird wurde dann wieder gestartet … und siehe da: Zwar waren die Zuordnungen zu bestimmten lokalen Kalendern verschwunden, aber wenigstens die Termine selbst waren alle wieder da.