Événement décalé d'une heure à la création dans Thunderbird

Après avoir synchronisé le calendrier dans Thunderbird via CalDAV, les événements sont décalés d’une heure à la création.
E.g. un événement créé pour aujourd’hui à 17h, pour une durée d’une heure, va apparaître de 18h à 19h sur l’agenda.
Ce problème est spécifique au calendrier Bluemind, d’autres calendriers CalDAV ne présentent pas ce défaut.

À la réflexion, vu que la synchronisation ne fonctionne qu’avec les versions récentes de Thunderbird (128.X), je réalise que la synchronisation ne se fait peut-être pas par caldav mais par activesync ? (je ne sais pas comment vérifier, le lien est un lien caldav mais dans ce cas je ne vois pas pourquoi ça ne fonctionne pas avec des version plus anciennes de thunderbird)

Quoi qu’il en soit, le problème de décalage d’une heure perdure, donc je suis toujours preneur de toute proposition pour essayer de le régler.

Bonjour,
Avez-vous pris connaissance de cette section de notre documentation ?

Nous vous conseillons d’utiliser le plugin BlueMind pour Thunderbird : Configuration de Thunderbird | BlueMind doc
Votre scenario d’usage (quel calendrier, créé depuis quelle client, consulté depuis quel client) n’est pas clair.
Vous pouvez aussi exporter le calendrier depuis l’agenda Web et consulter l’événement pour vérifier le fuseau horaire dans lequel il est créé ou consulté :
Importer et exporter un calendrier | BlueMind doc

Pierre

bonjour @pierrec et merci pour votre réponse.

Nous vous conseillons d’utiliser le plugin BlueMind pour Thunderbird

Malheureusement cette solution n’est pas satisfaisante en ce qui me concerne : je dois gérer beaucoup de calendriers en parallèles et j’ai donc besoin d’une intégration native car gérer un calendrier dans un onglet spécifique rajoute beaucoup de friction.

J’ai effectivement vu la doc mais comme des posts déjà anciens sur le forum (e.g. celui-ci) mentionnaient un bon support DAV, je n’étais pas sûr qu’elle soit à jour.

Bonjour,
Ce qui est expliqué dans la documentation, c’est que nous supportons le caldav du monde Mac. Mais il est tellement permissif qu’il est difficile de supporter tous les usages.

Vous n’avez pas précisé, mais vous utilisez donc Lightning ? Vérifiez vos TimeZones. Si le message est bien pris en compte, c’est Lightning qui ne doit pas être sur le bon fuseau horaire.

Pour votre cas particulier, si vous pensez qu’on a un bug, fournissez nous un reproduceur : l’ics créé au départ, l’eml reçu par BlueMind, l’analyse de l’ics à l’intérieur avec sa timezone et le contenu (l’ics) de l’événement dans Ligthing.

Concernant l’agenda BM de notre plugin TBird, il me paraît bien adapté à l’usage de nombreux calendriers justement. Nous avons des vues, des filtres, des recherches…
Cordialement,
Pierre

@pierrec Merci pour votre aide et ces précisions !

Vous n’avez pas précisé, mais vous utilisez donc Lightning ?

Je ne savais pas que l’agenda Thunderbird était encore appelé comme ça, je pensais que Lightning était le nom du vieux plugin et qu’il n’existait plus depuis longtemps.
Quelque soit son nom, en tout cas, j’utilise l’outil de gestion de calendrier natif de Thunderbird, comme mentionné dans le 1er post.

Vérifiez vos TimeZones. Si le message est bien pris en compte, c’est Lightning qui ne doit pas être sur le bon fuseau horaire.

A priori il n’y a dans Thunderbird qu’un seul paramètre pour le fuseau horaire, j’ai testé “système” et de le définir manuellement sur le fuseau Europe/Paris et ça ne semble rien changer.
S’il y a une autre configuration à changer, je ne sais pas où elle est (et je n’ai pas vu d’autres options, même dans about:config).

EDIT : je confirme d’ailleurs qu’au moment de la création de l’événement dans Thunderbird, le fuseau horaire est bien “Europe/Paris”

