1. Startseite
  2. Nachrichten
  3. Herunterladen
    1. Thunderbird Release-Version
    2. Thunderbird 128 ESR
    3. Thunderbird 115 ESR
    4. Thunderbird Beta-Version
    5. Sprachpaket (Benutzeroberfläche)
    6. Wörterbücher (Rechtschreibprüfung)
  4. Hilfe & Lexikon
    1. Anleitungen zu Thunderbird
    2. Fragen & Antworten (FAQ) zu Thunderbird
    3. Hilfe zu dieser Webseite
  5. Forum
    1. Unerledigte Themen
    2. Letzte Beiträge
    3. Themen der letzten 24 Stunden
  • Anmelden
  • Registrieren
  • 
  • Suche
Alles
  • Alles
  • Forum
  • Lexikon
  • Artikel
  • Seiten
  • Erweiterte Suche
  1. Thunderbird Mail DE
  2. tom996

Beiträge von tom996

  • Kalenderimport hängt

    • tom996
    • 12. März 2021 um 20:20

    "Provider für DalDav und CardDav"

    Hallo !

    Zitat von akoerber

    Was GMX/T-Online mit meinem Problem zu tun haben, weiß ich nicht. Ich synchronisiere mit einer privaten NAS.

    Wie wollen Sie bei vier Softwarekomponenten überprüfen, wo der Fehler ist ?

    1.) Anlegen , wenn nicht schon vorhanden GMX-Account.

    2.) Import der der *.ics-Dateien. Dort könnte man dann sehen, ob der Kalender bei GMX auch damit Probleme hat und vielleicht auch welche.

    3.) Freigabe des Kalenders und einbinden in Thunderbird als caldav, ohne die Provider.

    https://hilfe.gmx.net/kalender/synch…hunderbird.html.

    4.)Einbinden von Android mit dem mit dem Caldav-Server von GMX.

    Bekommen Sie Punkt 2 nicht hin liegt es an der *.ics-Datei Zuviele Wiederholungstermine ?,zuviele Alarme ?

    Zu 3. Ich habe den Kalender über CalDav mit TB 78.8 eingebunden ohne Provider.

    4.) Wenn Ihr Android-Client, wieder dieses Verhalten zeigt. Liegt es am Client ansonsten am Kalender auf dem NAS

    Gruß

    tom996

  • Kalenderimport hängt

    • tom996
    • 8. März 2021 um 19:35

    Hallo akoerber !

    Zitat von akoerber

    Ich habe daher unter TB die Kalender exportiert in eine *.ics-Datei,

    Ich habe da Verständnisschwierigkeiten:

    Zitat von akoerber

    Probeweise wollte ich zuvor die gerade exportierten ics-Dateien in einen neuen

    Eine Datei oder Dateien ?

    Wenn eine Datei: Wie ist die denn entstanden beim Export von Kalendern ?

    Wie groß sind denn die *.ics Dateien ?

    Es gibt einen Online-Dienst der ics-Dateien validiert ( bis 512kB) :

    Validator

    Bei GMX/T-online gibt es die Möglichkeit bei Mailacconts in dem Kalender

    ics-Dateien zu importieren.

    Gruß

    tom996

  • Thunderbird hängt sich beim Start auf (neues Testprofil funktioniert)

    • tom996
    • 18. Februar 2021 um 23:35

    Hallo erst einmal !

    Im Zuge einer Disaster Recovery einer local.sqlite (Thunderbird läßt sich nur noch abschießen)

    Sind bei mir einige SQL-Skripte entstanden, um mit den Daten in der local.sqlite zu arbeiten:

    "Normale Zeitanzeige"

    Die Zeiten in der local.sqlite werden als Mikrosekunden vom 01.01.1970 00.00 Uhr in der jeweiligen Zeitzone gespeichert.

    SQL
    SELECT cal_id,id, datetime(round(time_created/1000000),'unixepoch') FROM cal_events
    WHERE id IN (SELECT id FROM cal_events WHERE cal_events.title LIKE 'Bioabfall');

    So sieht eine Beispielausagbe von Zeiten aus der Tabelle cal_events

    Code
    d5ae769c-7624-4a65-8f90-c1ba5e69b7a2    01eda322-86e0-47f7-979a-45cfc595cd51    2021-02-17 15:30:50
    d5ae769c-7624-4a65-8f90-c1ba5e69b7a2    07201874-e644-4e46-ac2d-526421623cfc    2021-02-17 15:30:50

    Kalender trennen /zusammen führen

    In diesem Zusammenhang ist die cal_id von Bedeutung.

    Wie komme ich an sie ?

    In der pref.js wird der Zusammenhang zwischen cal_id und Kalendernamen hergestellt.

    Code
    calendar.registry.d5ae769c-7624-4a65-8f90-c1ba5e69b7a2.cache.enabled", false);
    user_pref("calendar.registry.d5ae769c-7624-4a65-8f90-c1ba5e69b7a2.calendar-main-in-composite", true);
    user_pref("calendar.registry.d5ae769c-7624-4a65-8f90-c1ba5e69b7a2.color", "#804000");
    user_pref("calendar.registry.d5ae769c-7624-4a65-8f90-c1ba5e69b7a2.disabled", false);
    user_pref("calendar.registry.d5ae769c-7624-4a65-8f90-c1ba5e69b7a2.imip.identity.key", "");
    user_pref("calendar.registry.d5ae769c-7624-4a65-8f90-c1ba5e69b7a2.name", "Müllabfuhr");
    user_pref("calendar.registry.d5ae769c-7624-4a65-8f90-c1ba5e69b7a2.readOnly", false);
    user_pref("calendar.registry.d5ae769c-7624-4a65-8f90-c1ba5e69b7a2.suppressAlarms", false);
    user_pref("calendar.registry.d5ae769c-7624-4a65-8f90-c1ba5e69b7a2.type", "storage");
    user_pref("calendar.registry.d5ae769c-7624-4a65-8f90-c1ba5e69b7a2.uri", "moz-storage-calendar://");
    Code
    d5ae769c-7624-4a65-8f90-c1ba5e69b7a2.name", "Müllabfuhr");
               cal_id                            Kalendername

    Warum sollte man das machen ? zb. um die Termine im neuen Kalender als *.ics zuexportieren

    Alle Termine mit dem Titel "Bioabfall" werden in den "Müllabfuhr"-Kalender überführt.

    SQL
    UPDATE cal_alarms
    SET cal_id ='d5ae769c-7624-4a65-8f90-c1ba5e69b7a2'
    WHERE item_id IN (SELECT id FROM cal_events WHERE cal_events.title LIKE 'Bioabfall');
    UPDATE cal_attachments
    SET cal_id ='d5ae769c-7624-4a65-8f90-c1ba5e69b7a2'
    WHERE item_id IN (SELECT id FROM cal_events WHERE cal_events.title LIKE 'Bioabfall');
    UPDATE cal_attendees
    SET cal_id ='d5ae769c-7624-4a65-8f90-c1ba5e69b7a2'
    WHERE item_id IN (SELECT id FROM cal_events WHERE cal_events.title LIKE 'Bioabfall');
    UPDATE cal_metadata
    SET cal_id ='d5ae769c-7624-4a65-8f90-c1ba5e69b7a2'
    WHERE item_id IN (SELECT id FROM cal_events WHERE cal_events.title LIKE 'Bioabfall');
    UPDATE cal_properties
    SET cal_id ='d5ae769c-7624-4a65-8f90-c1ba5e69b7a2'
    WHERE item_id IN (SELECT id FROM cal_events WHERE cal_events.title LIKE 'Bioabfall');
    UPDATE cal_recurrence
    SET cal_id ='d5ae769c-7624-4a65-8f90-c1ba5e69b7a2'
    WHERE item_id IN (SELECT id FROM cal_events WHERE cal_events.title LIKE 'Bioabfall');
    UPDATE cal_relations
    SET cal_id ='d5ae769c-7624-4a65-8f90-c1ba5e69b7a2'
    WHERE item_id IN (SELECT id FROM cal_events WHERE cal_events.title LIKE 'Bioabfall');
    UPDATE cal_events
    SET cal_id ='d5ae769c-7624-4a65-8f90-c1ba5e69b7a2'
    WHERE id IN (SELECT id FROM cal_events WHERE cal_events.title LIKE 'Bioabfall');
    Alles anzeigen

    Beim Schreiben dieser Zeilen ist mir eingefallen mal in die Sourcen zu schauen (sind 2,8 GB) grep sei DANK !

    Hier ist die Frage nach den Flags aufgeworfen worden:

    Code
    // Storage flags. These are used in the Database |flags| column to give
    // information about the item's features. For example, if the item has
    // attachments, the HAS_ATTACHMENTS flag is added to the flags column.
    var CAL_ITEM_FLAG = {
      PRIVATE: 1,
      HAS_ATTENDEES: 2,
      HAS_PROPERTIES: 4,
      EVENT_ALLDAY: 8,
      HAS_RECURRENCE: 16,
      HAS_EXCEPTIONS: 32,
      HAS_ATTACHMENTS: 64,
      HAS_RELATIONS: 128,
      HAS_ALARMS: 256,
      RECURRENCE_ID_ALLDAY: 512,
    };
    Alles anzeigen

    Das ergibt nochmal ganz Abfragemöglichkeiten !

    Das Verzeichnis thunderbird-78.7.1/comm/calendar ist nur 7,2 MB groß.

    grep Aufrufe der Form

    Code
     grep -rn  -A 3 -B 3 "INSERT" * ODER  grep -rn  -A 3 -B 3 "SELECT" *  ODER  grep -rn  -A 3 -B 3 "UPDATE" *

    sind sehr interressant.

    Desweiteren ist ein SQL-Skript entstanden um Wiederholungstermine zu kopieren:

    Code
    ATTACH "C:\Users\tom\Kalender\Kalender\Rettung.sqlite" AS rettung; 
    INSERT INTO rettung.cal_alarms
    SELECT cal_alarms.cal_id,cal_alarms.item_id,cal_alarms.recurrence_id,cal_alarms.recurrence_id_tz,cal_alarms.icalString
    from cal_events 
    INNER JOIN cal_recurrence ON cal_events.id = cal_recurrence.item_id
    INNER JOIN cal_alarms ON cal_events.id = cal_alarms.item_id
    WHERE cal_recurrence.icalString IS NOT NULL
    group by cal_events.id;
    
    INSERT INTO rettung.cal_attachments
    SELECT cal_attachments.item_id,cal_attachments.cal_id,cal_attachments.recurrence_id,
    cal_attachments.recurrence_id_tz,cal_attachments.icalString
    from cal_events 
    INNER JOIN cal_recurrence ON cal_events.id = cal_recurrence.item_id
    INNER JOIN cal_attachments ON cal_events.id = cal_attachments.item_id
    WHERE cal_recurrence.icalString IS NOT NULL
    group by cal_events.id;
    
    INSERT INTO rettung.cal_attendees
    SELECT cal_attendees.item_id,cal_attendees.recurrence_id,cal_attendees.recurrence_id_tz,cal_attendees.cal_id,cal_attendees.icalString
    from cal_events 
    INNER JOIN cal_recurrence ON cal_events.id = cal_recurrence.item_id
    INNER JOIN cal_attendees ON cal_events.id = cal_attendees.item_id
    WHERE cal_recurrence.icalString IS NOT NULL
    group by cal_events.id;
    
    INSERT INTO rettung.cal_events
    SELECT cal_events.cal_id,cal_events.id,cal_events.time_created,cal_events.last_modified,cal_events.title,cal_events.priority,cal_events.privacy,cal_events.ical_status,cal_events.flags,
    cal_events.event_start,cal_events.event_end,cal_events.event_stamp,cal_events.event_start_tz,cal_events.event_end_tz,cal_events.recurrence_id,cal_events.recurrence_id_tz,cal_events.alarm_last_ack,
    cal_events.offline_journal
     
    from cal_events 
    INNER JOIN cal_recurrence ON cal_events.id = cal_recurrence.item_id
    WHERE cal_recurrence.icalString IS NOT NULL
    group by cal_events.id;
    
    INSERT INTO rettung.cal_metadata
    SELECT cal_metadata.cal_id,cal_metadata.item_id,cal_metadata.value
    from cal_events 
    INNER JOIN cal_recurrence ON cal_events.id = cal_recurrence.item_id
    INNER JOIN cal_metadata ON cal_events.id = cal_metadata.item_id
    WHERE cal_recurrence.icalString IS NOT NULL
    group by cal_events.id;
    
    INSERT INTO rettung.cal_properties
    SELECT cal_properties.item_id,cal_properties.key,cal_properties.value,cal_properties.recurrence_id,
    cal_properties.recurrence_id_tz,cal_properties.cal_id
    from cal_events 
    INNER JOIN cal_recurrence ON cal_events.id = cal_recurrence.item_id
    INNER JOIN cal_properties ON cal_events.id = cal_properties.item_id
    WHERE cal_recurrence.icalString IS NOT NULL
    group by cal_events.id;
    
    INSERT INTO rettung.cal_recurrence
    SELECT cal_recurrence.item_id,cal_recurrence.cal_id,cal_recurrence.icalString
    from cal_events 
    INNER JOIN cal_recurrence ON cal_events.id = cal_recurrence.item_id
    WHERE cal_recurrence.icalString IS NOT NULL
    group by cal_events.id;
    
    INSERT INTO rettung.cal_relations
    SELECT cal_relations.cal_id,cal_relations.item_id,cal_relations.recurrence_id,cal_relations.recurrence_id_tz,
        cal_relations.icalString 
     from cal_events 
    INNER JOIN cal_recurrence ON cal_events.id = cal_recurrence.item_id
    INNER JOIN cal_relations ON cal_events.id = cal_relations.item_id
    WHERE cal_recurrence.icalString IS NOT NULL
    group by cal_events.id;
    
    INSERT INTO rettung.cal_todos
    SELECT cal_todos.cal_id,cal_todos.id,cal_todos.time_created,cal_todos.last_modified,cal_todos.title,
    cal_todos.priority,cal_todos.privacy,cal_todos.ical_status,cal_todos.flags,cal_todos.todo_entry,cal_todos.todo_due,
    cal_todos.todo_completed,cal_todos.todo_complete,cal_todos.todo_entry_tz,cal_todos.todo_due_tz,
    cal_todos.todo_completed_tz,cal_todos.recurrence_id,cal_todos.recurrence_id_tz,cal_todos.alarm_last_ack,
    cal_todos.todo_stamp,cal_todos.offline_journal 
    from cal_events 
    INNER JOIN cal_recurrence ON cal_events.id = cal_recurrence.item_id
    INNER JOIN cal_todos ON cal_events.id = cal_todos.id
    WHERE cal_recurrence.icalString IS NOT NULL
    group by cal_events.id;
    DETACH DATABASE 'rettung';
    Alles anzeigen

    Die Abfrage aus den Quellen sieht so aus

    Code
      this.mSelectEventsWithRecurrence = this.mDB.createAsyncStatement(
    providers/storage/CalStorageCalendar.jsm:1131:        "SELECT * FROM cal_events " +
    providers/storage/CalStorageCalendar.jsm-1132-          " WHERE flags & 16 == 16 " +
    providers/storage/CalStorageCalendar.jsm-1133-          "   AND cal_id = :cal_id AND recurrence_id is NULL"
    providers/storage/CalStorageCalendar.jsm-1134-      );

    Die Wiederholungstermine müssen kopiert werden, weil die einzelnen Instanzen des Termin nicht in der DB stehen.

    Dann habe ich noch ein SQL-Skript, dass Einzeltermine im Intervall exportiert:

    Code

    Das Intervall befindet sich in der WHERE-Klausel:

    In diesem Fall : Event_Start 1.März 2021 Event_start 1 APRIL

    Gruss
    thomas


    Dateien

    Export_event_start_VON_BIS_Einzeltermine .sql.txt 4,96 kB – 347 Downloads
  • Hilfreichste Antworten

