Generador y Explicador de Cron
Construye expresiones cron campo por campo, o pega una existente para obtener la explicación en español y los próximos cinco horarios de ejecución.
¿Qué es una expresión cron?
Una expresión cron es una agenda de cinco campos usada por programadores estilo Unix, sistemas de CI, CronJob de Kubernetes, AWS EventBridge, GitHub Actions y la mayoría de los runners modernos de tareas. Cada campo controla una unidad de tiempo — minuto, hora, día del mes, mes y día de la semana — y soporta cuatro abreviaciones: * (cualquiera), una lista separada por coma (0,15,30,45), un rango (1-5) y un paso (*/10). Combínalas y describes casi cualquier agenda recurrente sin escribir un calendario a mano.
Cómo usar este generador
Elige un preset para un punto de partida instantáneo, o construye la expresión campo por campo. Cada campo tiene cuatro modos: Todos emite *; Lista específica recibe valores separados por coma; Rango recibe un par inicio–fin; Paso recibe un intervalo (*/N) con offset opcional. La expresión y la descripción en español se actualizan en vivo. Para el camino inverso, suelta una cadena cron en la caja de parsing — la herramienta la decodifica a forma legible y muestra los próximos cinco horarios en tu zona local.
Referencia de campos
Minuto: 0–59. Hora: 0–23. Día del mes: 1–31. Mes: 1–12 (enero = 1). Día de la semana: 0–6 con domingo = 0 en cron Unix clásico — 7 también se acepta como domingo en la mayoría de parsers modernos. Cuando día del mes y día de la semana están ambos con valores distintos a *, el cron clásico dispara en CUALQUIERA de las condiciones (un OR lógico), lo que sorprende a muchos. Elige uno u otro para comportamiento predecible.
Preguntas frecuentes
¿Funciona con Quartz / Spring cron?
0 para volverlo Quartz, pero tokens especiales como L (último) y W (día hábil) son exclusivos de Quartz y no aparecen aquí.¿Cómo calcula el explicador las próximas ejecuciones?
¿Y los husos horarios?
crond usa la zona del sistema, AWS EventBridge usa UTC por defecto, GitHub Actions usa UTC, Kubernetes usa la zona del cluster. Confirma siempre la zona de tu runner antes de desplegar.¿Cómo expreso "último día del mes"?
59 23 28-31 * *, que dispara cada día desde el 28 a las 23:59. El propio job debe verificar si date -d 'tomorrow' +%-d = 1 (o el equivalente en tu lenguaje) y abortar si no es fin de mes. Quartz cron tiene L para esto — pero Quartz no corre en cron Linux puro.¿Puedo correr cada 90 minutos?
*/90 no funciona. La solución más cercana es dos expresiones: 0 0,3,6,9,12,15,18,21 * * * y 30 1,4,7,10,13,16,19,22 * * *, que juntas disparan cada 90 minutos. Más simple aún: programa cada 30 minutos y haz exit 0 en el script cuando no sea el slot correcto.¿Por qué mi job dispara dos veces en el cambio de horario?
cron.timezone = 'UTC' o TZ=UTC en el crontab) y convierte a hora local dentro del job — UTC no tiene horario de verano.
EN
PT
ES