¿Cómo usar esta herramienta?
- Elija la variante arriba: Unix para crontabs clásicos, Quartz para apps Java, AWS para reglas EventBridge, Spring para anotaciones @Scheduled.
- Teclee una expresión en el campo o haga clic en un preset, la explicación en claro y las ejecuciones por mes y año aparecen de inmediato. Un clic en un campo muestra su rango de valores y sus caracteres especiales.
- Ajuste la zona horaria en el selector, las cinco próximas ejecuciones se calculan en esa zona.
- Lea el panel de avisos, para un cambio de hora, la trampa OR (DoM + día de semana) o una fecha imposible (31 de febrero), un aviso aparece aquí.
- En la pestaña Export, elija el formato de destino y llene el portapapeles, línea crontab, GitHub Actions, CronJob Kubernetes o AWS EventBridge.
¿Qué hace el constructor?
El constructor de expresiones cron es un editor live para los cuatro dialectos cron dominantes: Unix cron clásico de cinco campos, Quartz de seis o siete campos, AWS EventBridge con forma fija de seis campos y Spring @Scheduled con la misma forma de seis campos sin año. Cuando teclea en el campo, el constructor traduce la expresión de inmediato en una frase legible en español, lista las cinco próximas ejecuciones en su zona horaria IANA y avisa de cambios de hora, combinaciones de fecha imposibles y la trampa OR cuando día del mes y día de la semana están definidos simultáneamente.
Bajo la explicación aparece con qué frecuencia se ejecuta el plan de verdad: por día de ejecución, por mes y por año. * * * * * son 525.600 ejecuciones al año, 527.040 en un año bisiesto. Quien paga por invocación debería haber visto esa cifra antes del deploy. Donde el calendario no da una cifra fija, aparece un rango con su motivo en lugar de un número inventado, porque un año tiene 52 o 53 lunes, y con día del mes y día de la semana definidos a la vez la lógica OR cuenta ambos aciertos. Un clic en un campo muestra su significado, el rango de valores de la variante elegida y los caracteres especiales permitidos ahí. La expresión, la variante y la zona horaria van además en la dirección, así que un enlace compartido abre el mismo estado.
Cliente puro. Cada expresión queda en su navegador. Sin servidor, sin tracking, sin muro de cookies. La herramienta funciona sin conexión en cuanto la página se ha cargado.
¿Por qué se necesita una herramienta para cron?
Cron parece inofensivo, cinco asteriscos bastan para alcanzar cada minuto. Pero en cuanto se vuelve más específico, los detalles muerden. 0 0 31 2 * se parsea limpiamente como cada 31 de febrero a medianoche, pero nunca corre. 0 0 * * 0,1 parece correr solo domingo y lunes, en los timers systemd eso es exacto, en implementaciones Vixie-Cron clásicas el sistema enlaza ambos campos día con O, y atrapa el doble de días de lo previsto. 0 2 * * * corre 364 días al año, y ese domingo de marzo en que empieza el horario de verano no corre, porque las 02:00 sencillamente no existen en muchas zonas europeas. AWS EventBridge documenta eso tras un párrafo que empieza con las palabras intentionally-skipped.
El constructor atrapa esas tres clases con la misma interfaz: explicación en claro, lista Next-Run en su zona y un panel de avisos que nombra cambio de hora, trampa OR y fechas imposibles en un lenguaje unificado.
Cuatro dialectos en un editor
Unix cron es la forma de cinco campos que acompaña a cada distribución Linux. Quartz, el scheduler detrás de Spring Batch y Quartz.NET, añade un campo segundos delante y opcionalmente un campo año detrás. Quartz cuenta el día de la semana de 1 a 7 con el domingo como 1, Unix de 0 a 7, donde tanto 0 como 7 significan domingo. AWS EventBridge toma la forma Quartz con esa misma numeración. Ambas exigen exactamente un signo de interrogación, en día del mes o en día de la semana, y el constructor rechaza cualquier otra cosa. Spring @Scheduled es un clon Quartz sin año, pero cuenta el día de la semana como Unix.
El constructor distingue los cuatro dialectos a través del selector de pestaña superior. Cada clic en un preset (Hourly, Weekdays 09:00, Weekend 10:00) tira automáticamente la expresión adecuada para la variante actualmente elegida. Un cambio de variante traduce también el preset seleccionado, sin que tenga que volver a introducir la expresión.
Explicación en claro: Voice-Search-First
La primera línea de la explicación responde a la pregunta directamente, ejemplo: Cada lunes a las 09:00. Esta convención facilita Voice-Search y la citación por LLM: la frase funciona como palabra clave sin pasos de contexto adicionales. Las respuestas de Google Assistant y Perplexity leen típicamente las diez primeras palabras del primer párrafo, la explicación está exactamente formada para encajar.
Vista previa de zona horaria
La lista Next-Run calcula en segundo plano vía Intl.DateTimeFormat y una sonda por minuto si la combinación de hora, minuto y día de la semana planificada encaja con el slot IANA destino. Ocho zonas populares vienen preconfiguradas, UTC, Europe/Berlin, Europe/London, America/New_York y otras cuatro. La base IANA de zonas horarias es la referencia mundial para los datos de zonas horarias, navegadores, servidores y bibliotecas runtime la usan.
Alerta de cambio de hora
El constructor busca los próximos cambios de hora de la zona elegida, unos trece meses por delante, y comprueba en cada uno si alguna hora programada cae en el tramo que desaparece o en el que se repite. Solo entonces aparece un aviso junto a la lista Next-Run, con el salto real de esa zona: El 28/03/2027 la ejecución de las 02:30 no se produce, el reloj salta de 02:00 a 03:00 o El 25/10/2026 el job se ejecuta dos veces a las 02:30, el reloj se atrasa de 03:00 a 02:00. El salto se mide, no se supone: Pacific/Chatham cambia a las 02:45 y Australia/Lord_Howe cambia media hora, y eso es exactamente lo que dice el aviso. Estas frases evitan la suposición errónea más frecuente en jobs de backup y reporting.
¿Qué comprueba la validación semántica?
Sintácticamente válido no significa semánticamente sensato. El constructor distingue tres clases:
- Nunca correrá,
0 0 31 2 *se parsea limpiamente, pero el 31 de febrero no existe. El constructor lo reconoce a partir de la tabla de longitudes de mes y avisa de inmediato. - Trampa OR, Cuando día del mes y día de la semana están ambos definidos, Vixie-Cron enlaza con O, systemd y Spring con Y.
0 0 1 * MONcorre en Vixie-Cron cada 1 más cada lunes, en systemd solo el 1 si es lunes. El aviso nombra ambas expectativas de implementación, para que el revisor no se sorprenda después. - Error de variante, Quien teclee segundos en un Unix cron o ponga el signo de interrogación en un campo Unix recibe un mensaje claro de error de variante en lugar de un fallo de parse silencioso.
¿Qué exports están integrados?
Cuatro formatos destino están preparados. Cada uno entrega exactamente el bloque que puede copiar en su YAML, manifiesto o crontab:
Cada export se traduce al dialecto del destino, no se pasa tal cual. Una expresión AWS con signo de interrogación y campo de año se reescribe a cinco campos Unix válidos para la crontab, y una expresión Unix pasa a seis campos con signo de interrogación para EventBridge. Lo que el destino no puede ejecutar sale comentado con el motivo encima, para que un pegado a ciegas no instale una programación rota.
- crontab, una línea cron pura más cabecera de comentario y
CRON_TZcon la zona elegida, así el job no corre en la zona del servidor. Adecuado paracrontab -eo un archivo/etc/cron.d. - GitHub Actions, bloque
on.schedulecompleto connameycronentre comillas simples. La hora se queda en tu zona, junto a la clavetimezone:que GitHub Actions entiende desde marzo de 2026. Debajo, comentada, la misma línea convertida a UTC para versiones antiguas de GitHub Enterprise Server sin esa clave; allí, si la conversión desplaza el día, el día de la semana se desplaza con ella. - CronJob Kubernetes, manifiesto completo con
apiVersion: batch/v1,kind: CronJob,spec.timeZonecon la zona elegida, nombre DNS-1123 saneado y contenedor de ejemplo busybox. Solo sustituyaimageycommand. - AWS EventBridge, wrap
cron(...)en la forma de seis campos con año y signo de interrogación que exige la consola AWS.
¿Qué no se ha construido a propósito?
El constructor es builder-only: planifica, valida y exporta. Monitoring, alerting, historial y llamada de jobs cron no pertenecen aquí. Estas funciones están a propósito ausentes:
- Sin monitoring ni dead man’s switch, para eso existen Cronitor y servicios similares.
- Sin almacenamiento de historial más allá de la sesión actual, el hard-cap «sin localStorage» vale aquí también.
- Sin simulación más allá de cuatro años,
0 0 29 2 *congelaría si no la vista previa. - Sin dialectos vendor (Jenkins H-Hash, específicos de Nomad, extensiones Camel-Quartz).
- Sin traducción NLP texto-a-cron, eso pertenece a las herramientas LLM y rompe la promesa de cliente puro.
¿Cómo está regulada la privacidad?
El constructor funciona completamente en su navegador. No hay llamada al servidor, ni endpoint de telemetría, ni banner de cookies. Las únicas API host que usa el constructor son new Date() para la hora ancla de la previsión Next-Run e Intl.DateTimeFormat para la conversión de zona IANA. Ambas son estándares web desde hace años, sin implicación de tracking.
Temas relacionados
- Cron en Wikipedia: historia, Vixie-Cron, timers systemd
- Base IANA de zonas horarias: fuente de los datos de transición DST
- Manual de GNU mcron: extensiones más allá de Vixie-Cron, lectura opcional para patrones de scheduler custom
Última actualización: