Titre, lieu, date et heure, fuseau horaire, récurrence, invités, alertes et notes — téléchargez ensuite le fichier .ics ou ouvrez-le directement dans votre calendrier. Vous pouvez aussi coller un programme ou joindre un document ou une photo pour créer plusieurs événements à la fois.

Comment faire en sorte qu'un événement de calendrier se répète chaque semaine ou chaque mois ?

Une répétition tient en une ligne dans le fichier .ics : RRULE:FREQ=WEEKLY, avec INTERVAL pour une période sur deux ou sur trois, et COUNT ou UNTIL pour mettre fin à la série. Le formulaire d'ICS Maker définit la fréquence (quotidienne, hebdomadaire, mensuelle, annuelle), l'intervalle, et si la série ne se termine jamais, s'arrête après un certain nombre d'occurrences, ou court jusqu'à une date — puis écrit la RRULE dans le fichier téléchargé, que le calendrier lecteur développe lui-même, si bien qu'une série de n'importe quelle longueur reste un petit fichier. Choisir un jour précis n'est pas prévu dans le formulaire et se fait en modifiant une ligne du fichier : FREQ=MONTHLY;BYMONTHDAY=-1 pour le dernier jour du mois, BYDAY=1MO pour le premier lundi, BYDAY=MO,TU,WE,TH,FR pour les jours de semaine uniquement. Cette page recense douze règles de ce type à copier.

La règle à l'intérieur du fichier

Une répétition tient en une ligne : RRULE:FREQ=WEEKLY. Les calendriers la lisent et génèrent eux-mêmes les occurrences, ce qui explique pourquoi un événement récurrent reste un petit fichier, quelle que soit sa durée. La règle peut aussi porter un intervalle (INTERVAL=2 pour toutes les deux semaines), une date de fin (UNTIL), ou une limite (COUNT).

Le générateur écrit tout cela. Choisissez une fréquence, définissez l'intervalle — toutes les 2 semaines, tous les 3 mois — et indiquez si la série ne se termine jamais, s'arrête après un certain nombre d'occurrences, ou court jusqu'à une date. La ligne produite est standard, si bien que le calendrier qui ouvre le fichier crée exactement la série décrite.

Règles de répétition à copier-coller

Le formulaire couvre la fréquence, l'intervalle et la façon dont la série se termine. Choisir un jour précis — le dernier jour du mois, le premier lundi, les jours de semaine uniquement — nécessite de modifier une ligne du fichier après le téléchargement : ouvrez-le dans un éditeur de texte et remplacez la ligne RRULE: par l'une de celles-ci. Tous ces éléments proviennent de la RFC 5545, si bien que Google Calendar, Outlook, Apple Calendar et Thunderbird les interprètent tous de la même façon.

Chaque semaine, même jour
RRULE:FREQ=WEEKLY
Une semaine sur deux (bimensuel)
RRULE:FREQ=WEEKLY;INTERVAL=2
Chaque jour de semaine, du lundi au vendredi
RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
Le 1er de chaque mois
RRULE:FREQ=MONTHLY;BYMONTHDAY=1
Le dernier jour de chaque mois
RRULE:FREQ=MONTHLY;BYMONTHDAY=-1
Le premier lundi de chaque mois
RRULE:FREQ=MONTHLY;BYDAY=1MO
Le dernier vendredi de chaque mois
RRULE:FREQ=MONTHLY;BYDAY=-1FR
Le dernier jour ouvré de chaque mois
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
Tous les trois mois (trimestriel)
RRULE:FREQ=MONTHLY;INTERVAL=3
Chaque année, à la date de début
RRULE:FREQ=YEARLY
Douze fois, puis arrêt
RRULE:FREQ=MONTHLY;COUNT=12
Chaque semaine jusqu'à une date fixe
RRULE:FREQ=WEEKLY;UNTIL=20261231T235959Z

Comment les éléments s'assemblent

