Datum und Zeit

RRULE-Generator · Die Termine hinter der Regel sehen

Eine Wiederholung erstellen oder vorhandenen Text mit Beginn, Zeitzone und konkreten Terminen prüfen.

RRULE-Generator

Wiederholungsbedingungen

BYDAY: MO,WE oder 2TU,-1FR; Ordnungszahlen nur monatlich/jährlich. BYMONTHDAY: −31…−1, 1…31; BYMONTH: 1…12; BYSETPOS: −366…−1, 1…366 mit weiterem BY-Filter. Listen mit Kommas trennen; leere Filter entfallen.

Regel und Terminvorschau

Die Eingabe wird in diesem Browser verarbeitet und nicht an einen Server gesendet.

Optionen

Beginn: lokale ISO-Datumszeit mit Sekunden, z. B. 2026-09-14T09:00:00. UNTIL: UTC mit Z. DTSTART muss selbst zur Wiederholung passen.

Bei Zeitlücken gilt der Offset vor der Umstellung; angezeigt wird die verschobene Uhrzeit. Bei doppelten Uhrzeiten gilt das erste Auftreten. Ungültige Kalendertage entfallen.

Nur Tag/Woche/Monat/Jahr. 8.192 UTF-16-Einheiten, 100 Ausnahmen, COUNT bis 10.000. Vorschau: 1–1.000 Termine, zehn Jahre ab DTSTART, spätestens 2099; Zeitlimit fünf Sekunden.

Eingabe oder Optionen geändert. Vor dem Export das Ergebnis aktualisieren.

Der RRULE-Generator hilft bei zweiwöchentlichen Besprechungen, monatlichen Abschlüssen und einzelnen abgesagten Terminen. Entscheidend ist nicht nur eine syntaktisch passende Zeichenfolge: Auch der erste Termin muss zum Muster passen. Ein Blick auf Februar zeigt oft, ob wirklich das Monatsende gemeint war.

Der RRULE-Builder macht Wiederholungsregeln nachvollziehbar und zeigt nächste Termine ab DTSTART statt ab heute. Formular und Analysetext bleiben getrennt. So lässt sich vorhandener Text untersuchen, ohne einen noch bearbeiteten Entwurf zu überschreiben.

Warum dieser RRULE-Generator

Der 31. ist nicht immer der Monatsletzte

Der RRULE-Generator unterscheidet feste Monatstage vom Monatsende. BYMONTHDAY=31 überspringt kürzere Monate. BYMONTHDAY=-1 wählt den letzten gültigen Tag jedes Monats. Das ist für einen monatlichen Abschluss eine andere Regel als ein Termin ausschließlich am 31.

Zwei Kalenderfolgen: Ein fester 31. überspringt einen kurzen Monat, die Monatsendregel enthält dessen letzten Tag.

Eine Ausnahme verlängert COUNT nicht

Zuerst begrenzt COUNT die ursprüngliche Serie; anschließend entfernt EXDATE passende Zeitpunkte. Von fünf Terminen bleiben nach einer Ausnahme vier übrig. Der Bericht nennt die Ausschlusszahl und hängt keinen Ersatztermin an.

Von fünf Terminmarkierungen wird eine gestrichen; vier bleiben ohne zusätzliche Markierung erhalten.

Beginn, Endpunkt und Vorschau prüfen

01

Mit einem passenden Beginn starten

Vorlagen liefern Regel und passenden DTSTART zusammen. Wer Montag durch den zweiten Dienstag ersetzt, muss auch den Beginn anpassen. Beispiel und Leeren zeigen vor der Anwendung eine Vorschau; Rückgängig stellt Eingabe und Ergebnis gemeinsam wieder her.

02

Ortszeit und UTC-Ende unterscheiden

Beginn und Formularausnahmen sind lokale ISO-Zeiten mit Sekunden in der gewählten IANA-Zone. UNTIL ist ein UTC-Zeitpunkt mit Z. Ein DTSTART im Text hat Vorrang vor den Ersatzfeldern; seine wirksamen Werte stehen im Ergebnis.

03

Den Grund für das Ende der Vorschau lesen

Automatische Berechnung wartet 350 ms. Ohne Automatik stehen die Schaltfläche und Ctrl/Cmd+Enter bereit. Änderungen sperren veraltete Exporte. Die Anzeige wächst in 50er-Schritten; Bericht und JSON enthalten sämtliche berechneten Vorschautermine.

Wie die Kalendertage ausgewählt werden

Intervalle mit einer Wochenanfangsregel

INTERVAL zählt Tage, Wochen, Monate oder Jahre. BYDAY unterstützt Wochentage und bei Monaten/Jahren auch Ordnungszahlen. WKST legt die Wochengrenze fest und kann damit ein zweiwöchentliches Muster verändern.

Positionen innerhalb einer Kandidatenmenge

BYMONTH filtert Monate, BYMONTHDAY zählt von vorn oder hinten im Monat. BYSETPOS wählt Positionen innerhalb der jeweiligen Periode. Wochentage Montag bis Freitag mit -1 ergeben den letzten solchen Tag; Feiertage sind dabei nicht berücksichtigt.

