Une expression cron décrit quand une tâche planifiée se répète. Ici tu l'écris (ou tu la construis en cliquant) et l'outil te dit en langage naturel quand elle s'exécutera, te liste les 10 prochaines occurrences, les dessine sur un calendrier et te génère la configuration prête pour Kubernetes, Spring ou GitHub Actions. Tout dans ton navigateur, sans serveur.
Une expression standard comporte 5 champs séparés par des espaces, toujours dans cet ordre :
• Minute — 0-59
• Heure — 0-23 (format 24 h)
• Jour du mois — 1-31
• Mois — 1-12
• Jour de la semaine — 0-7 (0 et 7 = dimanche, 1 = lundi … 6 = samedi)
Ils se lisent de gauche à droite : 0 9 * * 1-5 = minute 0, heure 9, n'importe quel jour du mois, n'importe quel mois, du lundi au vendredi → « à 09:00, du lundi au vendredi ».
Avec l'interrupteur 6 champs (avec secondes), un champ de secondes est ajouté au début (0-59), utile pour copier des formats qui le demandent (p. ex. Spring) ; le calcul des prochaines exécutions continue de fonctionner à la minute.
Dans chaque champ tu peux combiner ces symboles :
• * — n'importe quelle valeur. * * * * * = chaque minute.
• ? — pareil que * (« n'importe laquelle ») ; accepté par compatibilité.
• , — liste de valeurs isolées. 0 0 1,15 * * = les jours 1 et 15 à minuit.
• - — plage. 0 9 * * 1-5 = du lundi (1) au vendredi (5).
• */N — tous les N depuis le début de la plage. */5 * * * * = toutes les 5 minutes (0, 5, 10…).
• A-B/N — tous les N dans une plage. 0-30/10 * * * * = aux minutes 0, 10, 20 et 30.
Tu peux les mélanger dans le même champ avec des virgules : 0,30 9-18 * * * = à l'heure pile et à la demie, de 9 à 18 h.
Attention : cet outil ne fonctionne qu'avec des nombres. Il n'accepte pas les noms (MON, JAN) ni les jokers avancés L, W ou # : si tu les utilises, l'expression est marquée comme non valide.
En haut, vous avez des boutons de préréglage qui remplissent l'expression en un clic (chaque minute, toutes les 5/15 min, chaque heure, quotidien à minuit, L–V à 9h, jour 1 du mois, dimanches à 3h, chaque trimestre).
Vous pouvez aussi écrire un alias avec @ au lieu des 5 champs :
• @hourly = 0 * * * *
• @daily / @midnight = 0 0 * * *
• @weekly = 0 0 * * 0 (dimanches à minuit)
• @monthly = 0 0 1 * * (jour 1 à minuit)
• @yearly / @annually = 0 0 1 1 * (1er janvier)
Lors de la validation, l'alias se développe automatiquement en ses 5 champs.
Si tu ne veux pas écrire la syntaxe, construis-la en cliquant. Chaque champ (minute, heure, jour de la semaine, jour du mois, mois) est une grille de cases : clique celles que tu veux inclure et l'expression se met à jour instantanément dans la case au-dessus.
• Une case sans rien de sélectionné (ou avec tout sélectionné) équivaut à *, « n'importe quelle valeur ».
• Le bouton effacer de chaque champ le remet à *.
• Le résumé à côté de chaque champ te montre la valeur actuelle (p. ex. 0,30 ou les noms de mois/jour).
• L'interrupteur 6 champs ajoute la grille des secondes.
Ça marche dans les deux sens : si tu écris l'expression à la main, la grille se synchronise pour la refléter.
• Jour du mois et jour de la semaine ensemble : si vous restreignez les deux à la fois (aucun n'est *), cet outil ne se déclenche que quand les deux coïncident. Par exemple 0 0 13 * 5 s'exécute les jours 13 qui tombent en plus un vendredi. Laissez l'un des deux à * si vous voulez le comportement le plus habituel.
• Dimanche est 0 et 7 : * * * * 0 et * * * * 7 sont identiques.
• Nombres uniquement : pas de MON, JAN, L, W ni # (voir « Caractères spéciaux »).
• Les secondes ne changent pas le calcul : le 6ᵉ champ est conservé pour l'export, mais les prochaines exécutions se calculent à la minute.
• Heure locale : les dates affichées utilisent le fuseau horaire de votre appareil ; l'environnement où vous déployez peut en utiliser un autre (p. ex. UTC).