Mit iCalendar hat jeder die Mög­lich­keit, seine Termine aus un­ter­schied­lichs­ten Pro­gram­men in einem Format zu­sam­men­zu­füh­ren. Diese können dann im genormten Format als Dateien verwaltet und verändert werden. Da es sich um einen globalen Standard handelt, kann nahezu jede Person mit den Dateien umgehen.

Profi-Website in Sekunden dank KI.
  • Profi-Website in Sekunden dank KI
  • Aus tausenden Vorlagen auswählen
  • 30 Tage kostenlos testen

iCalendar: De­fi­ni­ti­on und Erklärung des Da­ten­aus­tausch­for­mats

iCalendar ist ein Kalender-Aus­tausch­for­mat zum Ver­brei­ten von Ka­len­der­ein­hei­ten, das in RFC 5545 genormt ist. Damit ist es möglich, Termine aus un­ter­schied­li­chen An­wen­dun­gen auf PC und Smart­phone in einem Kalender zu bündeln, von dort aus zu verwalten und zu teilen. Das Format basiert auf dem bereits 1998 er­stell­ten vCalendar. Mit dem iCal-Format ist es also möglich, ganz praktisch alle Termine aus un­ter­schied­li­chen Ka­len­der­funk­tio­nen in einem über­sicht­li­chen Format in Echtzeit zu verwalten und zu teilen.

Tipp

Die Angaben innerhalb einer iCalendar-Datei be­schrän­ken sich nicht aus­schließ­lich auf reine Da­tums­an­ga­ben. Auch To-do-Listen oder Meetings lassen sich mit dem Format or­ga­ni­sie­ren.

Was ist iCal?

Je nach Be­triebs­sys­tem haben die iCalendar-Dateien eine andere Abkürzung und nicht wenige Menschen fragen sich bei einer Anfrage, was ical, ics oder iFBF ist? Es handelt sich dabei immer um Da­tei­endun­gen von iCalendar: .ics, .ifb, .ical und .ifbf be­zeich­nen zwar immer Dateien im iCal-Format, haben aber gewisse Un­ter­schie­de.

  • ical: Na­mens­er­wei­te­rung für macOS
  • ics: Da­tei­na­mens­er­wei­te­rung für alle anderen Be­triebs­sys­te­me
  • ifbf: Enthält In­for­ma­tio­nen, ob man frei oder be­schäf­tigt ist (für macOS)
  • ifb: Enthält In­for­ma­tio­nen, ob man frei oder be­schäf­tigt ist (alle anderen Be­triebs­sys­te­me)

Wenn Sie einen Ter­min­ein­trag versenden wollen, müssen Sie zum Speichern und Versenden den Dateityp des iCalendar-Formats auswählen. Eine .ics-Datei zu erstellen, ist oft die beste Wahl, da der .ics-Datei-Aufbau bzw. das Format mit den meisten Be­triebs­sys­te­men kom­pa­ti­bel ist. Öffnet die emp­fan­gen­de Person die Datei, kann sie danach selbst ent­schei­den, ob sie den er­hal­te­nen Termin annimmt oder nicht.

Fakt

Bei iCalendar-Dateien handelt es sich prin­zi­pi­ell um einfache Text­da­tei­en, was den Austausch unter un­ter­schied­li­chen Systemen er­leich­tert.

Die Vorteile von iCalendar

iCalendar ist nicht auf den Austausch von Dateien be­schränkt. Das Format hinter den iCalendar-Terminen ist eng mit dem E-Mail-Standard verbunden; es folgt darum der Mul­ti­pur­po­se Internet Mail Extension (MIME) und speziell dem Typ „text/calendar“. Dank dieser offenen Ge­stal­tung lassen sich Ka­len­der­ein­trä­ge in diesem Format nahezu überall plat­zie­ren und so sogar auf Webseiten einbinden. Ver­an­stal­tun­gen lassen sich damit teilen oder wichtige Termine ver­öf­fent­li­chen. Zusammen mit WebDAV-Servern, die zur Be­reit­stel­lung von Dateien über das Internet verwendet werden, können Termine jederzeit ab­ge­gli­chen werden.

Weiterhin bietet das Format die Option, dass Termine direkt über Bluetooth oder ein per­sön­li­ches Netzwerk zwischen mobilen End­ge­rä­ten aus­ge­tauscht werden können. Sollte man also bei einem Ge­schäfts­mee­ting den nächsten Termin festlegen wollen, kann man diesen Eintrag einfach an alle An­we­sen­den über­mit­teln. Zudem bietet iCalendar die Mög­lich­keit, alle ge­spei­cher­ten In­for­ma­tio­nen in mehreren An­wen­dun­gen zu nutzen, die durch das Format in Echtzeit syn­chro­ni­siert werden.

Das iCalendar-Format wird von den gängigen Ka­len­der­pro­gram­men ak­zep­tiert, die die web­ba­sier­ten Daten aus dem Kalender einbinden:

  • Google Kalender
  • Android Kalender
  • Microsoft Outlook
  • Black­ber­ry Kalender
  • macOS/iOS Kalender

Was bedeutet die Nor­mie­rung durch RFC 5545

RFC 5545 legt fest, wie Ka­len­der­in­for­ma­tio­nen struk­tu­riert und codiert werden müssen, damit sie von un­ter­schied­li­chen An­wen­dun­gen korrekt gelesen und ver­ar­bei­tet werden können.

Zentral ist dabei die ein­heit­li­che Da­ten­struk­tur auf Basis so­ge­nann­ter Ka­len­der­kom­po­nen­ten wie VEVENT, VTODO, VJOURNAL oder VTIMEZONE. Jede dieser Kom­po­nen­ten folgt einem klar de­fi­nier­ten Aufbau mit Pflicht- und op­tio­na­len Feldern, die bestimmte Ei­gen­schaf­ten wie Beginn, Ende, Ort oder Be­schrei­bung eines Termins enthalten.

Darüber hinaus regelt RFC 5545 auch folgende Ei­gen­schaf­ten:

  • die Syntax (UTF-8-Text­for­mat, Zei­len­län­ge, Zei­len­um­brü­che)
  • Datums- und Zeit­for­ma­te (inklusive Zeit­zo­nen­an­ga­ben)
  • die Kodierung wie­der­keh­ren­der Er­eig­nis­se, z. B. durch die RRULE-Ei­gen­schaft.

Dadurch wird si­cher­ge­stellt, dass eine einmal erstellte .ics-Datei un­ab­hän­gig vom ver­wen­de­ten Programm oder Be­triebs­sys­tem gleich in­ter­pre­tiert werden kann.

iCal erstellen: So funk­tio­niert‘s

Von der Theorie in die Praxis. Einen Termin zu erstellen, funk­tio­niert wie folgt:

  1. Zunächst öffnen Sie ein neues Dokument in einem Text­edi­tor Ihrer Wahl. Mit der richtigen App geht das auch auf einem Smart­phone.
  2. Die Datei wird nun mit dem gängigen iCalendar-Schema befüllt, das wir Ihnen im nächsten Schritt genauer erläutern.
  3. Nach dem korrekten Ausfüllen des Dokuments folgt der Export im iCal-Format. Dazu muss die Datei mit dem Kürzel „.ics“ ge­spei­chert werden.
  4. Öffnen Sie ein Ka­len­der­pro­gramm Ihrer Wahl und im­por­tie­ren Sie die .ics-Datei als Termin. Dazu reicht ein Klick auf den ent­spre­chen­den Menüpunkt, und schon wird der Termin au­to­ma­tisch aus dem Ver­zeich­nis hoch­ge­la­den.
  5. Der Termin findet sich nun als Eintrag in Ihrem Kalender.

Damit die Wei­ter­ga­be von Daten richtig funk­tio­niert und der Empfänger bzw. die Emp­fän­ge­rin den Termin in den eigenen Kalender im­por­tie­ren kann, müssen Sie die In­for­ma­tio­nen in einem vor­ge­ge­be­nen Format über­mit­teln. Dabei hat jede Zeile eine ent­spre­chen­de Bedeutung:

iCal-Zeile Bedeutung
BEGIN:VCALENDAR Damit wird jede iCalendar-Datei eröffnet.
VERSION Angegeben wird hier die Version des Formats, aktuell „2.0“.
PRODID Hier wird der Name oder die Adresse der er­stel­len­den Person bzw. der ver­wen­de­ten Anwendung ein­ge­tra­gen.
METHOD Zeigt die Über­mitt­lungs­art an: Mit PUBLISH erscheint ein Eintrag sofort, während man den Termin mit REQUEST in eine Anfrage verpackt
BEGIN:VEVENT Diese Zeile markiert den Beginn des Bereichs, der die re­le­van­ten Daten des Termins enthält.
UID Jede .ics-Datei und damit jeder Ka­len­der­ein­trag benötigt einen un­ver­wech­sel­ba­ren Unique Iden­ti­fier.
LOCATION An dieser Stelle nennt man den Ver­an­stal­tungs­ort, wobei man selbst ent­schei­den kann, wie genau.
SUMMARY Der Eintrag ver­mit­telt eine kurze Zu­sam­men­fas­sung zum Termin.
DESCRIPTION An dieser Stelle erfolgt eine aus­führ­li­che Be­schrei­bung, die nur zu sehen ist, wenn der Ter­min­ein­trag geöffnet wird.
CLASS Hier ent­schei­det sich, ob der Termin öf­fent­lich (PUBLIC) oder privat (PRIVATE) ge­spei­chert werden soll.
DTSTART Gibt den Start­zeit­punkt des Termins an.
DTEND Gibt an, bis wann der Termin ein­ge­plant ist.
DTSTAMP Der Zeit­stem­pel enthält die In­for­ma­ti­on, wann der Ka­len­der­ein­trag erstellt wurde.
END:VEVENT Die vorletzte Zeile beendet den Bereich mit Ter­min­in­for­ma­tio­nen.
END:VCALENDAR Schließt die Datei ab.

Auch die Zeit­an­ga­ben folgen einem nor­mier­ten Format:

  • Die ersten vier Ziffern ent­spre­chen dem Jahr (YYYY): 2019
  • Die nächsten zwei dem Monat (MM): 201910
  • Die letzten beiden de­fi­nie­ren den Tag (DD): 20191027
  • Mit dem Buch­sta­ben T trennen Sie Datum von Uhrzeit ab: 20191027T

Die Uhrzeit wiederum besteht aus 6 Zahlen:

  • zwei für die Stunde: 20191027T15
  • zwei für die Minute: 20191027T1559
  • zwei für die Sekunde: 20191027T155954
  • Mit einem Z wird die Da­tums­ein­ga­be ge­schlos­sen: 20191027T155954Z

Im folgenden Beispiel sind alle Zeilen ent­spre­chend aus­ge­füllt.

BEGIN:VCALENDAR
VERSION:2.0
PRODID:Cal_App//Daily@Planet
METHOD:PUBLISH
BEGIN:VEVENT
UID:123456789@example.com
LOCATION:Metropolis
SUMMARY:Meeting
DESCRIPTION:Kick-off Meeting
CLASS:PUBLIC
DTSTART:20191101T100000Z
DTEND: 20191101T120000Z
DTSTAMP: 20191027T155954Z
END:VEVENT
END:VCALENDAR
txt

Jede Emp­fän­ge­rin und jeder Empfänger des Termins kann nun mit dem Öffnen der Datei den Termin in seinen Kalender eintragen lassen und erhält so alle re­le­van­ten In­for­ma­tio­nen, von der Art des Termins bis hin zu Start- und End­zeit­punkt, ganz au­to­ma­tisch. Damit sorgt das iCalendar-Format vor allem im Be­rufs­le­ben für eine echte Zeit­er­spar­nis.