FREQ est le seul élément obligatoire ; tout le reste vient le préciser. INTERVAL saute des périodes, si bien que FREQ=WEEKLY;INTERVAL=2 correspond à une semaine sur deux plutôt qu'à un jour sur deux. BYDAY accepte des codes de jour de semaine à deux lettres, et un nombre placé devant l'un d'eux sélectionne une occurrence dans le mois — 1MO désigne le premier lundi, -1FR le dernier vendredi. BYMONTHDAY compte des dates à la place, et compte à rebours depuis la fin lorsque la valeur est négative, ce qui fait de BYMONTHDAY=-1 le moyen fiable d'exprimer « le dernier jour ». BYSETPOS sélectionne parmi ce que le reste de la règle a déjà déterminé pour chaque période, si bien qu'une liste de jours de semaine associée à BYSETPOS=-1 tombe sur le dernier jour ouvré.

Quelle fréquence choisir

La fréquence hebdomadaire est ancrée sur le jour de la semaine choisi pour le début, la fréquence mensuelle sur la date. Un événement mensuel le 31 est le piège classique : la plupart des calendriers sautent les mois qui n'en comptent pas, plutôt que de déplacer l'événement, donc utilisez BYMONTHDAY=-1 lorsque vous voulez dire le dernier jour de chaque mois, plutôt que de démarrer la série le 31 en espérant que cela fonctionne.

Questions

Comment arrêter un événement récurrent ?
Réglez « Fin de la répétition » sur un nombre d'occurrences ou sur une date de fin, et le fichier portera COUNT ou UNTIL en conséquence. Laissez-le sur Jamais et la série continuera jusqu'à ce que vous y mettiez fin dans votre propre calendrier, qui peut toujours modifier une série qu'il a importée.
Quelle est la différence entre COUNT et UNTIL ?
COUNT arrête la série après un certain nombre d'occurrences — COUNT=12 en donne douze, pas plus, quelles que soient les dates obtenues. UNTIL arrête la série à un instant précis, écrit sous forme d'horodatage UTC comme UNTIL=20261231T235959Z, et toute occurrence qui tomberait après cette date n'a simplement pas lieu. Les deux remplissent le même rôle depuis des extrémités opposées, et la RFC 5545 n'autorise pas de combiner les deux dans une même règle.
Puis-je faire en sorte qu'un événement se répète une semaine sur deux ?
Oui — choisissez Hebdomadaire et réglez l'intervalle sur 2. Le fichier reçoit INTERVAL=2 sur sa règle de répétition, que tous les calendriers interprètent comme « toutes les deux semaines ». Cela fonctionne de la même façon pour tous les 3 jours, tous les 6 mois, etc.
Comment répéter un événement le dernier jour de chaque mois ?
Utilisez FREQ=MONTHLY;BYMONTHDAY=-1, ce qui nécessite de modifier le fichier téléchargé à la main — le formulaire définit la fréquence, l'intervalle et la fin, mais pas quel jour du mois est choisi. Les nombres négatifs comptent à rebours depuis la fin, si bien que cela tombe sur le 28, le 29, le 30 ou le 31 selon les besoins de chaque mois. Démarrer une série mensuelle le 31 à la place est l'erreur courante : la plupart des calendriers sautent les mois qui n'ont pas de 31 plutôt que de déplacer l'événement.
Comment ignorer une seule occurrence d'une série ?
Ajoutez une ligne EXDATE à côté de la RRULE, indiquant l'heure de début de l'occurrence à supprimer — EXDATE:20261225T090000Z supprime cette seule instance et laisse le reste intact. Pour la déplacer plutôt que la supprimer, associez l'EXDATE à un second VEVENT portant le même UID et un RECURRENCE-ID pointant vers le créneau d'origine.
La répétition survivra-t-elle à un import dans Outlook ou Google ?
Oui. RRULE fait partie de la RFC 5545 et les deux la lisent, tout comme Apple Calendar et Thunderbird. Ils développent la série à l'import plutôt que de stocker chaque occurrence.