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.

Formato
Ejemplos comunes

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.

Frecuencia
Días
0 9 * * 1-5A las 09:00, de lunes a viernes

Qué 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.

CampoValores
Minuto0 a 59
Hora0 a 23
Día del mes1 a 31
Mes1 a 12 o JAN a DEC
Día de la semana0 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.