Pour votre cas particulier, si vous pensez qu’on a un bug, fournissez nous un reproduceur : l’ics créé au départ, l’eml reçu par BlueMind, l’analyse de l’ics à l’intérieur avec sa timezone et le contenu (l’ics) de l’événement dans Ligthing.

Je n’étais pas sûr de la procédure à suivre, donc j’ai utilisé une invitation à moi-même pour récupérer l’ICS.
La timezone de l’ICS est bien mauvaise. En ce qui concerne l’EML, je ne sais pas ce qui est sensible ou non, est-ce qu’il y a une information spécifique qui vous intéresse ?

BEGIN:VCALENDAR
PRODID:-//BlueMind//BlueMind Calendar//FR
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:Europe/Dublin
TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Dublin
X-LIC-LOCATION:Europe/Dublin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
TZNAME:IST
DTSTART:19700329T010000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
TZNAME:GMT
DTSTART:19701025T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20250711T135521Z
UID:59af45cd-4adf-44ff-a628-32bc6d272556
DTSTART;TZID=Europe/Dublin:20250714T160000
SUMMARY:test
VERSION:2.0
DTEND;TZID=Europe/Dublin:20250714T170000
TRANSP:OPAQUE
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MOZ-LASTACK:20250711T135521Z
X-MICROSOFT-DISALLOW-COUNTER:false
END:VEVENT
END:VCALENDAR

Concernant l’agenda BM de notre plugin TBird, il me paraît bien adapté à l’usage de nombreux calendriers justement. Nous avons des vues, des filtres, des recherches…

Ma formulation n’était peut-être pas claire : je ne gère pas que des calendrier Bluemind, les autres sont des CalDAV provenant d’autres sources, donc j’ai besoin de pouvoir tout gérer (en lecture et écriture) sur une seule interface. Si c’est possible avec l’agenda BM et que j’ai raté l’information, je suis preneur.

Bonjour,
En effet, notre agenda Web ne peut pas écrire sur un agenda externe via le protocole Caldav. Il peut juste l’afficher via un import ICS.
Si c’est Thunderbird qui génère un événement sur le mauvais fuseau horaire, c’est de ce coté là qu’il faut chercher. Si c’est sur le fuseau Dublin, on affiche avec -1, c’est normal.

Si c’est Thunderbird qui génère un événement sur le mauvais fuseau horaire, c’est de ce coté là qu’il faut chercher.

Thunderbird est sur le bon fuseau horaire et génère les évènements à la bonne heure avec les (nombreux) autres calendriers, ce qui me fait douter que le problème vienne de là.
Est-ce qu’il y a quelque chose que je pourrais regarder pour essayer d’isoler plus précisément où se trouve le problème ?

Bonjour,
Il faudrait l’ICS créé par Thunderbird alors. Sa version reçue par BlueMind et (par exemple) par Google.

Il faudrait l’ICS créé par Thunderbird alors. Sa version reçue par BlueMind et (par exemple) par Google.

Est-ce que vous pourriez m’indiquer la procédure à suivre pour vous fournir ces données ?
Pour autant que je sache, les données que je vous ai envoyées dans le post précédent contiennent l’ICS tel qu’il a été créé par Thunderbird car c’est l’ICS que j’ai reçu par mail en créant l’événement via le gestionnaire de calendrier de Thunderbird, en me mettant moi-même dans les invités.

Bonjour, je reviens aux nouvelles concernant ce problème, pourriez-vous m’indiquer quelles données vous manquent par rapport à ce que je vous ai fourni ici et comment les obtenir ?

Pour info, j’ai testé avec Evolution qui ne semble pas souffrir du bug donc j’ai ouvert un ticket sur Bugzilla : 1990610 - Thunderbird uses wrong timezone upon event creation with my CalDAV provider (Bluemind)

J’ai découvert que Thunderbird avait également un outil pour les développeurs qui fournit les requêtes, donc voici le payload du PUT envoyé par Thunderbird :


BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Europe/Paris
X-TZINFO:Europe/Paris[2025b]
BEGIN:STANDARD
TZOFFSETTO:+000000
TZOFFSETFROM:+000921
TZNAME:Europe/Paris(STD)
DTSTART:19110311T000000
RDATE:19110311T000000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19160614T230000
RDATE:19160614T230000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+000000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(STD)
DTSTART:19161002T000000
RDATE:19161002T000000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19170324T230000
RDATE:19170324T230000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+000000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(STD)
DTSTART:19171008T000000
RDATE:19171008T000000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19180309T230000
RDATE:19180309T230000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19190301T230000
RDATE:19190301T230000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+000000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(STD)
DTSTART:19181007T000000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1MO;UNTIL=19191006T000000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19200214T230000
RDATE:19200214T230000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+000000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(STD)
DTSTART:19201024T000000
RDATE:19201024T000000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19210314T230000
RDATE:19210314T230000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+000000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(STD)
DTSTART:19211026T000000
RDATE:19211026T000000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19220325T230000
RDATE:19220325T230000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+000000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(STD)
DTSTART:19221008T000000
RDATE:19221008T000000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19230526T230000
RDATE:19230526T230000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19240329T230000
RDATE:19240329T230000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19250404T230000
RDATE:19250404T230000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19260417T230000
RDATE:19260417T230000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19270409T230000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=2SA;UNTIL=19280414T230000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19290420T230000
RDATE:19290420T230000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19300412T230000
RDATE:19300412T230000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19310418T230000
RDATE:19310418T230000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19320402T230000
RDATE:19320402T230000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+000000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(STD)
DTSTART:19231007T000000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU;UNTIL=19321002T000000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19330325T230000
RDATE:19330325T230000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+000000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(STD)
DTSTART:19331008T000000
RDATE:19331008T000000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19340407T230000
RDATE:19340407T230000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19350330T230000
RDATE:19350330T230000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19360418T230000
RDATE:19360418T230000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19370403T230000
RDATE:19370403T230000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19380326T230000
RDATE:19380326T230000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+000000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(STD)
DTSTART:19341007T000000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=1SU;UNTIL=19381002T000000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19390415T230000
RDATE:19390415T230000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+000000
TZNAME:Europe/Paris(DST)
DTSTART:19400225T020000
RDATE:19400225T020000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+000000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(STD)
DTSTART:19391119T000000
RDATE:19391119T000000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(DST)
DTSTART:19400614T230000
RDATE:19400614T230000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Paris(STD)
DTSTART:19421102T030000
RDATE:19421102T030000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(DST)
DTSTART:19430329T020000
RDATE:19430329T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(DST)
DTSTART:19440403T020000
RDATE:19440403T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+020000
TZNAME:Europe/Paris(DST)
DTSTART:19440825T000000
RDATE:19440825T000000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Paris(DST)
DTSTART:19441008T010000
RDATE:19441008T010000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Paris(STD)
DTSTART:19431004T030000
RDATE:19431004T030000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(DST)
DTSTART:19450402T020000
RDATE:19450402T020000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Paris(STD)
DTSTART:19450916T030000
RDATE:19450916T030000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(DST)
DTSTART:19760328T010000
RDATE:19760328T010000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Paris(STD)
DTSTART:19760926T010000
RDATE:19760926T010000
END:STANDARD
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Paris(STD)
DTSTART:19770925T030000
RDATE:19770925T030000
END:STANDARD
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Paris(STD)
DTSTART:19781001T030000
RDATE:19781001T030000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(DST)
DTSTART:19770403T020000
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU;UNTIL=19800406T020000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Paris(STD)
DTSTART:19790930T030000
RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU;UNTIL=19950924T030000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:Europe/Paris(DST)
DTSTART:19810329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU;UNTIL=19960331T020000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:Europe/Paris(STD)
DTSTART:19961027T030000
RDATE:19961027T030000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETTO:+020000
TZOFFSETFROM:+010000
TZNAME:(DST)
DTSTART:19970330T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETTO:+010000
TZOFFSETFROM:+020000
TZNAME:(STD)
DTSTART:19971026T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20251016T072116Z
LAST-MODIFIED:20251016T072128Z
DTSTAMP:20251016T072128Z
UID:7d43fdaa-575f-45d7-a0eb-2371c79013ed
SUMMARY:test
DTSTART;TZID=Europe/Paris:20251017T100000
DTEND;TZID=Europe/Paris:20251017T110000
TRANSP:OPAQUE
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER:-PT15M
DESCRIPTION:Description par défaut Mozilla
END:VALARM
END:VEVENT
END:VCALENDAR