Generador y explicador de expresiones cron

Crea un horario crontab sin memorizar la sintaxis, o pega una expresión existente para ver qué significa en lenguaje sencillo y cuándo se ejecutará exactamente a continuación.

Actualizado el

Cada 15 minutos, entre las 09:00 y las 17:59, de lunes a viernes

Horarios comunes

Crear un horario

En

Próximas ejecuciones

    Editar campos

    0–59
    0–23
    1–31, L
    1–12, JAN–DEC
    0–6, SUN–SAT

    Sintaxis: * cualquiera · 5 valor · 1-5 rango · 1,15 lista · */10 paso · 8-18/2 rango con paso · macros @hourly @daily @weekly @monthly @yearly.

    Tus datos nunca salen de tu ordenador. Todo se procesa localmente en tu navegador.

    Cómo usar: Generador de expresiones cron

    1. Elige un horario común, o usa Crear un horario para elegir la frecuencia, los días de la semana y la hora, y luego haz clic en Usar este horario.
    2. O pega una expresión existente, como 30 2 * * 1, en el cuadro Expresión cron: la descripción en lenguaje sencillo se actualiza mientras escribes.
    3. Ajusta cada parte por separado en Editar campos (minuto, hora, día del mes, mes y día de la semana).
    4. Revisa la lista de Próximas ejecuciones en hora local o UTC, y luego copia la expresión en tu crontab, flujo de CI o programador de tareas.

    ¿Qué es una expresión cron?

    Una expresión cron es un horario compacto formado por cinco campos separados por espacios que indica al demonio cron de Unix, y a herramientas basadas en la misma sintaxis como GitHub Actions, GitLab CI, Kubernetes CronJobs, Vercel y muchas colas de tareas, cuándo ejecutar una tarea. Este generador te permite crear una expresión con menús desplegables, explica cualquier expresión en lenguaje sencillo con la biblioteca de código abierto cRonstrue y calcula las próximas ejecuciones para que verifiques un horario antes de que entre en funcionamiento.

    Los cinco campos

    ┌──────── minuto (0–59)
    │ ┌────── hora (0–23)
    │ │ ┌──── día del mes (1–31)
    │ │ │ ┌── mes (1–12, JAN–DEC)
    │ │ │ │ ┌ día de la semana (0–6, SUN–SAT)
    │ │ │ │ │
    * * * * *  comando

    En el campo de día de la semana, el 7 también significa domingo.

    Cada campo acepta * (cualquier valor), un número, un rango 1-5, una lista 1,15,30, un paso */10 o un rango con paso 9-17/2. Algunos programadores (Quartz, Spring, AWS EventBridge) añaden un campo inicial de segundos; marca “Campo de segundos” para trabajar con expresiones de 6 partes.

    Ejemplos

    ExpresiónSignificado
    */5 * * * *Cada 5 minutos
    0 * * * *Al inicio de cada hora
    30 2 * * *Todos los días a las 02:30
    0 9 * * 1-5A las 09:00 entre semana
    0 0 1 * *A medianoche el día 1 de cada mes
    0 0 1 */3 *A medianoche el primer día de cada trimestre
    15 14 1 * *A las 14:15 el día 1 de cada mes

    Errores comunes

    • Día del mes y día de la semana. Si ambos campos están restringidos, el cron clásico ejecuta la tarea cuando coincide cualquiera de los dos. 0 0 13 * 5 significa “el día 13 y todos los viernes”, no “el viernes 13”. La lista de próximas ejecuciones sigue esta regla.
    • Olvidar el minuto. * 9 * * * se ejecuta 60 veces entre las 09:00 y las 09:59. Usa 0 9 * * * para ejecutarla una sola vez.
    • Zonas horarias. Cron usa la zona horaria del servidor; GitHub Actions y la mayoría de programadores en la nube usan UTC. Cambia la lista de ejecuciones a UTC para compararlas.
    • Pasos irregulares. */45 en el campo de minutos se dispara a :00 y :45, y luego de nuevo a :00: los pasos se reinician cada hora, no se arrastran.
    • Números de día en Quartz. Quartz cuenta el domingo como 1, mientras que cron de Unix usa 0 (o 7). Esta herramienta usa la numeración de Unix.

    Extensiones no estándar

    L en el campo de día del mes (último día del mes), 5L (último viernes) y 1#2 (segundo lunes) son compatibles con Quartz y algunas implementaciones de cron, pero no con Vixie cron en Linux. Aquí se explican y se previsualizan, pero comprueba que tu programador los acepte. ¿Necesitas convertir una hora de ejecución a un valor epoch? Prueba el Convertidor de Timestamp Unix o el Convertidor de Zonas Horarias.

    También se busca como: crontab, generador cron, explicador cron, sintaxis cron, crontab guru, horario cron, tarea cron, parser cron.

    Herramientas que combinan con: Generador de expresiones cron

    • Generador de servicios systemd — Ejecuta tu app como un servicio de Linux que arranca con el sistema y se reinicia si falla.
    • Calculadora de días entre fechas — Cuenta los días entre dos fechas, incluidos los días hábiles y un desglose en años, meses y días.
    • Probador de expresiones regulares — Escribe un patrón y observa cómo se resaltan las coincidencias en tiempo real en tu texto de prueba.
    • Formateador HTML — Pega HTML minificado o desordenado y obtén HTML limpio y con sangría coherente, incluidos los bloques <style> y <script> incrustados.

    Preguntas frecuentes

    ¿Qué significa */15 en cron?
    La barra indica un paso: */15 en el campo de minutos significa cada 15 minutos empezando en 0, es decir, :00, :15, :30 y :45. 5-50/15 daría :05, :20, :35 y :50.
    ¿Cómo ejecuto un trabajo cron cada 30 segundos?
    El cron estándar de 5 campos no puede bajar de un minuto. Usa un programador de 6 campos que admita segundos (*/30 * * * * *), o añade dos líneas en el crontab, donde la segunda empiece con sleep 30;.
    ¿La hora de cron es UTC o local?
    El cron clásico usa la zona horaria del sistema del servidor (algunas versiones aceptan una variable CRON_TZ). GitHub Actions, Kubernetes (por defecto) y la mayoría de programadores en la nube evalúan las expresiones en UTC. La lista de ejecuciones aquí puede mostrar cualquiera de las dos.
    ¿Cuál es la diferencia entre @daily y 0 0 * * *?
    Ninguna: @daily (o @midnight) es una abreviatura de 0 0 * * *. Del mismo modo, @hourly = 0 * * * *, @weekly = 0 0 * * 0, @monthly = 0 0 1 * * y @yearly = 0 0 1 1 *.
    ¿Cómo programo un trabajo para el último día del mes?
    El cron clásico de Unix no tiene un valor de “último día”. Puedes usar L si tu programador lo admite (0 0 L * *), o ejecutar diariamente los días 28–31 y comprobar la fecha en el comando: 0 0 28-31 * * [ "$(date -d tomorrow +\%d)" = "01" ] && ./job.sh.
    ¿Por qué mi expresión nunca se ejecuta?
    Las fechas imposibles, como 0 0 31 2 * (31 de febrero) o 0 0 31 4 * (31 de abril), nunca coinciden. La lista de próximas ejecuciones muestra una advertencia cuando no encuentra ninguna ejecución en los próximos diez años.
    ¿Puedo instalar Generador de expresiones cron como aplicación web y utilizarla sin conexión?
    Sí. Generador de expresiones cron es una aplicación web instalable (PWA): se instala desde el navegador, no se descarga desde una tienda de aplicaciones. Haz clic en «Instalar aplicación» en la parte superior de esta página en Chrome o Edge (Windows, macOS, Linux, ChromeOS) o, en Android, utiliza «Compartir» → «Añadir a la pantalla de inicio» en iPhone y iPad, o «Archivo» → «Añadir al Dock» en Safari 17+ en un Mac. A continuación, se abrirá en su propia ventana con su propio icono y, como se ejecuta íntegramente en tu navegador, seguirá funcionando sin conexión. Firefox en el ordenador de sobremesa no permite instalar aplicaciones web. Cómo funciona la instalación.

    Herramientas relacionadas