- ¿Cuáles son los 5 campos, en orden?
- Minuto (0–59), Hora (0–23), Día del mes (1–31), Mes (1–12), Día de la semana (0–6, donde tanto 0 como 7 significan domingo). Se separan con espacios. Así, “0 9 * * 1-5” se lee: minuto 0, hora 9, cualquier día del mes, cualquier mes, días de la semana de lunes a viernes; es decir, días laborables a las 9 AM.
- ¿Qué significa el asterisco (*)?
- Significa “todos los valores válidos de este campo”. “* * * * *” es “cada minuto de cada hora de cada día”, la programación más agresiva que puede expresar una línea cron. La mayoría de los campos que no te importan deberían quedarse en “*”.
- ¿Qué es la sintaxis */N?
- Un paso. “*/15” en el campo de minuto significa “cada 15 minutos”: en los minutos 0, 15, 30 y 45. También puedes usar pasos dentro de un rango: “0-30/10” en el campo de minuto significa “en los minutos 0, 10, 20 y 30”. Los pasos deben ser mayores que 0.
- ¿Qué pasa si restrinjo a la vez el día del mes y el día de la semana?
- El cron estándar los trata como O, no como Y. “0 9 1 * 0” se ejecuta a las 9 AM el día 1 de cada mes O cada domingo, lo que toque ese día. Esto confunde a mucha gente. Si quieres un Y estricto (“el día 1 del mes, pero solo si cae en domingo”), la mayoría de los planificadores no lo admiten directamente: tendrías que comprobarlo dentro de la propia tarea.
- ¿Puedo usar nombres en lugar de números para el mes y el día de la semana?
- Sí. De “jan” a “dec” funcionan para los meses y de “sun” a “sat” para los días de la semana (en inglés). Así que “mon-fri” y “1-5” son idénticos en el campo de día de la semana. Da igual si van en mayúsculas o minúsculas. Algunos planificadores no estándar añaden alias como “@hourly” o “@daily”; no forman parte del formato de 5 campos y esta herramienta no los acepta.
- ¿Cuál es el intervalo más pequeño que admite cron?
- Un minuto. Cron no trabaja con segundos. Si necesitas una precisión inferior al minuto, ya no es terreno de cron: necesitas algo como una cola de trabajos, un bucle setInterval en un proceso de larga duración o una función serverless activada por un temporizador de mayor resolución.
- ¿Por qué mi programación se ejecuta a una hora rara?
- Por la zona horaria. crond de Linux usa la zona horaria local del sistema; GitHub Actions y Vercel Cron usan UTC; Kubernetes CronJob usa UTC por defecto. Aquí la vista previa siempre está en UTC. Haz la conversión mentalmente si tu planificador funciona en otra zona o, mejor, escribe tu línea cron en UTC y documéntalo.
- ¿Admite cron de 6 campos con segundos (Quartz)?
- No. Este generador maneja el formato Unix estándar de 5 campos. El cron estilo Quartz, de 6 campos con los segundos al principio, es una sintaxis distinta (e incompatible) que usan algunos planificadores de Java. No pegues una expresión Quartz: no pasará la validación.
- ¿Se guarda mi expresión en algún sitio?
- No. El análisis, la descripción y el cálculo de próximas ejecuciones se hacen en tu navegador. No se sube ni se registra nada. Puedes copiar la cadena cron y pegarla donde de verdad la necesites.
- ¿Qué pasa con el día 30 en febrero?
- Cron es tolerante: simplemente no se ejecuta ese mes. “0 0 30 * *” se ejecuta el 30 de enero, marzo, abril, mayo, etc., pero se salta febrero entero. La vista previa de próximas ejecuciones lo refleja. Si escribiste “0 0 30 2 *” (solo el 30 de febrero), la vista previa estará vacía porque esa fecha no existe.