Systemd Timer Calendar Validation

I wanted to schedule a recurring action on my Linux machine recently and was reminded that timers have replaced crontab as the tool of choice. They’re really powerful, but I always have to look up how to use them.

I edit these so rarely, I have to look up the syntax for specifying when I’d like an action to happen. The last time I did this, I came across a handy one liner to help crafting these:

systemd-analyze calendar $CALENDAR_SPEC

This command is useful to “Validate repetitive calendar time events”

For example:

$ systemd-analyze calendar "*-*-* 01/4:49:00"
Normalized form: *-*-* 01/4:49:00
    Next elapse: Thu 2022-08-04 17:49:00 EDT
       (in UTC): Thu 2022-08-04 21:49:00 UTC
       From now: 2h 46min left

If that makes sense for the goal of the timer, you can safely put it in an OnCalendar statement! Make sure you remember to run systemctl --user daemon-reload to pick up the changes.

To check your configured timers, run: systemctl --user list-timers

Leave a Reply