Saltar al contenido

Intérprete de expresiones cron

Traduce una expresión cron a una frase y muestra hasta 20 próximas ejecuciones en la zona horaria que elijas. Lee 5 campos y también 6, con segundos delante.

5 campos

Descripción

A las 09:00, de lunes a viernes

Próximas ejecuciones

Zona horaria del navegador: UTC

Introduce una expresión válida para ver sus próximas ejecuciones.

Referencia de campos y chuleta

Referencia de campos y chuleta
CampoSignificadoValores
segundoSegundo (solo con 6 campos)0-59
minutoMinuto0-59
horaHora0-23
día del mesDía del mes1-31
mesMes1-12 o JAN-DEC
día de la semanaDía de la semana0-7 (0 y 7 significan domingo) o SUN-SAT

Los símbolos exclusivos de Quartz (L, W, #, ?) no son compatibles aquí: solo la sintaxis estándar de 5 o 6 campos.

Macros habituales

Ejemplos

Lo que introduces se procesa solo en este navegador y nunca se envía a un servidor. Cómo funciona

0 9 * * * significa cada día a las 09:00 en la zona horaria elegida

Escribe */15 9-17 * * 1-5 y obtendrás la frase «Cada 15 minutos, entre las 09:00 y las 17:59, de lunes a viernes» y, debajo, las fechas y horas en que se ejecutaría de verdad. Sirve para comprobar que una expresión dice lo que tú quieres antes de darla de alta en el servidor.

Cómo se usa

  1. Escribe la expresión en Expresión cron. De entrada trae 0 9 * * 1-5. La indicación de debajo te dice si se ha leído con «5 campos» o con «6 campos (segundos primero)».
  2. En Descripción aparece la expresión convertida en una frase. «Copiar expresión» copia la expresión ya normalizada; si has escrito una macro, copia su forma desarrollada en campos (por ejemplo, @daily → 0 0 * * *).
  3. En Próximas ejecuciones, fija la «Cantidad» (de 1 a 20) y la «Zona horaria». Verás las ejecuciones posteriores a este momento, con la fecha y la hora de esa zona.
  4. En Referencia de campos y chuleta, los botones de «Macros habituales» y de «Ejemplos» llevan esa expresión al cuadro de entrada.

Si la sintaxis está mal, se indica qué valor de qué campo falla. Con 60 * * * * aparece este mensaje: «60» en el campo minuto está fuera del rango permitido.

Sintaxis de los campos

Los campos se separan con espacios y tienen que ser 5 o 6. Si son 5, se leen en el orden minuto, hora, día del mes, mes y día de la semana; si son 6, el primero son los segundos.

Campo Valores
Segundo (solo con 6 campos) 0-59
Minuto 0-59
Hora 0-23
Día del mes 1-31
Mes 1-12 o JAN-DEC
Día de la semana 0-7 (0 y 7 significan domingo) o SUN-SAT

En cada campo se admiten estas formas:

  • *: todos los valores
  • 5: ese único valor
  • 1-5: un rango. Si empieza después de terminar (5-1), es un error
  • */15: un paso. En el campo del minuto son los minutos 0, 15, 30 y 45
  • 5/15: un paso con valor inicial. En el campo del minuto, cada 15 minutos a partir del 5 (minutos 5, 20, 35 y 50)
  • 10-40/10: un paso dentro de un rango. En el campo del minuto son los minutos 10, 20, 30 y 40
  • 1,15: una lista separada por comas, en la que se pueden mezclar las formas anteriores

Se leen siete macros. @yearly y @annually equivalen a 0 0 1 1 *; @monthly, a 0 0 1 * *; @weekly, a 0 0 * * 0; @daily y @midnight, a 0 0 * * *, y @hourly, a 0 * * * *. @reboot no se lee: significa «una vez al arrancar el sistema», y ahí no hay ninguna hora que calcular.

Si indicas a la vez el día del mes y el día de la semana

Cuando ninguno de los dos campos es *, la tarea no se ejecuta «los días que cumplen las dos condiciones», sino «los días que cumplen cualquiera de las dos». Es la regla del cron de Unix, tal como figura en el manual de crontab, y así se calculan también aquí las próximas ejecuciones.

0 0 13 * 5 no significa «viernes 13». Con la zona horaria UTC y calculando el 10 de octubre de 2026, las ejecuciones salen en este orden: 13 de octubre (martes), 16 de octubre (viernes) y 23 de octubre (viernes). Se ejecuta todos los días 13, caigan en el día que caigan, y todos los viernes, sea cual sea la fecha.

La descripción de esta expresión es «A las 00:00, el día 13 del mes, y el viernes», y puede leerse como si hicieran falta las dos condiciones. Por eso, con expresiones así aparece bajo la descripción un aviso de que la tarea se ejecuta los días que cumplen cualquiera de las dos condiciones. Las fechas reales las tienes en la lista de próximas ejecuciones.

Zonas horarias con cambio de hora (DST)

Si eliges una zona horaria con horario de verano, las ejecuciones de los días en que se cambia la hora no salen como de costumbre. Estos resultados están calculados con America/New_York y fechas de 2026.

  1. La hora que no existe el día en que empieza: el 8 de marzo el reloj salta de las 2 a las 3 de la madrugada y la franja de las 2 desaparece. 30 2 * * * (todos los días a las 2:30) se muestra ese día a las 3:30:00, y desde el día siguiente vuelve a las 2:30:00. No se omite: aparece desplazada una hora hacia delante.
  2. La hora que se repite el día en que termina: el 1 de noviembre la franja de la 1 de la madrugada ocurre dos veces. Una expresión con la hora fijada en un número, como 30 1 * * *, muestra ese día la 1:30:00 una sola vez. En cambio, una con * en la hora, como 0 * * * *, muestra la 1:00:00 dos veces.

Lo que haga un planificador real con estas horas depende de cada programa. Si tienes tareas que se ejecutan entre la 1 y las 3 de la madrugada, consulta también la documentación del cron de tu servidor.

Fuentes

Preguntas frecuentes

Con un paso que no divide a 60, como */7, ¿se ejecuta exactamente cada 7 minutos?

No. El paso vuelve a contarse desde el minuto 0 de cada hora. Mira las próximas ejecuciones de */7 * * * *: se ejecuta en los minutos 0, 7, 14, …, 49 y 56, y la siguiente es el minuto 0 de la hora siguiente. Entre el 56 y el 0 solo pasan 4 minutos. Los pasos en los campos de hora, día y mes funcionan igual: empiezan otra vez desde el principio del rango.

He escrito 0 0 30 2 * y aparece «Esa fecha no existe en el calendario, así que la tarea no se ejecutaría nunca.»

La sintaxis es correcta, pero esa fecha no existe. En 0 0 30 2 * todos los campos están dentro de su rango, pero el 30 de febrero no existe y no hay ningún día en que la tarea pueda ejecutarse. La herramienta lo señala como error y no muestra ni la descripción ni las próximas ejecuciones. Con una fecha que solo tienen algunos meses, como 0 0 31 * *, no hay error: se listan únicamente los meses con día 31.

¿Puedo escribir el día de la semana como MONDAY o en un idioma que no sea el inglés?

No. Los nombres solo se leen en inglés y con tres letras (de SUN a SAT, de JAN a DEC), sin distinguir mayúsculas de minúsculas. Si escribes MONDAY, sale el error «MONDAY» en el campo día de la semana no es un valor reconocido. Los nombres también valen en rangos como MON-FRI y en listas como mon,wed, pero los de los meses solo en el campo del mes y los de los días solo en el campo del día de la semana.

El servidor está en UTC y mi navegador en otra zona horaria. ¿Qué zona horaria elijo?

La del servidor donde se ejecuta el cron de verdad. Si calculas 0 9 * * 1-5 con «UTC», la lista muestra 9:00:00, y ese instante son las 6 de la tarde en una zona horaria nueve horas por delante de UTC (UTC+9). Si cambias a una zona horaria UTC+9, la lista sigue mostrando 9:00:00, pero ese instante son las 0:00 del mismo día en UTC. Las horas de la lista se muestran siempre en la zona horaria elegida, y al abrir la página viene seleccionada la que figura como «Zona horaria del navegador».

¿Puedo pegar sin cambios una expresión cron de Quartz o AWS?

A todo se le llama «expresión cron», pero cada sistema tiene su propia sintaxis. Esta herramienta solo lee los 5 campos del cron de Unix y la variante de 6 campos que les antepone los segundos. • Unix cron (crontab): 5 campos, que son minuto, hora, día del mes, mes y día de la semana. El día de la semana va de 0 a 7, y tanto el 0 como el 7 son domingo. • Quartz (planificador de Java): empieza por los segundos y admite un año al final, de modo que tiene 6 o 7 campos. El día de la semana va de 1 a 7 y el 1 es el domingo, así que los números van desplazados una posición respecto al cron de Unix. Usa símbolos que el cron de Unix no tiene: L (el último del mes o de la semana), W (el día laborable más cercano), # (6#3 es el tercer viernes) y ? (la marca para el campo que se deja sin especificar entre el día del mes y el día de la semana). • AWS EventBridge: 6 campos, que son minuto, hora, día del mes, mes, día de la semana y año. No tiene segundos y sí un año al final. El día de la semana es de 1 a 7 o de SUN a SAT, y uno de los dos campos de día (el del mes o el de la semana) tiene que llevar obligatoriamente ?. También usa L, W y #. • Otros planificadores en la nube: incluso los servicios con una sintaxis parecida a la del cron de Unix, como Google Cloud Scheduler, pueden diferir en los detalles. Una expresión de otro sistema pegada tal cual da error o se lee de otra forma. El ejemplo de la documentación de AWS 0 10 * * ? * (todos los días a las 10) tiene 6 campos, así que esta herramienta toma el primero por los segundos y el ?, que queda en quinto lugar, por un valor del campo del mes; el resultado es este error: «?» en el campo mes no es un valor reconocido. Las expresiones para Quartz o AWS compruébalas en la documentación o en la consola de ese servicio.

Software de código abierto utilizado: cronstrue (MIT), cron-parser (MIT), Luxon (MIT)

Última actualización: