CalcOpenly
Español

Analizador y explicador de expresiones cron

Interpreta una expresión cron de cinco campos y muestra sus próximas ejecuciones a partir de una fecha y hora, en UTC.

Redactado con herramientas de redacción con IAActualizado Ejemplos verificados: 7

minuto hora día-del-mes mes día-de-la-semana, por ejemplo 30 2 * * 1; o @hourly, @daily, @weekly, @monthly, @yearly.
= 2026-11-12
Solo se muestran ejecuciones posteriores a este instante.
Más opciones
Probar
Próxima ejecución
jue 2026-11-12 09:00 UTC
Próxima ejecución: jue 2026-11-12 09:00 UTC
En lenguaje sencillo
Cada 15 minutos, durante las horas 09 a 17, días de la semana: lunes a viernes
Próximas ejecuciones
jue 2026-11-12 09:00 UTC jue 2026-11-12 09:15 UTC jue 2026-11-12 09:30 UTC jue 2026-11-12 09:45 UTC jue 2026-11-12 10:00 UTC jue 2026-11-12 10:15 UTC jue 2026-11-12 10:30 UTC jue 2026-11-12 10:45 UTC jue 2026-11-12 11:00 UTC jue 2026-11-12 11:15 UTC
Tiempo hasta la próxima ejecución
9 h
Ejecuciones en cada día válido
36
Las horas están en UTC. El servicio cron usa la zona horaria de su servidor (o CRON_TZ); conviértelas si el servidor no está en UTC.

Cada 15 minutos, durante las horas 09 a 17, días de la semana: lunes a viernes. La siguiente ejecución tras el inicio es jue 2026-11-12 09:00 UTC, seguida de jue 2026-11-12 09:15 UTC.

Siguientes ejecuciones

09:00: 2026-11-1209:002026-11-1209:15: 2026-11-1209:152026-11-1209:30: 2026-11-1209:302026-11-1209:45: 2026-11-1209:452026-11-1210:00: 2026-11-1210:002026-11-1210:15: 2026-11-1210:152026-11-1210:30: 2026-11-1210:302026-11-1210:45: 2026-11-1210:452026-11-1211:00: 2026-11-1211:002026-11-1211:15: 2026-11-1211:152026-11-12
Próximas ejecuciones (UTC) Filas: 10
#Ejecución
1jue 2026-11-12 09:00 UTC
2jue 2026-11-12 09:15 UTC
3jue 2026-11-12 09:30 UTC
4jue 2026-11-12 09:45 UTC
5jue 2026-11-12 10:00 UTC
6jue 2026-11-12 10:15 UTC
7jue 2026-11-12 10:30 UTC
8jue 2026-11-12 10:45 UTC
9jue 2026-11-12 11:00 UTC
10jue 2026-11-12 11:15 UTC
Cómo se calcula S
  1. Minuto: */15

    Valores (4): 0, 15, 30, 45.

  2. Hora: 9-17

    Valores (9): 9, 10, 11, 12, 13, 14, 15, 16, 17.

  3. Día del mes: *

    Todos los valores del campo día del mes.

  4. Mes: *

    Todos los valores del campo mes.

  5. Día de la semana: MON-FRI

    Valores (5): lun, mar, mié, jue, vie.

  6. Combinar los dos campos de día

    Al menos un campo de día empieza por *, así que el día debe coincidir con ambos (* coincide con todo).

  7. Buscar hacia adelante

    A partir de 2026-11-12 00:00 UTC, se comprueba cada día y después cada hora y minuto coincidentes hasta encontrar 10 ejecuciones.

Acerca de Analizador y explicador de expresiones cron

Una expresión cron tiene cinco campos: minuto (0–59), hora (0–23), día del mes (1–31), mes (1–12 o JAN–DEC) y día de la semana (0–7 o SUN–SAT, donde 0 y 7 representan el domingo). Cada campo admite un valor, una lista separada por comas, un intervalo con guion o un paso con barra. El analizador expande cada campo a su conjunto de valores y recorre los días futuros buscando los minutos que coinciden con los cinco campos.

La expresión inicial, */15 9-17 * * MON-FRI, se ejecuta cada 15 minutos de 09:00 a 17:45 entre semana: 36 veces por cada día válido. Si el inicio es la medianoche del jueves 15 de enero de 2026, la primera ejecución será a las 09:00 de esa mañana.

Cuando se restringen tanto el día del mes como el día de la semana, cron se ejecuta en los días que coincidan con cualquiera de ellos, según crontab(5). Aquí las horas son UTC; un servicio cron usa la zona horaria de su servidor o CRON_TZ en cronie.

Leer una expresión cron

Una expresión cron tiene cinco campos que se leen de izquierda a derecha: minuto, hora, día del mes, mes y día de la semana. Un asterisco significa «todos los valores». 30 2 * * 1 se ejecuta a las 02:30 todos los lunes, y */15 9-17 * * MON-FRI se ejecuta cada 15 minutos de 09:00 a 17:45 en días laborables, 36 veces al día.

El analizador traduce la expresión a lenguaje corriente, calcula la próxima ejecución a partir de una fecha y hora de inicio en UTC, lista hasta 50 ejecuciones siguientes y cuenta cuántas caen en cada día válido. Con la expresión inicial y un inicio el jueves 15 de enero de 2026 a las 00:00 UTC, la próxima ejecución es jue 2026-01-15 09:00 UTC, nueve horas después, y el día tiene 36 ejecuciones.

Los cinco campos

  1. Minuto: 0–59
  2. Hora: 0–23
  3. Día del mes: 1–31
  4. Mes: 1–12, o JAN–DEC
  5. Día de la semana: 0–7, o SUN–SAT; tanto 0 como 7 son domingo

Cada campo admite * para todos los valores, un número suelto, una lista separada por comas (5,20,50), un intervalo con guion (9-17) o un paso con barra (*/15, 10-40/15). Los nombres de meses y días son las abreviaturas inglesas de tres letras, y da igual escribirlas en mayúsculas o minúsculas.

El manual crontab(5) de cronie y Vixie cron define esta gramática, que es la que siguen la mayoría de los crontab de Linux.

Programaciones habituales

  • Cada 5 minutos: */5 * * * *, 288 ejecuciones al día
  • Cada hora en punto: 0 * * * *, o @hourly
  • Todos los días a medianoche: 0 0 * * *, o @daily
  • Todos los días a las 02:30: 30 2 * * *
  • Los días laborables a las 09:00: 0 9 * * 1-5
  • Todos los domingos a medianoche: 0 0 * * 0, o @weekly
  • El día 1 de cada mes a medianoche: 0 0 1 * *, o @monthly
  • Cada 1 de enero a medianoche: 0 0 1 1 *, o @yearly

Cómo funcionan los pasos

Un paso cuenta desde el principio de su intervalo y vuelve a empezar cada hora o cada día. */15 en el campo de minutos significa 0, 15, 30 y 45, y 10-40/15 significa 10, 25 y 40.

Como los pasos se reinician, no siempre dan intervalos regulares. */35 * * * * se ejecuta en los minutos 0 y 35, así que las esperas alternan entre 35 y 25 minutos.

0 */5 * * * se ejecuta a las 00:00, 05:00, 10:00, 15:00 y 20:00, y después solo espera 4 horas hasta la medianoche. Para que un paso empiece en otro valor hay que darle un intervalo: 1-59/5 se ejecuta en los minutos 1, 6, 11 y así sucesivamente.

Cuando los dos campos de día están restringidos

Si el día del mes y el día de la semana están restringidos a la vez, cron se ejecuta cuando coincide cualquiera de los dos. 0 12 1 * MON se ejecuta a mediodía el día 1 de cada mes y también todos los lunes, no solo los lunes que caen en día 1.

En cronie y Vixie cron, un campo de día que empieza por * convierte esa regla en una condición conjunta. Por eso 0 0 */2 * FRI solo se ejecuta los viernes de fecha impar, ya que */2 cuenta los días 1, 3, 5 y siguientes. La calculadora aplica la misma regla y lo explica en el paso «Combinar los dos campos de día».

Próximas ejecuciones de cinco programaciones

EscenarioPrimera ejecución siguienteEjecuciones por día válido
Predeterminadojue 2026-01-15 09:00 UTC36
Cada cinco minutosjue 2026-01-15 12:40 UTC288
Días bisiestosmar 2028-02-29 00:00 UTC1
Día del mes o luneslun 2026-01-19 12:00 UTC1
Paso con asterisco en el díavie 2026-01-23 00:00 UTC1

«Predeterminado» es */15 9-17 * * MON-FRI. Todas las filas parten del 15 de enero de 2026 a las 00:00 UTC salvo «Cada cinco minutos», que parte de las 12:35 y se ejecuta por primera vez a las 12:40, porque la lista empieza estrictamente después del inicio.

«Días bisiestos» es 0 0 29 FEB *, y las dos últimas filas son los ejemplos de campos de día del apartado anterior. La última columna cuenta las horas de ejecución dentro de un día que cumple la expresión, aunque la mayoría de los años no tengan 29 de febrero.

Zonas horarias y cambio de hora

Estas horas están en UTC. Un servicio cron usa la zona horaria local del servidor, salvo que el crontab defina CRON_TZ (en cronie). La calculadora muestra ese recordatorio con cada resultado.

El día del cambio de hora, una tarea programada a las 02:30 en hora local puede saltarse o desplazarse. Los servidores que funcionan en UTC evitan el problema.

Errores frecuentes con cron

  • Escribir * 9 * * * para «a las 9 de la mañana». Esa expresión se ejecuta cada minuto de 09:00 a 09:59, 60 veces. La forma correcta es 0 9 * * *.
  • Usar seis campos. Quartz y Spring anteponen un campo de segundos, como en 0 0/15 * * * ?. Crontab admite cinco campos, y ?, L, W y # pertenecen a esos otros dialectos.
  • Intervalos que dan la vuelta. Aquí 22-2 se rechaza; para cubrir de 22:00 a 02:00 hay que escribir 22-23,0-2.
  • Un % sin escapar en la orden. Crontab convierte el % de la parte de la orden en un salto de línea, así que date +%F debe escribirse date +\%F.
  • Fechas imposibles. 0 0 30 2 * nunca se ejecuta, porque febrero no tiene día 30, y la calculadora lo indica en lugar de devolver una fecha.

Sintaxis admitida y alcance de la búsqueda

  • Cinco campos, o una de las macros @hourly, @daily, @midnight, @weekly, @monthly, @yearly y @annually. @reboot no tiene una hora de calendario que listar.
  • Hasta 50 ejecuciones siguientes, buscadas en un ciclo gregoriano completo de 400 años, de modo que reglas como que 2100 no sea bisiesto quedan cubiertas.

Para la distancia entre dos fechas de calendario, usa la calculadora de diferencia entre fechas.

Ejemplos resueltos

Cada 15 minutos en horario de oficina

Expresión cron
*/15 9-17 * * MON-FRI
Fecha de inicio (UTC)
2026-01-15
Hora de inicio (UTC)
00:00
Próxima ejecución
jue 2026-01-15 09:00 UTC
Próximas ejecuciones
jue 2026-01-15 09:00 UTC jue 2026-01-15 09:15 UTC jue 2026-01-15 09:30 UTC jue 2026-01-15 09:45 UTC jue 2026-01-15 10:00 UTC jue 2026-01-15 10:15 UTC jue 2026-01-15 10:30 UTC jue 2026-01-15 10:45 UTC jue 2026-01-15 11:00 UTC jue 2026-01-15 11:15 UTC
Ejecuciones en cada día válido
36
Tiempo hasta la próxima ejecución
9 h

Fuente de comprobación: 4 minutos × 9 horas = 36 ejecuciones al día; 09:00 − 00:00 = 32400 s

Cada día a las 09:00, con inicio justo a las 09:00 (caso límite)

Expresión cron
0 9 * * *
Fecha de inicio (UTC)
2026-01-15
Hora de inicio (UTC)
09:00
Número de ejecuciones que mostrar
3
Próxima ejecución
vie 2026-01-16 09:00 UTC
En lenguaje sencillo
A las 09:00, todos los días
Próximas ejecuciones
vie 2026-01-16 09:00 UTC sáb 2026-01-17 09:00 UTC dom 2026-01-18 09:00 UTC

Fuente de comprobación: Comprobación del ejemplo: crontab(5): las ejecuciones son posteriores al inicio

Solo el 29 de febrero

Expresión cron
0 0 29 2 *
Fecha de inicio (UTC)
2026-01-15
Hora de inicio (UTC)
00:00
Número de ejecuciones que mostrar
3
Próxima ejecución
mar 2028-02-29 00:00 UTC
Próximas ejecuciones
mar 2028-02-29 00:00 UTC dom 2032-02-29 00:00 UTC vie 2036-02-29 00:00 UTC

Fuente de comprobación: Cálculo independiente

Día 1 o lunes (ambos campos de día restringidos)

Expresión cron
0 12 1 * MON
Fecha de inicio (UTC)
2026-01-15
Hora de inicio (UTC)
00:00
Número de ejecuciones que mostrar
5
Próximas ejecuciones
lun 2026-01-19 12:00 UTC lun 2026-01-26 12:00 UTC dom 2026-02-01 12:00 UTC lun 2026-02-02 12:00 UTC lun 2026-02-09 12:00 UTC

Fuente de comprobación: Cálculo independiente

Preguntas

¿Qué significa */5 en una expresión cron?

*/5 selecciona cada quinto valor del campo a partir de su primer valor. En el campo de minutos se ejecuta en 0, 5, 10… 55, es decir, 12 veces por hora. El paso también puede seguir a un intervalo: 10-30/10 da los minutos 10, 20 y 30. Los pasos se reinician cada hora: */7 se ejecuta en el minuto 56 y luego en el minuto 0.

¿Cómo ejecuto una tarea cron cada día a medianoche?

Escribe 0 0 * * *, que significa el minuto 0 de la hora 0 de todos los días, o usa @daily, que cronie y Vixie cron expanden a esos mismos cinco campos. Para las 02:30 diarias, escribe 30 2 * * *; para las 09:00 entre semana, 0 9 * * 1-5. La hora se interpreta en la zona del servidor salvo que el crontab defina CRON_TZ.

¿Cómo se combinan el día del mes y el día de la semana en cron?

Si ambos campos están restringidos, cron se ejecuta cuando coincide cualquiera: 0 12 1 * MON se activa al mediodía del día 1 de cada mes y de cada lunes. En Vixie cron y cronie, si un campo de día empieza por *, se exige que coincidan ambos. Por eso 0 0 */2 * FRI solo se ejecuta los viernes cuya fecha sea impar, como el día 23.

¿Por qué mi expresión cron tiene 6 o 7 campos?

El cron estándar usa 5 campos. Quartz y Spring añaden un campo de segundos al principio, para un total de 6, y Quartz admite un año opcional como séptimo. Por tanto, una expresión como 0 0/15 * * * ? pertenece a esas herramientas, no a crontab; el marcador ? es sintaxis de Quartz. Este analizador acepta crontab de 5 campos y las macros @hourly, @daily, @weekly, @monthly y @yearly.

¿Puede cron ejecutar una tarea cada 30 segundos?

No directamente: la unidad mínima de crontab es 1 minuto porque su primer campo es el minuto. Una solución habitual son dos entradas, * * * * * job y * * * * * sleep 30; job, que inician la tarea en los segundos 0 y 30 de cada minuto. Si necesitas más precisión, los temporizadores systemd admiten programaciones OnCalendar con resolución de segundos.

Acerca de esta calculadora

run  ⟺  m∈M∧h∈H∧ month∈Mo∧dayday={DOM∨DOWboth≠∗DOM∧DOWotherwise\begin{aligned} \text{run} &\iff m \in M \land h \in H \\ &\qquad \land\ \text{month} \in Mo \land \text{day} \\ \text{day} &= \begin{cases} \text{DOM} \lor \text{DOW} & \text{both} \ne * \\ \text{DOM} \land \text{DOW} & \text{otherwise} \end{cases} \end{aligned}

Fuentes

  1. POSIX.1-2017 (IEEE Std 1003.1) — crontab utility, input file format
  2. crontab(5) — cronie / Vixie cron: ranges, steps, names, @ macros and the day-of-month / day-of-week rule

Verificado con las referencias

Esta calculadora incluye 7 ejemplos resueltos con respuestas de fuentes independientes. Forman parte del conjunto de pruebas y también puedes ejecutarlos aquí.

Pon esta calculadora en tu sitio

Pega esto donde quieras que aparezca la calculadora. Su uso es gratuito, se mantiene al día con las correcciones que hacemos aquí y el crédito que aparece debajo enlaza con la versión completa, para que tus lectores puedan consultarla.

Altura
Vista previa de la inserción

Conserva el crédito. Es la única condición y es lo que mantiene gratuitas estas calculadoras.