Jedes Datum in einer Wiederholung, bevor es Ihren Kalender erreicht
Erweitert eine tägliche, wöchentliche, monatliche oder jährliche Wiederholung in tatsächliche Daten, macht die Regel für fehlende Datumsangaben explizit und exportiert ein standardbasiertes ganztägiges Kalenderereignis pro Vorkommen.
Der Kalender
Ein standardbasiertes ganztägiges VEVENT pro Zeile, mit exklusiven DTEND-Werten für den nächsten Tag und stabilen Ereigniskennungen.
Jedes Datum im Zeitplan
| 1 | 2026-08-01 | Saturday | 0 | Anchor date |
| 2 | 2026-08-15 | Saturday | 14 | Exact anchor day |
| 3 | 2026-08-29 | Saturday | 28 | Exact anchor day |
| 4 | 2026-09-12 | Saturday | 42 | Exact anchor day |
| 5 | 2026-09-26 | Saturday | 56 | Exact anchor day |
| 6 | 2026-10-10 | Saturday | 70 | Exact anchor day |
| 7 | 2026-10-24 | Saturday | 84 | Exact anchor day |
| 8 | 2026-11-07 | Saturday | 98 | Exact anchor day |
| 9 | 2026-11-21 | Saturday | 112 | Exact anchor day |
| 10 | 2026-12-05 | Saturday | 126 | Exact anchor day |
| 11 | 2026-12-19 | Saturday | 140 | Exact anchor day |
| 12 | 2027-01-02 | Saturday | 154 | Exact anchor day |
So funktioniert es
Was das bringt
„Jeden Monat“ ist unvollständig, wenn das erste Datum der 29., 30. oder 31. ist. Der Februar darf es nicht enthalten; einige andere Monate enthalten nicht den 31.; und einen jährlichen 29. Februar gibt es nur in Schaltjahren. In einem Zeitplan muss angegeben werden, ob ein fehlendes Datum verschoben wird oder nicht.
Dies erweitert diese Entscheidung, bevor etwas importiert wird. Jede Zeile ist sichtbar, kann als CSV heruntergeladen und auch als eigenes ganztägiges Ereignis in eine iCalendar-Datei geschrieben werden. Es gibt keine versteckte Wiederholungsregel, die eine andere Anwendung anders interpretieren könnte.
Die Methode
Tage und Wochen sind feste Kalendertagsschritte. Zwei Wochen sind vierzehn Tage, daher kann sich der Wochentag nicht ändern. Das erste Datum ist bereits Zeile eins, was bedeutet, dass zwölf zweiwöchentliche Termine elf Lücken haben und sich über 154 Tage erstrecken.
Monate und Jahre verwenden stattdessen einen Anker. Für Zeile n wird der Zielmonat oder das Zieljahr aus dem ursprünglichen Datum und dem angeforderten Intervall ermittelt. Der ursprüngliche Tag wird dann dort platziert, sofern er vorhanden ist. Ist dies nicht der Fall, verwendet der Monatsendmodus den letzten verfügbaren Tag und der Überspringmodus geht zum nächsten Kandidaten über.
Vor dem Weiterlesen
Ein monatlicher Zeitplan beginnt am 31. Januar 2026 und verwendet das Monatsende für fehlende Daten. Was ist das März-Ereignis?
31. März. Der 28. Februar ist ein lokaler Ersatz für einen fehlenden 31., kein neuer Anker. Die direkte Ableitung des März vom ursprünglichen 31. Januar-Datum verhindert, dass ein kurzer Monat jedes spätere Ereignis verschiebt.
Ein gelungenes Beispiel
Beginnen Sie am Samstag, 1. August 2026, wiederholen Sie alle zwei Wochen und fragen Sie nach zwölf Terminen:
| Auftreten | Datum | Wochentag | Tage ab Start |
|---|---|---|---|
| 1 | 01.08.2026 | Samstag | 0 |
| 2 | 15.08.2026 | Samstag | 14 |
| 3 | 29.08.2026 | Samstag | 28 |
| 4 | 12.09.2026 | Samstag | 42 |
| 12 | 02.01.2027 | Samstag | 154 |
Bei einem am 31. Januar 2026 verankerten Monatsplan beginnt der Monatsendmodus am 31. Januar, 28. Februar, 31. März und 30. April. Zwei dieser ersten vier Termine werden als auf das Monatsende verschoben gemeldet. Der Überspringmodus beginnt stattdessen am 31. Januar, 31. März, 31. Mai und 31. Juli, und in der Tabelle steht, dass auf jede akzeptierte Zeile ein übersprungenes fehlendes Datum folgte. In den Formeltests werden sowohl Reihenfolgen als auch die 14-tägigen Zahlen geltend gemacht.
Was die Kalenderdatei enthält
Jede Reihe wird zu einem ganztägigen VEVENT. Sein DTSTART ist das kompakte Datum und sein exklusives DTEND ist der Folgetag. Der Titel des Besuchers wird durch Backslashes, Kommas, Semikolons und Zeilenumbrüche maskiert; Zeilen, die länger als 75 UTF-8-Oktette sind, werden mit dem erforderlichen Fortsetzungsraum gefaltet; und stabile Identifikatoren bedeuten, dass der Import einer neu generierten Kopie als derselbe Satz von Ereignissen erkannt werden kann.
Der Generierungszeitstempel ist der einzige aktuelle Wert in der Datei. Es ändert den Zeitplan nicht und wird nicht in der Seiten-URL platziert oder an eine andere Stelle gesendet.
So wird es gemacht
- Analysieren Sie das erste Datum als gregorianischen Kalenderanker und binden Sie dann das Intervall und die angeforderte Anzahl der Vorkommen ein, bevor Sie den Zeitplan zuweisen.
- Fügen Sie für Tage und Wochen eine feste Anzahl von UTC-Kalendertagen hinzu. Leiten Sie für Monate und Jahre jeden Kandidaten aus dem ursprünglichen Jahr, Monat und Tag und nicht aus dem vorherigen Ergebnis ab.
- Wenn in einem Kandidatenmonat der Ankertag fehlt, verwenden Sie entweder seinen letzten Tag oder lassen Sie diesen Kandidaten weg, genau wie ausgewählt. Fahren Sie fort, bis die gewünschte Anzahl tatsächlicher Termine erstellt wurde.
- Schreiben Sie die Zeilen als separate RFC 5545 ganztägige VEVENT-Komponenten. DTSTART ist das Datum selbst, DTEND ist das folgende Datum, da ein ganztägiges Ende ausgeschlossen ist, und jede Inhaltszeile wird auf 75 UTF-8-Oktette gefaltet.
Wovon es ausgeht
- Der Kalender ist gregorianisch und enthält nur das Datum. Es gibt keine Tageszeit, Zeitzone, Sommerzeitumstellung oder Erinnerung, auf die man schließen könnte.
- Das erste Datum zählt als Ereignis eins. Zwölf Daten enthalten daher elf Intervalle, nicht zwölf.
- Der Monatsendmodus ändert nie den Anker. Der 31. Januar kann zum 28. Februar werden und dann zum 31. März zurückkehren, da jeder Kandidat vom ursprünglichen Tag 31 abgeleitet ist.
- Im Skip-Modus wird ein fehlender Kandidat übersprungen, kein Intervall. Dies wird über spätere Kandidatenmonate oder -jahre hinweg fortgesetzt, bis die angeforderte Anzahl tatsächlicher Daten vorhanden ist.
- Kalenderjahre über 9999 können nicht durch den vierstelligen DATE-Wert von RFC 5545 dargestellt werden und werden nicht ausgegeben.
Fragen
Hat jeder Monat ein monatliches Wiederholungsdatum?
In jedem Monat gibt es nur Anker vom ersten bis zum achtundzwanzigsten. Der neunundzwanzigste, dreißigste und einunddreißigste Monat erfordern eine Regel für kürzere Monate, weshalb das Tool fragt, anstatt stillschweigend zu raten.
Warum wird das Ende eines ganztägigen Kalenderereignisses auf das nächste Datum festgelegt?
RFC 5545 definiert DTEND als nicht-inklusive Grenze. Eine Veranstaltung, die nur den 1. August umfasst, beginnt also am 1. August und endet Anfang des 2. August; Die Verwendung desselben Datums für beide würde zu einem Ereignis mit der Länge Null führen.
Werden wöchentliche Wiederholungen durch die Sommerzeit beeinflusst?
Dabei handelt es sich um reine Datumszeilen, nicht um Zeitpunkte. Durch das Hinzufügen von sieben Kalendertagen bleibt der Wochentag erhalten und enthält keine Uhr, deren UTC-Offset sich ändern könnte.
Führt das Importieren der Datei zu einem oder mehreren sich wiederholenden Ereignissen?
Es erstellt ein ganztägiges VEVENT pro sichtbarer Zeile. Dadurch bleibt der exakte erweiterte Zeitplan erhalten, einschließlich Monatsendanpassungen und übersprungener Daten, ohne auf die Wiederholungsinterpretation der einzelnen Kalenderanwendungen angewiesen zu sein.