Aller au contenu

Cron Expression Tester · Scheduling

Lisez n’importe quelle expression cron d’un coup d’œil.

Collez une ligne crontab comme */15 9-17 * * 1-5 pour obtenir une explication en clair de ce qu’elle fait ainsi que les prochaines exécutions — entièrement dans votre navigateur, gratuitement, sans inscription.

Fonctionne dans votre navigateur Sans inscription Gratuit et ouvert Mis à jour le 22 juil. 2026

Bac à sable du Cron Expression Tester

Five fields — minute, hour, day of month, month, day of week. Macros like @daily are supported too.

Result

Type a cron expression or pick an example to see a plain-English description and the next run times here.

Verify an AI's answer

Paste what ChatGPT or Claude told you — this recomputes it exactly, locally. Why AI needs checking →

Claim 1
Claim 2
Claim 3

Enter a cron expression above, then paste in what an AI told you to check it.

Le manque

Cinq champs, cent façons de les mal lire.

La syntaxe de cron est réputée pour sa concision. La différence entre */5 et 5, ou entre une tâche qui s’exécute une fois par jour et une qui s’exécute chaque minute d’une journée, tient à un seul caractère — et la règle classique OR entre jour du mois et jour de la semaine fait trébucher même les ingénieurs chevronnés. Une coquille ici ne déclenche pas d’erreur ; elle s’exécute simplement, en silence, au mauvais moment.

Ce testeur convertit n’importe quelle expression cron en clair — une phrase lisible que vous pouvez réellement vérifier — puis affiche les prochaines exécutions pour que la planification soit concrète plutôt qu’abstraite. C’est la vérification rapide qui a sa place entre l’écriture d’une ligne crontab et sa mise en production — entièrement dans le navigateur, sans rien à installer.

C’est aussi l’antidote au réflexe de demander à une IA : la règle OR entre jour du mois et jour de la semaine fait constamment trébucher les modèles de langage, si bien qu’une planification à l’air plausible peut se déclencher les mauvais jours. Ce testeur applique la vraie sémantique de cron et affiche les véritables prochaines exécutions — la référence exacte à laquelle confronter toute ligne crontab suggérée par une IA.

Nouveau dans ce format ? Passez à la syntaxe ou essayez le bac à sable interactif ci-dessus.

Le pipeline

Comment ça marche.

Quatre étapes déterministes s’exécutent de bout en bout à chaque frappe — toutes au sein de votre onglet de navigateur, à chaque fois.

  1. Découper la ligne en jetons.

    Votre expression est scindée en ses cinq champs — ou développée à partir d’une @macro telle que @daily — exactement comme cron la lit.

  2. Analyser chaque champ.

    Chaque champ est décodé en l’ensemble des valeurs qu’il correspond : plages, pas, listes et mois ou jours de la semaine nommés se résolvent tous en nombres concrets.

  3. Décrire en clair.

    Les ensembles correspondants sont composés en une phrase lisible, y compris la règle OR jour du mois / jour de la semaine lorsque les deux sont restreints.

  4. Projeter les prochaines exécutions.

    À partir de maintenant dans votre fuseau horaire, la planification est parcourue en avant pour lister les prochaines fois où elle se déclenchera.

Syntaxe cron

Cinq champs, quelques opérateurs.

Une ligne crontab standard se compose de cinq champs séparés par des espaces, lus de gauche à droite. Chacun accepte le même petit ensemble d’opérateurs, et une poignée de @macros remplacent les planifications les plus courantes.

Les cinq champs

Minute, heure, jour du mois, mois et jour de la semaine — dans cet ordre. Un * signifie « chaque valeur » pour ce champ.

crontab
┌───────────── minute        (0 - 59)
│ ┌─────────── hour          (0 - 23)
│ │ ┌───────── day of month  (1 - 31)
│ │ │ ┌─────── month         (1 - 12)
│ │ │ │ ┌───── day of week    (0 - 6)
│ │ │ │ │
*/15 9-17 * * 1-5
Minute
0–59
Heure
0–23
Jour du mois
1–31
Mois
1–12 or JAN–DEC
Jour de la semaine
0–7 or SUN–SAT

Opérateurs & macros

Plages, pas, listes et noms se combinent à l’intérieur de n’importe quel champ. Les @macros sont des abréviations exactes — chacune se développe en une simple ligne à cinq champs.

operators
# Operators, by example
*        every value           (every minute, every hour, …)
5        a single value        (at minute 5)
1-5      a range               (Monday through Friday)
*/15     a step over a range   (every 15th minute)
0,30     a list                (on the hour and the half hour)
MON-FRI  named weekdays        (same as 1-5)
macros
@yearly    →  0 0 1 1 *     once a year, at midnight on Jan 1
@monthly   →  0 0 1 * *     once a month, at midnight on the 1st
@weekly    →  0 0 * * 0     once a week, at midnight on Sunday
@daily     →  0 0 * * *     once a day, at midnight
@hourly    →  0 * * * *     once an hour, at minute 0

Étape suivante

Vous quittez crontab ? Convertissez-le en minuterie systemd.

Une fois qu’une planification se lit correctement ici, le Cron to systemd Converter transforme la même ligne en une unité .timer et .service équivalente — avec une expression OnCalendar et des notes de migration pour que le comportement soit repris proprement.

backup.timer
[Timer]
# from:  */15 9-17 * * 1-5
OnCalendar=Mon..Fri *-*-* 09..17:00/15
Persistent=true

FAQ

Vos questions, nos réponses.

Appuyez sur une question pour afficher la réponse.

C’est un outil gratuit, fonctionnant dans le navigateur, qui lit n’importe quelle expression cron de type crontab, la traduit en une description en clair et calcule les prochaines fois où elle se déclenchera. Collez une ligne comme « */15 9-17 * * 1-5 » et vous voyez instantanément « Toutes les 15 minutes, entre 09:00 et 17:00, du lundi au vendredi » ainsi que les horodatages des prochaines exécutions — sans inscription, sans aller-retour serveur.

Non. L’analyse, l’explication en clair et le calcul des prochaines exécutions ont tous lieu côté client, dans votre onglet. Rien n’est envoyé à un serveur, il n’y a pas de compte et aucune journalisation. Vous pouvez coller en toute sécurité des planifications issues de systèmes internes ou sensibles.

Le format crontab standard à cinq champs — minute, heure, jour du mois, mois, jour de la semaine — y compris les plages (1-5), les pas (*/15), les listes (1,15,30), les noms (JAN, MON) et les @macros courantes (@hourly, @daily, @weekly, @monthly, @yearly, @midnight). Les extensions propres à certains fournisseurs, comme les champs de secondes ou les qualificateurs « L »/« W »/« # », ne font pas partie de la spécification crontab classique et sont signalées plutôt que devinées en silence.

À partir de l’heure actuelle dans le fuseau horaire que vous avez choisi, le testeur parcourt la planification champ par champ et liste les prochaines occurrences. Comme tout s’exécute localement, les horodatages reflètent l’horloge de votre machine — pratique pour vérifier la cohérence d’une planification avant de la confier à un serveur dont le fuseau horaire peut différer.

Le cron classique traite le jour du mois et le jour de la semaine comme un OR lorsque les deux sont restreints : la tâche s’exécute lorsque l’un ou l’autre des champs correspond, et non uniquement lorsque les deux correspondent. C’est un piège bien connu. Le testeur le rend explicite dans la description en clair, de sorte qu’une ligne du type « 0 0 13 * 5 » ne vous surprenne pas en production.

Oui — une fois qu’une planification se lit correctement ici, rendez-vous sur le Cron to systemd Converter pour générer une unité .timer et .service équivalente avec une expression OnCalendar et des notes de migration. Les deux outils sont conçus pour être utilisés l’un à la suite de l’autre.

L’expression de pas « */5 » dans le champ des minutes signifie « toutes les 5 minutes », de sorte que la tâche se déclenche aux minutes 0, 5, 10, 15 … 55 de chaque heure — autrement dit toutes les 5 minutes en continu. Le même schéma de pas s’applique aux autres champs : « */15 » dans le champ des minutes se déclenche toutes les 15 minutes, à :00, :15, :30 et :45. Collez l’expression dans le testeur pour obtenir instantanément la description lisible et les prochaines exécutions.

Les macros sont des alias abrégés qui commencent par « @ ». Le testeur prend en charge @hourly (0 * * * *), @daily et @midnight (tous deux 0 0 * * *), @weekly (0 0 * * 0), @monthly (0 0 1 * *), @yearly et @annually (tous deux 0 0 1 1 *), et @reboot (une fois au démarrage du démon, sans déclenchements récurrents). Chaque macro est développée en son expression équivalente à cinq champs avant d’être analysée, de sorte que la description en clair et la sortie des prochaines exécutions reflètent la planification complète développée.

Collez n’importe quelle expression cron standard à 5 champs et le testeur vérifie qu’elle comporte le bon nombre de champs et que chaque valeur se situe dans sa plage valide — minute 0-59, heure 0-23, jour du mois 1-31, mois 1-12, jour de la semaine 0-7. Si la syntaxe est valide, il affiche la signification en clair et les prochaines exécutions ; si un champ est hors plage ou mal formé, le message d’erreur identifie le champ fautif pour que vous puissiez le corriger. Aucun compte n’est requis et rien ne quitte votre navigateur.

More free, private DevOps tools.

Le Cron Expression Tester est l’un des outils de OpsCanopy — une canopée grandissante de validateurs, de convertisseurs et de testeurs basés sur le navigateur qui ne touchent jamais à un serveur.

Vous débutez avec Linux ?  Lire le guide Linux →

29 outils gratuits, tous utilisables hors ligne — opscanopy.com fonctionne sans inscription et sans rien téléverser.

Vous planifiez sous Linux ? Associez-le au Cron to systemd Converter, ou parcourez le répertoire complet des outils.

Non affilié à une quelconque implémentation de cron, ni approuvé par elle. Les noms de format sont utilisés uniquement pour décrire ce que cet outil lit. OpsCanopy est gratuit et ouvert.