ICS-Kalender anzeigen

Fügen Sie eine .ics-Datei ein oder wählen Sie eine aus, dann Kalender analysieren drücken: Einträge, Kalendereigenschaften und alle gefundenen Probleme bleiben auf der Seite und lassen sich als JSON kopieren oder laden.

Läuft lokal in deinem Browser
·
Kalenderquelle
Events and tasks

Eine Kalenderdatei lesen, ohne sie hochzuladen

Fügen Sie eine .ics-Datei in das Feld ein oder wählen Sie eine von der Festplatte — bis 5 MB, die Größe steht neben dem Dateinamen — und drücken Sie Kalender analysieren. Der Kalender wird im Tab gelesen, es wird also nichts gesendet; für den JSON-Export gilt dasselbe. Die Übersicht nennt Kalender, PRODID und Version und zählt Termine, Aufgaben und gefundene Probleme; jeder Eintrag erscheint darunter als Karte mit Datum, Ort, RRULE und Beschreibung.

Die Datei muss iCalendar nur nahekommen. Zuerst werden Zeilenumbrüche zusammengezogen, eine Fortsetzungszeile mit Leerzeichen oder Tabulator gehört also zur Zeile darüber; Eigenschaftsnamen dürfen klein geschrieben sein; CN="Doe; John" behält das Semikolon im zitierten Parameter; und \, \; \n sowie \\ werden vor der Anzeige aufgelöst. Eine Zeile, die sich nicht in Eigenschaft und Wert trennen lässt, wird mit ihrer Nummer gemeldet, statt die ganze Datei abzubrechen.

  1. Kalendertext einfügen oder eine lokale .ics-Datei auswählen — Ablagefläche und Dateifeld laden den Text in das Eingabefeld.
  2. Kalender analysieren drücken. Termine und Aufgaben werden gezählt, als Karten gezeichnet und in das Ergebnis geschrieben.
  3. Die Zeile Probleme lesen: fehlendes UID, DTSTART oder SUMMARY, ein DTEND vor dem DTSTART, ein nicht lesbares Datum, ein END ohne BEGIN und nicht trennbare Zeilen stehen einzeln dort, jeweils mit Termin, Aufgabe oder Zeilennummer.
  4. JSON kopieren oder JSON laden schreibt das Ergebnis als calendar.json heraus: Kalendereigenschaften, jeder Termin und jede Aufgabe — verschachtelte Komponenten wie VALARM bleiben unter components erhalten —, die Problemliste und die Zahl der gelesenen Zeilen. Ohne Ergebnis sagen beide Schaltflächen das.

Was der Parser prüft und wo er aufhört

Datumsangaben, Zeitzonen und ganztägige Einträge

Vier Datumsformen werden gelesen: 20260901T090000Z als UTC, 20260901T090000 als schwebende Ortszeit, 20260901 als ganztägiges Datum und ein Wert mit TZID-Parameter. Der Zonenname steht neben dem Wert — DTSTART;TZID=America/New_York:20260901T090000 erscheint als 2026-09-01 09:00:00 (America/New_York) — und die Uhrzeit bleibt genau so stehen, wie sie geschrieben wurde, weil die Seite keine Zeitzonendatenbank zum Umrechnen mitbringt. Ein Wert, der in keine dieser Formen passt, wird in der Zeile Probleme mit Eigenschaftsnamen und Originaltext gemeldet.

Ganztägige Einträge erscheinen als Datum. Ein Termin ohne DTSTART zeigt an der Datumsstelle einen Gedankenstrich, und die Problemliste nennt das fehlende Feld.

Termine, Aufgaben und das JSON-Ergebnis

VEVENT und VTODO bleiben getrennt: Die Karte eines Termins trägt Zeitraum, Ort, RRULE und Beschreibung, die einer Aufgabe ihr Fälligkeitsdatum. Eine mehrfach vorkommende Eigenschaft behält alle Werte (zwei ATTENDEE-Zeilen werden als Array exportiert), und verschachtelte Komponenten wie VALARM wandern im JSON unter components mit ihrem Elternteil.

RRULE wird als Text exportiert und nicht aufgelöst: Eine wöchentliche Regel mit COUNT=6 bleibt ein Termin mit vollständig ausgeschriebener Regel.

Wo die Prüfungen enden

Dies ist ein Leser mit kurzer Checkliste, kein Konformitätstest. Geprüft werden die genannten Felder und die Form der Datei; RFC 5545 wird nicht Eigenschaft für Eigenschaft durchgegangen, eine Abo-URL wird nicht abgerufen und eine beschädigte Datei wird nicht repariert. Was nicht gelesen oder getrennt werden kann, wird mit Zeilennummer oder zugehörigem Eintrag genannt, sodass eine halb lesbare Datei genau an der Bruchstelle korrigiert werden kann.

Zuletzt verwendet: