Date et heure

Générateur RRULE · Vérifier les dates derrière la règle

Composez une récurrence ou analysez une règle avec un début, un fuseau et des dates concrètes.

Générateur RRULE

Conditions de récurrence

BYDAY : MO,WE ou 2TU,-1FR ; rangs uniquement mensuels/annuels. BYMONTHDAY : −31…−1, 1…31 ; BYMONTH : 1…12 ; BYSETPOS : −366…−1, 1…366 avec un autre filtre BY. Séparez les listes par des virgules ; un filtre vide est omis.

Règle et aperçu des dates

Les données sont traitées dans ce navigateur et ne sont pas envoyées à un serveur.

Options

Début : date ISO locale avec secondes, par exemple 2026-09-14T09:00:00. UNTIL : date UTC avec Z. DTSTART doit lui-même respecter la règle.

Une heure inexistante utilise le décalage précédant le changement et affiche l’heure déplacée. Une heure doublée retient la première occurrence. Les dates calendaires impossibles sont ignorées.

Fréquences jour/semaine/mois/année. 8 192 unités UTF-16, 100 exclusions, COUNT jusqu’à 10 000. Aperçu : 1–1 000 dates, dix ans depuis DTSTART, au plus jusqu’en 2099 ; délai de cinq secondes.

L’entrée ou les options ont changé. Actualisez les résultats avant l’export.

Le Générateur RRULE permet de vérifier une réunion une semaine sur deux ou une clôture mensuelle avant de la confier au calendrier. Les règles de récurrence dépendent du premier rendez-vous : un début incompatible ne suffit pas à définir une série sans ambiguïté.

Les prochaines occurrences partent de DTSTART, pas de la date actuelle. Le formulaire et le texte d’analyse restent séparés. Les dates récurrentes se lisent avec leur contexte, ce qui facilite le contrôle des fuseaux horaires et des exceptions ponctuelles.

Pourquoi utiliser ce Générateur RRULE

Le 31 et la fin du mois ne sont pas équivalents

Le Générateur RRULE conserve cette différence. BYMONTHDAY=31 ignore les mois courts ; BYMONTHDAY=-1 choisit leur dernier jour réel. Vérifier février permet de distinguer une échéance de fin de mois d’un rendez-vous réservé au 31.

Deux suites de calendriers : le 31 fixe saute un mois court, tandis que la règle de fin de mois garde son dernier jour.

Une exclusion ne prolonge pas la série

COUNT limite d’abord les occurrences initiales, puis EXDATE retire les instants correspondants. Cinq rendez-vous moins une exception donnent quatre dates. Le rapport compte les exclusions sans ajouter une date de remplacement en fin de série.

Une des cinq occurrences est barrée ; les quatre autres restent en place sans ajout.

Aligner le début, les filtres et la fin

01

Commencer par une date compatible

Les exemples associent la règle à un DTSTART qui lui correspond. Passer du lundi au deuxième mardi exige de revoir le début. Les remplacements par exemple ou effacement sont prévisualisés et peuvent être annulés une fois après application.

02

Distinguer heure récurrente et instant de fin

Le début et les exclusions du formulaire sont des dates ISO locales avec secondes. UNTIL utilise UTC avec Z. Un DTSTART explicite dans le texte prend la priorité ; les champs de secours sont alors désactivés et le résultat affiche le contexte réel.

03

Lire pourquoi l’aperçu s’arrête

Le mode automatique attend 350 ms. Désactivez-le pour utiliser le bouton ou Ctrl/Cmd+Entrée. Les modifications bloquent les exports périmés. Les dates s’affichent par lots de 50, mais le rapport et le JSON contiennent toute la prévision calculée.

Comprendre le choix de chaque date

Des intervalles et une semaine bien définis

INTERVAL s’applique au jour, à la semaine, au mois ou à l’année. BYDAY accepte les jours de semaine et leurs rangs pour les mois et années. WKST définit la frontière hebdomadaire, importante pour une semaine sur deux.

Sélectionner la dernière position utile

