Generador de expresiones cron
Crea una programación cron con clics o pega una existente. El generador la explica en lenguaje natural, comprueba cada campo y muestra las próximas ejecuciones en tu zona horaria local o en UTC.
Última actualización:
Constructor
Próximas ejecuciones
Cómo usar Generador de expresiones cron
- Empieza con una programación predefinida o escribe una expresión como
*/15 9-17 * * 1-5en el cuadro. - Ajusta cada campo con las pestañas del constructor: cada unidad, cada N unidades, valores concretos o un rango.
- Lee la línea en lenguaje natural para confirmar que la programación hace lo que quieres.
- Revisa las próximas ejecuciones. Cambia entre hora local y UTC, o elige otra fecha de inicio, y pulsa Calcular próximas ejecuciones.
- Copia la expresión (o la línea completa de crontab) en tu crontab, pipeline de CI o programador de tareas.
Sintaxis cron de un vistazo
┌───────────── minute (0–59) │ ┌─────────── hour (0–23) │ │ ┌───────── day of month (1–31) │ │ │ ┌─────── month (1–12 or JAN–DEC) │ │ │ │ ┌───── day of week (0–6 or SUN–SAT, 7 = Sunday) │ │ │ │ │ * * * * * command to run
| Símbolo | Significado | Ejemplo | Coincide con |
|---|---|---|---|
* | Cualquier valor | * en la hora | 0, 1, 2 … 23 |
, | Lista | 1,15 en el día del mes | el día 1 y el día 15 |
- | Rango (inclusivo) | 1-5 en el día de la semana | De lunes a viernes |
/ | Paso | */15 en el minuto | 0, 15, 30, 45 |
a-b/n | Paso dentro de un rango | 9-17/2 en la hora | 9, 11, 13, 15, 17 |
a/n | Paso desde a hasta el final | 5/20 en el minuto | 5, 25, 45 |
Programaciones cron habituales
| Expresión | Se ejecuta |
|---|---|
*/5 * * * * | Cada 5 minutos |
0 * * * * | Al inicio de cada hora |
0 */6 * * * | A las 00:00, 06:00, 12:00 y 18:00 |
0 0 * * * | Todos los días a medianoche (igual que @daily) |
30 8 * * 1-5 | 08:30 de lunes a viernes |
*/15 9-17 * * 1-5 | Cada 15 minutos de 09:00 a 17:45 en días laborables |
0 3 * * 0 | Domingos a las 03:00 |
0 0 1 * * | Medianoche del día 1 de cada mes (@monthly) |
0 0 1 1,4,7,10 * | Trimestral: 1 de enero, abril, julio y octubre |
0 0 29 2 * | Solo el 29 de febrero: una vez cada año bisiesto |
La regla del día del mes y el día de la semana
Cuando ambos campos de día están restringidos, cron se ejecuta los días que coinciden con cualquiera de ellos. Cuando alguno de los campos empieza por *, el día tiene que coincidir con los dos. Ejemplos prácticos a partir del jueves 1 de enero de 2026:
| Expresión | Lógica | Primeras ejecuciones |
|---|---|---|
0 9 1,15 * MON | día 1 o 15 o lunes | 1 ene, 5 ene, 12 ene, 15 ene, 19 ene, 26 ene, 1 feb … a las 09:00 |
0 9 * * MON | todos los días y lunes = los lunes | 5 ene, 12 ene, 19 ene … a las 09:00 |
0 9 */2 * MON | días impares y lunes (el campo empieza por *) | 5 ene, 19 ene, 9 feb … a las 09:00 |
0 9 13 * FRI | el día 13 o cualquier viernes (no solo el viernes 13) | 2 ene, 9 ene, 13 ene, 16 ene … a las 09:00 |
Para ejecutar solo, por ejemplo, el primer lunes del mes, programa 0 9 1-7 * * y comprueba el día de la semana dentro del comando, por ejemplo [ "$(date +\%u)" = 1 ] && /path/to/job. En un archivo crontab, % debe escaparse como \%.
Zonas horarias y horario de verano
Los demonios cron del sistema usan la zona horaria local del servidor (o CRON_TZ / TZ donde se admite); los CronJobs de Kubernetes usan por defecto la zona horaria del controlador salvo que se defina spec.timeZone; las programaciones de GitHub Actions siempre se ejecutan en UTC. Cuando se adelantan los relojes, las horas locales dentro de la hora omitida no existen y la lista de próximas ejecuciones las deja fuera; cuando se atrasan, la hora repetida se muestra una sola vez. Usa UTC para las tareas que deben ejecutarse a intervalos exactos todo el año.
Preguntas frecuentes
¿Cuáles son los cinco 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 o SUN–SAT, donde 7 también significa domingo). Un * significa cualquier valor, así que * * * * * se ejecuta cada minuto.
¿Qué pasa si se definen a la vez el día del mes y el día de la semana?
El cron estándar ejecuta la tarea cuando coincide CUALQUIERA de los dos. 0 9 1 * MON se ejecuta a las 09:00 el día 1 de cada mes y todos los lunes. La regla O solo se aplica cuando ambos campos están restringidos: si uno de ellos empieza por *, deben coincidir los dos. La lista de próximas ejecuciones sigue estas reglas exactamente.
¿Cómo ejecuto una tarea cron cada 5 minutos?
Usa */5 * * * *. El valor de paso después de la barra se repite desde el inicio del rango, así que se ejecuta en los minutos 0, 5, 10 … 55 de cada hora. 5-59/10 se ejecutaría en los minutos 5, 15, 25, 35, 45 y 55.
¿Qué zona horaria usa cron?
El cron clásico usa la zona horaria local del servidor. Muchos programadores en la nube y sistemas de CI, como GitHub Actions, usan UTC. Cambia la lista de próximas ejecuciones a UTC para ver cuándo se ejecutará realmente esa tarea. Durante los cambios de horario de verano se omiten las horas locales que no existen.
¿Admite segundos o la sintaxis de Quartz?
Esta herramienta cubre el formato cron estándar de Unix de 5 campos que usan crontab, los CronJobs de Kubernetes y la mayoría de los sistemas de CI. Quartz y Spring añaden un campo de segundos y caracteres especiales como L, W y #, que se indican como no admitidos.
¿Qué significan @daily, @weekly y las demás macros?
@yearly (o @annually) = 0 0 1 1 *, @monthly = 0 0 1 * *, @weekly = 0 0 * * 0, @daily (o @midnight) = 0 0 * * * y @hourly = 0 * * * *. @reboot se ejecuta una vez al arrancar y no tiene programación.
¿Se envía algo a un servidor?
No. El análisis, la descripción en lenguaje natural y el cálculo de las ejecuciones se hacen en tu navegador.
¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?
Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.