Ein Fragment mit wirksamem Kontext

Eine nackte Regel verwendet Beginn und Zone aus den Feldern. Explizite Datumszeilen brauchen Z oder TZID. Das normalisierte Fragment enthält den tatsächlichen Beginn, damit beim Kopieren der zeitliche Bezug erhalten bleibt.

Zeitzonen anhand echter Zeitpunkte prüfen

Jeder Termin enthält Ortszeit, Offset und UTC. Bei einer Zeitlücke wird zusätzlich die ursprünglich verlangte Uhrzeit genannt. Eine gewöhnliche wöchentliche Sitzung behält ihre lokale Stunde, während sich die UTC-Zeit ändern kann.

Unterstützte Regeln und klare Grenzen

Kein vollständiger Kalenderereignis-Validator
Akzeptiert werden DTSTART, eine RRULE und bis zu 100 EXDATE-Werte. VEVENT, VCALENDAR, RDATE, EXRULE, Erweiterungen, ganztägiges DATE und explizite gleitende Zeiten werden abgelehnt. Der TXT-Export ist kein vollständiges importierbares ICS-Ereignis.
Vier Frequenzen und ausgewählte Filter
Sekunden-, Minuten- und Stundenfrequenzen sowie BYHOUR, BYMINUTE, BYSECOND, BYYEARDAY und BYWEEKNO werden nicht unterstützt. Die Uhrzeit stammt aus DTSTART. Unbekannte Eigenschaften führen zu Fehlern, statt still entfernt zu werden.
Beginn und Ende müssen zusammenpassen
DTSTART muss selbst zur Regel passen. COUNT erlaubt 1–10.000 und darf nicht neben UNTIL stehen. UNTIL ist ein UTC-Zeitpunkt ab dem Beginn; ein Termin genau auf dieser Grenze wird noch eingeschlossen.
Ungültige Tage sind keine Zeitlücken
Nicht existierende Kalendertage entfallen ohne COUNT zu verbrauchen. Für Zeitlücken gilt RFC 5545 mit bestätigtem Erratum 4271: Offset vor der Umstellung, verschobene Anzeige. Doppelte Uhrzeiten wählen den ersten Zeitpunkt. Die Zonendaten stammen aus dem Browser.
Ausnahmen gelten für genaue Zeitpunkte
EXDATE kann auch DTSTART entfernen. Es löscht keinen ganzen Tag und füllt COUNT nicht wieder auf. Doppelte Ausnahmen werden vereinheitlicht. Feiertagsverschiebung und Umbuchung sind keine Funktionen dieser Regelvorschau.
Die Vorschau ist begrenzt
Eingaben dürfen 8.192 UTF-16-Einheiten umfassen. Es werden 1–1.000 Termine ab DTSTART für höchstens zehn Jahre und innerhalb 1970–2099 geprüft. Nach fünf Sekunden stoppt die Berechnung. Vorschauanzahl, Serienende und Suchgrenze haben eigene Statusmeldungen.

RRULE-Generator: häufige Fragen

Was unterscheidet UNTIL von COUNT?

COUNT begrenzt die ursprünglichen Vorkommen einschließlich des passenden Beginns, bevor Ausnahmen entfernt werden. UNTIL ist eine inklusive UTC-Grenze. Beide Varianten dürfen nicht gleichzeitig in derselben Regel stehen.

Wo kann ich die erzeugte Regel verwenden?

In Anwendungen, die Wiederholungseigenschaften akzeptieren. Für ein vollständiges Ereignis fehlen unter anderem UID und DTSTAMP. Diese Angaben muss die Zielanwendung ergänzen; ein gesamtes ICS-Dokument wird hier nicht geprüft.

Wie schließe ich ein Datum aus?

EXDATE ist eine eigene Eigenschaft außerhalb von RRULE. Im Formular wird eine lokale Zeit pro Zeile angegeben; im Text braucht jede Datumszeile Z oder TZID. Der Export normalisiert die ausgeschlossenen Zeitpunkte nach UTC.

Was passiert beim Wechsel zur Sommerzeit?

Die gewählte IANA-Zone bestimmt jeden lokalen Termin. Normalerweise bleibt die Stunde gleich und UTC ändert sich. Fehlende Uhrzeiten verwenden den vorherigen Offset; eine zweimal vorkommende Uhrzeit bezeichnet das erste Auftreten.

Kann ich den 31. oder den nächstliegenden Tag wählen?

BYMONTHDAY=31 lässt kurze Monate aus. Für jedes Monatsende verwenden Sie BYMONTHDAY=-1. Eine automatische Verschiebung auf einen nahen Tag würde die Bedeutung verändern und wird daher nicht vorgenommen.

Ein unerwarteter Termin?

Die nächste Serie prüfen

Der RRULE-Generator zeigt Beginn, Ausnahmen und aufgelöste Zeitpunkte zusammen. Prüfen Sie die Serie, bevor Sie das Fragment in Ihre Kalenderanwendung übernehmen.