Calculez les prochaines exécutions d’une expression cron
Transformez une expression cron Unix à cinq champs en une liste concrète et ordonnée d’exécutions futures.
Lancer gratuitement
Indiquez la planification, un horodatage initial ISO 8601 et le nombre d’occurrences souhaité. Le calculateur refuse les expressions mal formées, applique les règles usuelles des listes, plages et pas, puis renvoie des horodatages UTC normalisés que vous pouvez vérifier, tester, conserver ou comparer avant de déployer une tâche planifiée. Le calcul est entièrement déterministe.
Prévisualisez une planification cron depuis un instant fixe
Une expression cron est concise, mais cette concision facilite les erreurs lors d’une revue de déploiement. Ce calculateur remplace l’interprétation visuelle par une suite précise d’horodatages. Saisissez les cinq champs dans l’ordre traditionnel : minute, heure, jour du mois, mois et jour de la semaine. Fournissez ensuite un horodatage initial ISO 8601 terminé par Z ou doté d’un décalage numérique explicite. Chaque occurrence renvoyée est strictement postérieure à cet instant et normalisée en UTC ; une requête identique produit donc le même résultat dans le navigateur, un test ou un serveur. Ce point de départ explicite est essentiel pour contrôler une planification près de minuit, d’un changement de mois, d’une année bissextile ou d’un changement de décalage. Vous pouvez demander entre une et cinquante occurrences. La réponse ne contient que les dates ordonnées, adaptées à un aperçu, une fixture ou une comparaison directe dans une étape de publication automatisée. L’horloge actuelle n’est jamais consultée.
Maîtrisez les règles cron à cinq champs prises en charge
Chaque champ accepte un astérisque, un nombre isolé, une liste séparée par des virgules, une plage inclusive ou un pas. Des expressions telles que */15, 1-5, 0,30 et 2-10/2 fonctionnent donc sans option particulière. Les minutes vont de 0 à 59, les heures de 0 à 23, les jours du mois de 1 à 31, les mois de 1 à 12 et les jours de la semaine de 0 à 7 ; 0 et 7 désignent tous deux le dimanche. Cette capacité applique la relation Unix courante entre les deux champs de jour : lorsque les deux sont restreints, une date convient si l’un ou l’autre correspond. Si l’un vaut astérisque, l’autre détermine la date. La syntaxe exclut volontairement les secondes, les années, les noms tels que MON et les extensions propres à certains fournisseurs comme L, W, ? ou #. Refuser une forme non prise en charge est plus sûr que de lui attribuer silencieusement un sens différent de celui du planificateur final.
Exploitez les résultats dans vos revues, tests et opérations
Un aperçu de planification est utile chaque fois qu’une chaîne cron passe d’une personne à un système. Dans une interface de configuration, affichez plusieurs occurrences UTC avant l’enregistrement de la tâche. En intégration continue, comparez la séquence produite à une fixture approuvée afin qu’une modification de fréquence ne se dissimule pas dans une petite retouche. Pendant l’analyse d’un incident, placez le départ juste avant la période concernée pour déterminer si l’expression configurée pouvait produire les exécutions observées. Le calcul est local et déterministe : aucun service réseau, état conservé, nombre aléatoire ou fuseau horaire de la machine n’intervient. Un nombre de champs incorrect, une valeur hors limites, une plage descendante, un pas nul, une date impossible ou un symbole non admis produit une erreur d’entrée explicite. L’API coûte $0.002 par requête, tandis que l’outil du navigateur réalise localement le même calcul. Les valeurs UTC canoniques sont directement comparables par vos programmes.
Cas d’usage
Contrôlez une planification avant déploiement
Listez les prochaines exécutions pendant la revue et repérez un champ, une plage ou une fréquence erronés avant d’activer la tâche.
Créez un aperçu de planification
Affichez des heures UTC concrètes près d’un éditeur cron afin que l’utilisateur confirme le comportement de sa configuration.
Préparez des fixtures de test déterministes
Produisez les occurrences attendues depuis un instant fixe et comparez-les dans vos tests sans consulter l’horloge actuelle.
Questions fréquentes
Quel format cron est pris en charge ?
Le calculateur accepte les expressions cron Unix traditionnelles à cinq champs : minute, heure, jour du mois, mois et jour de la semaine.
Les résultats incluent-ils l’horodatage initial ?
Non. Chaque résultat est strictement postérieur à l’instant fourni, même si celui-ci tombe exactement sur une minute planifiée.
Quel fuseau horaire est utilisé ?
Le décalage numérique de l’horodatage initial est respecté et toutes les exécutions sont renvoyées en UTC avec le suffixe Z. Les champs cron sont évalués en UTC.
Que se passe-t-il si l’expression cron est mal formée ?
La requête échoue avec une erreur d’entrée qui décrit le champ ou la valeur incorrecte. Le calculateur ne corrige ni ne devine jamais une expression.
Combien coûte une requête API ?
Chaque requête API coûte $0.002. Le même calcul peut également être exécuté localement dans le navigateur.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/web/cron-next-runs \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"cron_expression":"30 9 * * 1-5","start_timestamp":"2026-07-24T12:00:00Z"}'const res = await fetch("https://api.kit.forhosting.com/web/cron-next-runs", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"cron_expression": "30 9 * * 1-5",
"start_timestamp": "2026-07-24T12:00:00Z"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/cron-next-runs",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"cron_expression": "30 9 * * 1-5",
"start_timestamp": "2026-07-24T12:00:00Z"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/cron-next-runs", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"cron_expression":"30 9 * * 1-5","start_timestamp":"2026-07-24T12:00:00Z"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"cron_expression":"30 9 * * 1-5","start_timestamp":"2026-07-24T12:00:00Z"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/cron-next-runs", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"cron_expression": "30 9 * * 1-5",
"start_timestamp": "2026-07-24T12:00:00Z"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.cron_next_runs",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_items | 50 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |