Exportação ICS de calendário/evento: hora incorreta (+1 h) ao importar no Outlook com TZID=Europe/Berlin

Investiguei o problema com mais detalhes e abri um PR para tratá-lo:

O problema está na exportação ICS, e não no fuso horário do servidor/contêiner. O evento exportado usa um TZID da IANA, como Europe/Berlin, mas atualmente não inclui a definição correspondente de VTIMEZONE que clientes como o Outlook precisam para interpretar as regras de horário de verão de forma confiável.

O PR adiciona definições de VTIMEZONE aos downloads ICS com suporte a fuso horário, mantendo os valores locais existentes de DTSTART/DTEND.

No exemplo deste tópico, a exportação agora inclui as observações de CET/CEST para Europe/Berlin, de modo que:

DTSTART;TZID=Europe/Berlin:20260811T170000

pode ser interpretado com o correto deslocamento de verão UTC+2, em vez de o Outlook recorrer ao UTC+1.

Também adicionei cobertura para regras de horário de verão da Europa e da América do Norte, um caso de deslocamento fixo e as transições sazonais mais incomuns usadas por Africa/Casablanca.

1 curtida