Kostenloses Tool

ICS-Datei prüfen und reparieren

Dieses Werkzeug prüft eine Kalenderdatei (.ics) nach RFC 5545, zeigt die enthaltenen Termine und repariert, was sich sicher reparieren lässt. Sie laden die Datei oder fügen den Text ein und erhalten eine Befundliste mit Regel und Zeilennummer sowie eine korrigierte Datei zum Herunterladen. Unklare Fälle wie ein Ende vor dem Beginn meldet es nur. Die Prüfung läuft im Browser, ohne Upload.

Von · · · Datenquelle: RFC 5545 (iCalendar) · Methodik

Kalenderdatei laden

Hinweis

Das Werkzeug läuft in Ihrem Browser, Ihre Eingaben werden nicht übertragen und Ihre Dateien bleiben auf Ihrem Gerät. Öffnen Sie das Ergebnis, bevor Sie es weitergeben, und prüfen Sie, ob alles Nötige drin ist und nichts mehr, was raus sollte. Behalten Sie das Original, bis Sie das wissen. Für Verluste an Qualität oder Inhalt übernehmen wir keine Gewähr; die technische Grundlage nennt die Seite, Stand siehe „Zuletzt geprüft“.

Was die Prüfung bei einer ICS-Datei untersucht

Eine ICS-Datei ist reiner Text im Format iCalendar, beschrieben in RFC 5545. Dieses Werkzeug liest die Datei zeilenweise und prüft zuerst das Gerüst: Sie muss mit BEGIN:VCALENDAR beginnen und mit END:VCALENDAR enden (Abschnitt 3.4), VERSION und PRODID müssen vorkommen und dürfen nicht doppelt stehen (3.7.4 und 3.7.3). Jede Komponente braucht ihre eigenen Pflichtfelder. Ein Termin (VEVENT) verlangt UID und DTSTAMP, außerdem DTSTART, solange der Kalender keine METHOD-Angabe trägt (3.6.1).

Danach folgen die Beziehungen zwischen den Feldern. DTEND und DURATION dürfen nicht zusammen stehen, das Ende darf nicht vor dem Beginn liegen (3.8.2.2), und eine UID darf nicht in zwei Terminen vorkommen, weil Kalenderprogramme sonst einen Eintrag mit dem anderen überschreiben. Jede Meldung nennt die Regel mit Abschnitt und die Zeilennummer, damit Sie die Stelle im Texteditor finden.

Datumsangaben, Zeitzonen und VTIMEZONE

Das Format kennt drei Schreibweisen für Zeitpunkte (3.3.5): lokale Zeit wie 20261110T140000, UTC mit angehängtem Z und lokale Zeit mit Zeitzonenkennung (TZID). Ein reines Datum wie 20261112 ist ein Ganztagswert (3.3.4) und braucht in der Regel VALUE=DATE. Die Prüfung meldet falsche Formate, ungültige Kalendertage und gemischte Werttypen, etwa einen Beginn mit Uhrzeit und ein Ende als Datum.

Zeigt ein TZID auf eine Zeitzone, die im Kalender nicht als VTIMEZONE definiert ist (3.6.5), kann ein Programm die Uhrzeit nicht sicher deuten. Das Werkzeug meldet das, ändert aber nichts, denn welche Zeitzonenregeln gelten sollen, kann es nicht erraten. Ein Z zusammen mit einem TZID ist nach 3.2.19 nicht zulässig. Zeitangaben ohne Z und ohne TZID sind „schwebend“: Sie gelten in jeder Zeitzone zur gleichen Uhrzeit. Das ist erlaubt, wird aber als Hinweis gezeigt.

Zeilenenden, Faltung und Zeichensatz

Zeilen enden nach 3.1 mit CRLF. Zeilen sollen höchstens 75 Oktette lang sein; längere werden gefaltet, indem man nach einem Zeilenumbruch ein Leerzeichen oder einen Tabulator voranstellt. Gefaltet wird in Oktetten, ein mehrbytiges Zeichen wie ein Umlaut darf dabei nicht zerschnitten werden. Die Prüfung meldet Zeilen mit nur LF (bei geladenen Dateien; bei eingefügtem Text lässt sich das Zeilenende nicht prüfen), zu lange Zeilen und Faltungsfolgen ohne vorherige Zeile.

Als Zeichensatz gilt UTF-8 (3.1.4). Ein Byte Order Mark am Dateianfang kennt der RFC nicht; manche Programme verschlucken sich daran, weshalb das Werkzeug es als Hinweis meldet und beim Reparieren entfernt. Dass das BOM unerwünscht ist, folgt aus dem Format und steht nicht ausdrücklich im RFC. Enthält eine Datei Bytes, die kein gültiges UTF-8 sind, liest das Werkzeug sie als Windows-1252. Das ist eine Annahme, die für ältere deutsche Exporte meist zutrifft.

Was automatisch repariert wird und was nicht

Repariert wird nur, was eindeutig ist und keine vorhandenen Angaben ändert: das BOM entfernen, eine UTF-16- oder Windows-1252-Datei nach UTF-8 umwandeln, Zeilenenden auf CRLF setzen, leere Zeilen löschen, lange Zeilen korrekt falten, eine fehlende VERSION:2.0 ergänzen, eine fehlende PRODID eintragen, eine fehlende UID neu erzeugen und einen fehlenden DTSTAMP mit der aktuellen Zeit ergänzen. Die erzeugte PRODID und UID tragen den Namen dieses Werkzeugs, damit sie als ergänzt erkennbar bleiben. Jede Änderung steht im Reparaturprotokoll.

Nicht repariert werden Fälle, in denen mehrere Lösungen denkbar sind: ein Ende vor dem Beginn (welcher Wert ist falsch?), DTEND und DURATION gleichzeitig, ein fehlender Beginn, eine TZID ohne Zeitzonendefinition, falsch maskierte Texte und fehlende END-Zeilen. Diese Fälle erscheinen nur in der Befundliste. Die Originaldatei bleibt unverändert, Sie laden die reparierte Fassung als neue Datei herunter.

So lesen Sie das Ergebnis

Ein Fehler verletzt eine Pflicht des RFC, die Datei kann deshalb von strengen Programmen abgelehnt werden. Eine Warnung beschreibt etwas, das der RFC zwar zulässt, das aber häufig zu falschen Terminen führt, zum Beispiel eine Zeitangabe ohne Zeitzone. Ein Hinweis ist eine Beobachtung ohne Folgen, etwa schwebende Zeit. Unter den Befunden zeigt die Terminvorschau Titel, Beginn und Ende der gefundenen Einträge; so sehen Sie, ob die Uhrzeiten so gelesen werden, wie Sie es erwarten.

Grenzen der Prüfung

Das Werkzeug prüft Form und Beziehungen der Felder, nicht den Sinn der Termine. Wiederholungsregeln (RRULE) werden nicht ausgewertet; die Vorschau zeigt nur den ersten Beginn. Die Zeitzonendefinitionen in einer VTIMEZONE werden auf ihre Pflichtbestandteile geprüft, nicht gegen die Zeitzonendatenbank. Außerdem gilt: Outlook, Google Kalender und Apple Kalender sind in Einzelheiten strenger oder nachsichtiger als der RFC. Ein sauberer Befund ersetzt deshalb den Probeimport nicht.

Weiterarbeiten mit der Kalenderdatei

Wenn Sie aus einem einzelnen Termin einen scanbaren Code machen möchten, hilft der Kalender-Termin als QR-Code. Dienstpläne aus einer Tabelle verwandelt Dienstplan in Kalender in eine ICS-Datei. Für Kontaktdateien gibt es das Gegenstück VCF-Datei prüfen.

Häufige Fragen

Warum lehnt mein Kalender die ICS-Datei ab?

Häufige Ursachen sind ein fehlendes BEGIN:VCALENDAR oder END:VCALENDAR, fehlende Pflichtfelder wie UID und DTSTAMP, ein Ende vor dem Beginn oder eine Zeitzone, die in der Datei nicht definiert ist. Die Befundliste nennt Zeile und RFC-Abschnitt. Nach dem Reparieren sollten Sie die Datei erneut importieren; bleibt der Fehler, liegt er an einem Punkt, den das Werkzeug nur meldet.

Wird meine Kalenderdatei hochgeladen?

Nein. Ihr Browser liest die Datei, prüft sie und baut die reparierte Fassung auf Ihrem Gerät. Gezählt wird nur, dass eine Prüfung stattgefunden hat, ohne Inhalt. Google Analytics und Google AdSense laufen je nach Einwilligung wie auf allen Seiten dieser Website und erhalten Ihre Termine nicht.

Was bedeutet schwebende Zeit?

Eine Zeitangabe ohne Z und ohne TZID, etwa 20261110T140000. Sie gilt in jeder Zeitzone zur gleichen Uhrzeit und wandert nicht mit. RFC 5545 erlaubt das (3.3.5), bei Terminen mit Teilnehmern in mehreren Zeitzonen führt es aber oft zu Verwirrung. Das Werkzeug meldet es als Hinweis und ändert es nicht.

Warum ändert das Werkzeug ein falsches Ende nicht selbst?

Weil nicht erkennbar ist, welcher Wert falsch ist. Liegt das Ende vor dem Beginn, kann der Beginn zu spät oder das Ende zu früh sein, oder die Zeitzone ist vertauscht. Eine Vermutung würde den Termin stillschweigend verschieben. Deshalb steht der Fall nur in der Befundliste.

Kann ich mehrere Termine zugleich prüfen?

Ja, eine ICS-Datei darf beliebig viele Termine enthalten, und alle werden geprüft und in der Vorschau gezeigt (die ersten 50). Mehrere Dateien auf einmal verarbeitet die Seite nicht; laden Sie sie nacheinander. Eine feste Obergrenze für die Terminzahl ist nicht eingebaut, bei sehr großen Dateien setzt der Arbeitsspeicher des Geräts die Grenze.

Warum meldet das Werkzeug ein BOM?

Ein Byte Order Mark ist eine unsichtbare Markierung am Dateianfang, die manche Programme mitlesen und dann die erste Zeile nicht mehr als BEGIN:VCALENDAR erkennen. RFC 5545 erwähnt das BOM nicht; dass es stört, ist eine praktische Beobachtung. Die reparierte Datei wird deshalb ohne BOM als UTF-8 gespeichert.

Die Seite prüft nach RFC 5545 (iCalendar). Der RFC schreibt keine Byte Order Marks vor oder verbietet sie ausdrücklich; die BOM-Meldung beruht auf Erfahrung mit Kalenderprogrammen. Bei Bytes außerhalb von UTF-8 wird Windows-1252 angenommen. Wiederholungsregeln und der Inhalt der Zeitzonendefinitionen werden nicht ausgewertet. Ob ein Programm die Datei annimmt, entscheidet dessen eigener Import; keine Gewähr.