Analizador de Expresiones Cron

Escribí una expresión cron de 5 campos (minuto, hora, día del mes, mes, día de la semana) para ver su descripción en lenguaje natural y las próximas ejecuciones. Soporta *, rangos (1-5), listas (1,15,30), pasos (*/15), nombres de mes/día (MON, JAN) y los atajos @daily, @hourly, @weekly, @monthly, @yearly. Todo se calcula en tu navegador.

Ejemplos rápidos

Campos

Minuto
Hora
Día del mes
Mes
Día de la semana

En palabras

Próximas ejecuciones

Calculadas usando la fecha y zona horaria de tu navegador. Si el cron corre en un servidor con otra zona horaria, las horas reales van a diferir.

    Preguntas frecuentes

    ¿Qué son los 5 campos de una expresión cron?

    En orden: 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-6, donde 0 es domingo, o SUN-SAT). El formato clásico de cron no incluye segundos; algunas herramientas (como algunos schedulers de Spring o Quartz) usan 6 campos agregando segundos al principio, pero esta herramienta trabaja con el formato estándar de 5 campos de Unix/Linux.

    ¿Qué significan *, /, - y , ?

    El asterisco (*) significa "cualquier valor". La barra (/) define un paso, por ejemplo */15 en minutos significa "cada 15 minutos". El guion (-) define un rango, por ejemplo 1-5 significa "del 1 al 5 inclusive". La coma (,) separa una lista de valores individuales, por ejemplo 1,15,30. Estos se pueden combinar, por ejemplo 10-30/5 significa "cada 5 unidades entre 10 y 30".

    ¿Qué pasa si restrinjo día del mes Y día de la semana a la vez?

    Cuando ambos campos están restringidos (ninguno de los dos es *), cron los combina con "OR", no con "AND": la tarea corre si se cumple cualquiera de los dos, no solo cuando se cumplen ambos. Por ejemplo, "0 0 1 * 1" corre tanto el día 1 de cada mes como todos los lunes, no solo cuando el día 1 cae lunes. Este comportamiento suele sorprender y es una fuente común de bugs en tareas programadas.

    ¿Qué significan @daily, @hourly, etc?

    Son atajos que representan expresiones cron completas: @yearly/@annually equivale a "0 0 1 1 *" (una vez al año), @monthly a "0 0 1 * *", @weekly a "0 0 * * 0", @daily/@midnight a "0 0 * * *" y @hourly a "0 * * * *". Son soportados por cron de Vixie/cronie y por systemd timers, pero no todos los sistemas los aceptan - si no estás seguro, es más portable usar la expresión de 5 campos equivalente.

    ¿Mi expresión se sube a algún servidor?

    No. El análisis, la descripción en palabras y el cálculo de próximas ejecuciones se hacen enteramente con JavaScript en tu navegador. Nada se envía a ningún servidor.