iCalendar ins Frontend einbinden

Anstatt eine .ics-Datei zu erstellen, können Sie Nut­ze­rin­nen und Nutzer über spezielle URLs direkt zu einem Online-Kalender-Anbieter wie Google Kalender, Outlook.com oder Yahoo Kalender wei­ter­lei­ten. Diese Links öffnen ein neues „Event hin­zu­fü­gen“-Fenster im Browser des je­wei­li­gen Dienstes, schon vor­aus­ge­füllt mit den Infos zu Titel, Ort, Be­schrei­bung, Start-/Endzeit.

<a href="https://calendar.google.com/calendar/render?action=TEMPLATE
&text=Release%20Meeting
&details=Status-Update%20%26%20Milestones
&location=Remote%20(Google%20Meet)
&dates=20251010T080000Z/20251010T090000Z
&ctz=Europe/Berlin"
target="_blank" rel="noopener">
In Google Kalender eintragen
</a>
html

.ics-Dateien per Code ge­ne­rie­ren

Im Folgenden finden Sie pra­xis­na­he Code­bei­spie­le, die zeigen, wie sich .ics-Dateien mit wenigen Zeilen Code erzeugen lassen. Alle Beispiele erzeugen einen Termin „Release-Meeting“ am 15.10.2025, 10:00–11:00 Europe/Berlin mit korrekten Zei­len­en­den (CRLF) und einfachem Escaping.

PHP-Beispiel

Im folgenden PHP-Beispiel wird zuerst die Hilfs­funk­ti­on (ics_escape) definiert. Diese Funktion sorgt dafür, dass Son­der­zei­chen wie Kommas, Se­mi­ko­lons, Back­slas­hes oder Zei­len­um­brü­che richtig „maskiert“ werden. An­schlie­ßend wird der Aufbau der .ics-Datei in einem Array definiert. Jede Zeile steht dabei für ein be­stimm­tes Attribut des Ka­len­der­ein­trags, etwa den Titel SUMMARY, die Be­schrei­bung DESCRIPTION oder den Zeitraum DTSTART, DTEND. implode("\r\n", [...]) fügt die einzelnen Zeilen zu einem Textblock zusammen.

Danach folgen zwei header()-Befehle, die den Browser darüber in­for­mie­ren, wie die Datei behandelt werden soll:

  • Content-Type: text/calendar; charset=utf-8 gibt an, dass es sich um eine Ka­len­der­da­tei im iCalendar-Format handelt.
  • Content-Disposition: attachment; filename="event.ics" weist den Browser an, die Datei nicht einfach im Fenster an­zu­zei­gen, sondern au­to­ma­tisch als Download mit dem an­ge­ge­be­nen Namen zu speichern.

Zum Schluss wird mit echo $ics der fertig zu­sam­men­ge­setz­te Text aus­ge­ge­ben. Sobald das PHP-Skript (z. B. event.php) im Browser auf­ge­ru­fen wird, startet der Download der Datei event.ics – diese kann dann sofort in Outlook, Google Calendar oder Apple Calendar im­por­tiert werden.

function ics_escape($s) {
    return str_replace(
        ["\\",    ";",    ",",    "\n"],
        ["\\\\","\\;", "\\,", "\\n"],
        $s
    );
}
$ics = implode("\r\n", [
    "BEGIN:VCALENDAR",
    "PRODID:-//example.com//ics-php//DE",
    "VERSION:2.0",
    "CALSCALE:GREGORIAN",
    "METHOD:PUBLISH",
    "BEGIN:VEVENT",
    "UID:event-123@example.com",
    "DTSTAMP:20251010T080000Z",
    "DTSTART;TZID=Europe/Berlin:20251015T100000",
    "DTEND;TZID=Europe/Berlin:20251015T110000",
    "SUMMARY:" . ics_escape("Release-Meeting"),
    "DESCRIPTION:" . ics_escape("Status-Update &amp; Milestones"),
    "LOCATION:" . ics_escape("Remote (Google Meet)),
    "END:VEVENT",
    "END:VCALENDAR",
    ""
]);
header('Content-Type: text/calendar; charset=utf-8);                // Teilt dem Browser mit: „Das ist eine .ics-Datei“
header('Content-Disposition: attachment; filename="event.ics"'); // Löst Download aus
echo $ics; // Sendet den Text an den Browser
php

Python-Beispiel

Auch hier stellt die Funktion ics_escape() sicher, dass Son­der­zei­chen wie Kommas, Se­mi­ko­lons oder Zei­len­um­brü­che korrekt maskiert werden. Mit datetime.now(timezone.utc) wird au­to­ma­tisch ein aktueller Zeit­stem­pel (DTSTAMP) im UTC-Format erstellt. Die einzelnen Zeilen des Termins wie Titel (SUMMARY), werden an­schlie­ßend mit "\r\n".join([...]) zu einem Textblock verbunden. Die CRLF-Zei­len­um­brü­che (\r\n) sind weiterhin Pflicht im ICS-Format.

Der Befehl Path("event-python.ics").write_text(ics, encoding="utf-8", newline="") schreibt den Inhalt schließ­lich als UTF-8-Datei ins aktuelle Ver­zeich­nis. Nach dem Ausführen des Skripts liegt die fertige Datei event-python.ics bereit und kann sofort in Outlook, Google Calendar oder Apple Calendar im­por­tiert werden.

from datetime import datetime, timezone
from pathlib import Path
def ics_escape(s: str) -> str:
    return s.replace("\\", "\\\\").replace(";", "\\;").replace(",", "\\,").replace("\n", "\\n")
ics = "\r\n".join([
    "BEGIN:VCALENDAR",
    "PRODID:-//example.com//ics-python//DE",
    "VERSION:2.0",
    "CALSCALE:GREGORIAN",
    "METHOD:PUBLISH",
    "BEGIN:VEVENT",
    "UID:event-123@example.com",
    f"DTSTAMP:{datetime.now(timezone.utc):%Y%m%dT%H%M%SZ}",
    "DTSTART;TZID=Europe/Berlin:20251015T100000",
    "DTEND;TZID=Europe/Berlin:20251015T110000",
    f"SUMMARY:{ics_escape('Release-Meeting)}",
    f"DESCRIPTION:{ics_escape('Status-Update &amp; Milestones)}",
    f"LOCATION:{ics_escape('Remote (Google Meet))}",
    "END:VEVENT",
    "END:VCALENDAR",
    ""
])
Path("event-python.ics").write_text(ics, encoding="utf-8", newline="")
print("geschrieben: event-python.ics")
python

Ja­va­Script-Beispiel

Der nach­fol­gen­de Ja­va­Script-Code erzeugt den Ka­len­der­in­halt direkt im Browser. Zuerst wird der iCalendar-Text in der Variablen ics zu­sam­men­ge­stellt. Die Funktion icsEscape() sorgt erneut dafür, dass Son­der­zei­chen wie Kommas oder Zei­len­um­brü­che korrekt maskiert werden. Mit Blob() wird aus dem Text eine virtuelle Datei im Speicher erstellt. URL.createObjectURL() erzeugt daraus eine temporäre Download-URL, die der Browser wie eine echte Datei behandelt.

Ein un­sicht­ba­res <a>-Element mit dem Attribut download wird dynamisch erzeugt und durch a.click() au­to­ma­tisch ausgelöst – so startet der Download der Datei event-browser.ics, ohne dass eine Ser­ver­ver­bin­dung nötig ist.

<button id="dl">.ics herunterladen</button>
<script>
function icsEscape(s){return s.replace(/\\/g,"\\\\").replace(/;/g,"\\;").replace(/,/g,"\\,").replace(/\n/g,"\\n");}
const ics = [
    "BEGIN:VCALENDAR",
    "PRODID:-//example.com//ics-browser//DE",
    "VERSION:2.0",
    "CALSCALE:GREGORIAN",
    "METHOD:PUBLISH",
    "BEGIN:VEVENT",
    "UID:event-123@example.com",
    "DTSTAMP:20251010T080000Z",
    "DTSTART;TZID=Europe/Berlin:20251015T100000",
    "DTEND;TZID=Europe/Berlin:20251015T110000",
    "SUMMARY:" + icsEscape("Release-Meeting"),
    "DESCRIPTION:" + icsEscape("Status-Update &amp; Milestones"),
    "LOCATION:" + icsEscape("Remote (Google Meet)),
    "END:VEVENT",
    "END:VCALENDAR",
    ""
].join("\r\n");
document.getElementById("dl").addEventListener("click", () =&gt; {
    const blob = new Blob([ics], { type: "text/calendar;charset=utf-8" }); // Dateiobjekt erzeugen
    const url = URL.createObjectURL(blob); // Temporäre Download-URL
    const a = document.createElement("a");
    a.href = url;
    a.download = "event-browser.ics"; // Downloadname
    document.body.appendChild(a);
    a.click(); // Startet Download
    a.remove();
    URL.revokeObjectURL(url); // Aufräumen
});
</script>
ja­va­script

Node.js-Beispiel

Dieser Code startet einen kleinen Express-Webserver, der eine .ics-Datei direkt über den Browser be­reit­stellt. Wenn jemand http://localhost:3000/event.ics aufruft, wird im app.get(...)-Handler der iCalendar-Text erzeugt und an den Client gesendet.

Die Funktion icsEscape() sorgt wie in den anderen Bei­spie­len dafür, dass Son­der­zei­chen korrekt maskiert werden. Mit res.setHeader("Content-Type", "text/calendar; charset=utf-8") teilt der Server dem Browser mit, dass es sich um eine Ka­len­der­da­tei handelt. Der Header Cache-Control: public, max-age=300 erlaubt es Clients, die Datei für 5 Minuten zwi­schen­zu­spei­chern.

res.send(ics) sendet schließ­lich die fertige Datei direkt an den Browser, der sie au­to­ma­tisch her­un­ter­lädt oder mit der Kalender-App öffnet. Der Server läuft an­schlie­ßend lokal unter http://localhost:3000/event.ics.

import express from "express";
const app = express();
function icsEscape(s){
    return s.replace(/\\/g,"\\\\").replace(/;/g,"\\;").replace(/,/g,"\\,").replace(/\n/g,"\\n");
}
app.get("/event.ics", (req, res) =&gt; {
    const ics = [
        "BEGIN:VCALENDAR",
        "PRODID:-//example.com//ics-node//DE",
        "VERSION:2.0",
        "CALSCALE:GREGORIAN",
        "METHOD:PUBLISH",
        "BEGIN:VEVENT",
        "UID:event-123@example.com",
        "DTSTAMP:20251010T080000Z",
        "DTSTART;TZID=Europe/Berlin:20251015T100000",
        "DTEND;TZID=Europe/Berlin:20251015T110000",
        "SUMMARY:" + icsEscape("Release-Meeting"),
        "DESCRIPTION:" + icsEscape("Status-Update &amp; Milestones"),
        "LOCATION:" + icsEscape("Remote (Google Meet)),
        "END:VEVENT",
        "END:VCALENDAR",
        ""
    ].join("\r\n");
    res.setHeader("Content-Type", "text/calendar; charset=utf-8"); // Browser erkennt MIME-Typ
    res.setHeader("Cache-Control", "public, max-age=300");                    // Caching (5 Minuten)
    res.send(ics); // Antwort senden
});
app.listen(3000, () =&gt; console.log("http://localhost/event.ics"));
ja­va­script

.ics-Dateien in un­ter­schied­li­chen Kalender-Clients

Auch wenn iCalendar ein offener Standard ist, in­ter­pre­tiert jede Ka­len­der­an­wen­dung .ics-Dateien auf ihre eigene Weise. Je nach System gibt es Un­ter­schie­de darin, wie Termine im­por­tiert, syn­chro­ni­siert und ak­tua­li­siert werden.

Google Kalender

In Google Kalender können Nut­ze­rin­nen und Nutzer .ics-Dateien entweder manuell im­por­tie­ren oder einen Kalender-Feed per URL abon­nie­ren.

Beim Import werden die ent­hal­te­nen Termine einmalig in den gewählten Kalender über­nom­men. Än­de­run­gen, die Sie später an der Datei auf Ihrem Server vornehmen, werden nicht au­to­ma­tisch über­nom­men. Google behandelt diese Variante also wie eine Mo­ment­auf­nah­me.

Etwas anders funk­tio­niert das Abon­ne­ment per URL, das nur in der Web­ver­si­on von Google Kalender verfügbar ist. Hier wählt man „Weitere Kalender“ -> „Per URL hin­zu­fü­gen“ und gibt die In­ter­net­adres­se einer .ics-Datei ein, zum Beispiel https://example.com/calendar.ics. Google ruft diese Datei dann re­gel­mä­ßig, meist alle 12 bis 24 Stunden, ab und ak­tua­li­siert die Termine au­to­ma­tisch, sofern sich etwas geändert hat. Wichtig ist dabei, dass Google keine webcal://-Links ak­zep­tiert. Wenn Sie auf Ihrer Website einen Abo-Link anbieten möchten, sollten Sie also statt­des­sen die HTTPS-Version der URL verlinken.

Apple Kalender

Apple Kalender un­ter­stützt das iCalendar-Format (.ics) besonders umfassend und kom­for­ta­bel. Wenn Nutzer und Nut­ze­rin­nen eine .ics-Datei her­un­ter­la­den oder per Mail öffnen, erkennt das System sie au­to­ma­tisch und fragt, in welchen Kalender die Termine im­por­tiert werden sollen. Auch hier handelt es sich zunächst um einen Einmal-Import, der später nicht au­to­ma­tisch ak­tua­li­siert wird.

Viel mächtiger ist al­ler­dings die Abo-Funktion, die Apple über das Schema webcal:// direkt un­ter­stützt. Wenn Sie auf Ihrer Website also einen Link wie webcal://example.com/calendar.ics anbieten, öffnet sich bei einem Klick darauf au­to­ma­tisch der Kalender-Dialog mit der Frage, ob der Kalender abonniert werden soll. Ein solcher abon­nier­ter Kalender wird an­schlie­ßend au­to­ma­tisch syn­chro­ni­siert – stan­dard­mä­ßig alle paar Stunden. Än­de­run­gen an be­stehen­den Terminen (gleiche UID, neuer DTSTAMP) werden korrekt über­nom­men, gelöschte Einträge ver­schwin­den nach der nächsten Ak­tua­li­sie­rung.

Outlook

Auch Microsoft Outlook kann .ics-Dateien sowohl einmalig im­por­tie­ren als auch abon­nie­ren. Wird eine .ics-Datei per Dop­pel­klick geöffnet oder manuell im­por­tiert, fügt Outlook die ent­hal­te­nen Termine einfach dem gewählten Kalender hinzu. Diese Termine sind dann statisch – spätere Än­de­run­gen auf dem Server wirken sich nicht aus.

Beim Abon­ne­ment verhält sich Outlook ähnlich wie Apple Kalender: Nut­ze­rin­nen und Nutzer können unter „Kalender öffnen“ -> „Aus dem Internet“ die URL des Feeds eingeben (etwa https://example.com/calendar.ics oder auch webcal://...). Outlook abonniert diesen Kalender und syn­chro­ni­siert ihn au­to­ma­tisch in re­gel­mä­ßi­gen Abständen. Das Intervall liegt meist zwischen 30 Minuten und 3 Stunden, kann aber auch länger dauern.

Outlook.com (also die Web­ver­si­on) funk­tio­niert technisch ähnlich, ist aber bei Ak­tua­li­sie­run­gen teilweise noch langsamer als die Desktop-App.

Zum Hauptmenü