Ich nutze mehrere Calendar Module, die ein durch eine externe webanwendung generiertes ics file importieren.
Leider ist die definition der Zeiten dort so :
DTSTART;TZID=UTC:20221009T094500
DTEND;TZID=UTC:20221009T113000
also in UTC.
Wenn ich "get MyCalendar events format:full" mache werden die Zeiten nicht korrekt umgerechnet,Im Moment löse ich das mit onCreateEvent {$e->{end}= $e->{end}+7200 ;; $e->{start}= $e->{start}+7200 ;; $e->{alarm}= $e->{start}-7200}
Also addiere ich auf den Start und das Ende die 2 Sunden Differenz zwischen UTC und lokaler Sommerzeit (und generiere dann noch unabhängg davon eine Alarmzeit).
Das finde ich nicht elegant weil ich das am 30. Oktober auf 1 Stunde ändern muss und im März zurück.
Geht das eleganter? Habe ich etwas übersehen?
onCreateEvent {
my $nt = time;
my @lt = localtime($nt);
my $offset= _calctz($nt,@lt)*HOURSECONDS;
$e->{alarm}= $e->{start}; # durch das Vorziehen erspart man sich die Subtraktion des vorher zu {start} addierten Offsets ;)
$e->{start}= $e->{start}+$offset;
$e->{end}= $e->{end}+$offset;
}