VTIMEZONE in iCalendar - Format Part 1
Tatsächlich stammt das erste Dokument dazu aus dem Jahr 1998, einer Zeit in der man Bandbreite noch in KB gemessen hat und sich dementsprechend kurz fassen musste.
Für den Austausch von Termin- und Kalenderdaten sind die Festlegungen nach wie vor auch im Jahr 2021 überwiegend Standard.
Im Teil 1 meiner iCalendar Beschreibungen gehe ich auf das Objekt VTIMEZONE ein, das grundlegende Zeitzonen Definitionen enthält und in einer iCalendar Datei vorkommen kann (aber nicht muss):
BEGIN:VTIMEZONE
TZID:Europe/Berlin
TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Berlin
X-LIC-LOCATION:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
TZID
Ist die eindeutige Identifikation der Zeitzone und die Referenz, wenn z.B. in einem VEVENT Objekt eine Zeitzone angegeben wird, mit TZID.
BEGIN:DAYLIGHT...END:DAYLIGHT
Beschreibt die Sommerzeit Festlegung der Zeitzone
BEGIN:STANDARD...END:STANDARD
Beschreibt die Festlegung der Zeitzone auf die Standardzeit, wichtigtste Info ist eigentlich: TZOFFSETTO = +0100 (ausgehend von UTC)
TZOFFSETFROM und TZOFFSETTO
Zeitverschiebung, die im Rahmen der Umstellung auf die Sommerzeit bzw. Standardzeit - ausgehend von der UTC - stattfindet.
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
Übersetzt heißt das: Die Umstellung erfolgt jährlich im 3. Monat (März), am letzten (-1) Sonntag (SU) des Monats.
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
Die Sommerzeit endet somit im 10. Monat, also Oktober jeden Jahres, ebenfalls am letzten Sonntag des Monats.
Spec:
RFC5545