Generador y explicador de expresiones cron
Pega una expresión cron y mira qué hace en español, campo por campo, y cuándo se ejecuta en la zona horaria que elijas. Funciona con crontab, Kubernetes, GitHub Actions y Quartz. También puedes armar la expresión a partir del horario que quieres.
Escribe o pega una expresión
O elige uno de los ejemplos. La explicación y las próximas ejecuciones aparecen aquí.
Armar una expresión
Elige la frecuencia y la hora. La expresión sale en el formato elegido arriba.
0 9 * * 1-5A las 09:00, de lunes a viernesQué es una expresión cron
Es una línea de campos separados por espacios que indica cuándo se ejecuta un job. El crontab de Linux, el CronJob de Kubernetes y el schedule de GitHub Actions usan 5 campos. Quartz, un planificador de Java, agrega los segundos al principio y un año opcional al final.
Los 5 campos del cron estándar
El orden es siempre minuto, hora, día del mes, mes y día de la semana. 30 9 * * 1 significa minuto 30, hora 9, cualquier día del mes, cualquier mes, lunes.
| Campo | Valores |
|---|---|
| Minuto | 0 a 59 |
| Hora | 0 a 23 |
| Día del mes | 1 a 31 |
| Mes | 1 a 12 o JAN a DEC |
| Día de la semana | 0 a 6 o SUN a SAT (0 es domingo) |
Asterisco, coma, guion y barra
- * acepta cualquier valor del campo.
- La coma separa valores: 0,30 en el minuto se ejecuta en los minutos 0 y 30.
- El guion marca un rango: 1-5 en el día de la semana va de lunes a viernes.
- La barra define el paso: */15 en el minuto se ejecuta cada 15 minutos, y 9-17/2 en la hora se ejecuta a las 9, 11, 13, 15 y 17.
Qué cambia en Quartz
El primer campo son los segundos, y el domingo vale 1 (el sábado es 7). Uno de los campos de día tiene que ser ?, que significa sin valor. Quartz también acepta L para el último día del mes, LW para el último día hábil, 15W para el día hábil más cercano al 15, 6L para el último viernes y 6#3 para el tercer viernes del mes.
Zona horaria y horario de verano
La expresión no indica la zona horaria. Crontab usa la zona del servidor, GitHub Actions usa UTC y Kubernetes usa la zona del controller, salvo que spec.timeZone esté definido. Para ejecutar a las 9:00 de Ciudad de México (UTC-6) en un planificador en UTC, la hora es 15. En las zonas con horario de verano, una hora puede no existir el día en que el reloj se adelanta, o repetirse cuando se atrasa. La lista de ejecuciones marca esos casos.
Preguntas frecuentes sobre expresiones cron
Lo que pregunta quien programa jobs en crontab, Kubernetes, GitHub Actions y Quartz.