Aktuelle Programmversion

  • Thunderbird 139.0.2 veröffentlicht

    Thunder 11. Juni 2025 um 17:31

Aktuelle ESR-Version

  • Thunderbird 128.11.1 ESR veröffentlicht

    Thunder 11. Juni 2025 um 17:27

Keine Werbung

Hier wird auf Werbeanzeigen verzichtet. Vielleicht geben Sie dem Website-Betreiber (Alexander Ihrig - aka "Thunder") stattdessen etwas aus, um diese Seiten auf Dauer finanzieren zu können. Vielen Dank!

Vielen Dank für die Unterstützung!

Kaffee ausgeben für:

Per Paypal unterstützen*

*Weiterleitung zu PayPal.Me

Thunderbird Mail DE
  1. Impressum & Kontakt
  2. Datenschutzerklärung
    1. Einsatz von Cookies
  3. Nutzungsbedingungen
  4. Spendenaufruf für Thunderbird
Hilfe zu dieser Webseite
  • Übersicht der Hilfe zur Webseite
  • Die Suchfunktion benutzen
  • Foren-Benutzerkonto - Erstellen (Neu registrieren)
  • Foren-Thema erstellen und bearbeiten
  • Passwort vergessen - neues Passwort festlegen
Copyright © 2003-2025 Thunderbird Mail DE

Sie befinden sich NICHT auf einer offiziellen Seite der Mozilla Foundation. Mozilla®, mozilla.org®, Firefox®, Thunderbird™, Bugzilla™, Sunbird®, XUL™ und das Thunderbird-Logo sind (neben anderen) eingetragene Markenzeichen der Mozilla Foundation.

Community-Software: WoltLab Suite™