BYMONTH filtre les mois ; BYMONTHDAY compte depuis le début ou la fin du mois. BYSETPOS prend une position dans les candidats de la période. Les jours du lundi au vendredi avec -1 sélectionnent le dernier de ces jours, sans calendrier de jours fériés.

Conserver le contexte dans le fragment

Une règle seule utilise le début et le fuseau choisis. Les dates explicites exigent Z ou TZID. Le fragment normalisé conserve le début effectif pour éviter qu’une copie perde l’origine de la répétition.

Comparer les instants réellement calculés

Chaque date présente l’heure locale, le décalage et UTC. Lorsqu’une heure inexistante est déplacée, la demande initiale reste visible. Une réunion hebdomadaire ordinaire conserve son heure locale alors que son instant UTC peut changer.

Formats acceptés et limites du calcul

Un fragment, pas un événement complet
Seuls DTSTART, une RRULE et 100 EXDATE au maximum sont acceptés. VEVENT, VCALENDAR, RDATE, EXRULE, extensions, dates entières DATE et dates explicites flottantes sont refusés. Le fichier TXT ne constitue pas un événement ICS importable.
Quatre fréquences et certains filtres
Les fréquences à la seconde, minute ou heure ainsi que BYHOUR, BYMINUTE, BYSECOND, BYYEARDAY et BYWEEKNO sont hors périmètre. L’heure vient de DTSTART. Une propriété inconnue produit une erreur et n’est pas supprimée silencieusement.
Un début cohérent et une seule fin
DTSTART doit satisfaire la règle. COUNT vaut de 1 à 10 000 et exclut UNTIL. Celui-ci doit être un instant UTC au moins égal au début ; une occurrence exactement sur la limite est incluse.
Dates impossibles et heures inexistantes
Une date impossible est ignorée sans consommer COUNT. Une heure inexistante suit l’erratum confirmé 4271 de RFC 5545 : décalage avant la transition, affichage déplacé. Une heure doublée désigne la première occurrence. Les données de fuseau viennent du navigateur.
Des exclusions par instant
EXDATE peut retirer DTSTART lui-même, mais ne retire pas une journée entière et ne complète pas COUNT. Les doublons sont normalisés. Le déplacement des jours fériés ou des rendez-vous annulés n’est pas pris en charge.
Un aperçu limité
L’entrée est limitée à 8 192 unités UTF-16. Demandez 1 à 1 000 dates dans les dix ans suivant DTSTART, entre 1970 et 2099. Le calcul s’arrête après cinq secondes. Nombre atteint, fin réelle et limite de recherche sont distingués.

Générateur RRULE : questions fréquentes

Quelle est la différence entre UNTIL et COUNT ?

COUNT borne le nombre initial d’occurrences, début compris, avant EXDATE. UNTIL borne les instants par une limite UTC inclusive. Choisissez un seul mode ; les exclusions peuvent réduire le nombre finalement visible.

Où utiliser la règle générée ?

Dans une application acceptant les propriétés de récurrence. Un événement complet exige aussi des informations comme UID et DTSTAMP. Le fragment ne remplace pas ces métadonnées et l’outil ne valide pas un document ICS entier.

Comment exclure une date ?

Ajoutez une propriété EXDATE séparée de RRULE. Le formulaire attend une heure locale par ligne ; le texte doit préciser Z ou TZID. Les exclusions sont normalisées en instants UTC dans le fragment produit.

Le changement d’heure modifie-t-il les récurrences ?

Le fuseau IANA choisi interprète chaque date locale. L’heure d’une réunion ordinaire reste constante, mais UTC peut varier. Une heure manquante utilise le décalage précédent ; une heure répétée choisit sa première occurrence.

Comment écrire la date de fin UNTIL ?

Le formulaire attend une date ISO UTC comme 2026-12-31T23:59:59Z. Dans RRULE, elle devient 20261231T235959Z. Une fin antérieure au début, sans UTC ou combinée avec COUNT est refusée.

Une date inattendue ?

Vérifier votre prochaine série

Le Générateur RRULE réunit début, exclusions et instants calculés. Comparez-les avant de transmettre le fragment à votre application de calendrier.