softmixx background

iCalendar Spezifikation

Projekte, Full Stack Development

VTIMEZONE in iCalendar - Format Part 1

[ 19.04.2021 | Alex]
Wer sich schon mal mit dem iCalendar Format, meist in Form einer .ics oder iCal Datei (Apple) beschäftigen musste, fragt sich vermutlich genauso wie ich, vor wie vielen Jahrzehnten diese Spezifikation - RFC 2445 und revised RFC 5545 - festgelegt wurde.

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