Qué resuelve

OnCalendar= define cuándo se activa un .timer de systemd usando expresiones de calendario. Va dentro del archivo .timer, no dentro del .service.

<aside> 💡 Los timers no siempre disparan exactamente en el segundo indicado: AccuracySec= puede agrupar ejecuciones para ahorrar recursos. Valida expresiones con systemd-analyze calendar.

</aside>


Sintaxis básica

OnCalendar=CALENDAR_EXPRESSION

Puedes usar fecha, hora, día de la semana o combinaciones.


Ejemplos validados

Expresión Significado
OnCalendar=*:03 Cada hora, en el minuto 3
OnCalendar=*-*-* *:00:00 Cada hora en punto
OnCalendar=*-*-* *:*:00 Cada minuto, al segundo 0
OnCalendar=Mon..Fri 09:00 De lunes a viernes a las 09:00
OnCalendar=Sun 18:00 Domingos a las 18:00
OnCalendar=*-*-01 00:00 Día 1 de cada mes a medianoche
OnCalendar=*-*-* 00/2:00:00 Cada 2 horas
OnCalendar=*:0/5 Cada 5 minutos

Reglas útiles

Recurso Qué hace Ejemplo
* Cualquier valor *-*-*
/ Intervalo 00/2:00:00
.. Rango Mon..Fri
, Lista Mon,Wed,Fri

Ejemplo combinado:

OnCalendar=Mon..Fri *-*-* 09..17:00/15

Lunes a viernes, de 09:00 a 17:00, cada 15 minutos.


Validar antes de usar

systemd-analyze calendar 'Mon..Fri 09:00'
systemd-analyze calendar '*-*-* *:0/5'
systemd-analyze calendar '*-*-01 00:00'

El comando muestra la forma normalizada y la próxima ejecución calculada.