2026-05-01 19:07:34 +02:00
|
|
|
|
[Unit]
|
2026-06-29 11:23:19 +02:00
|
|
|
|
Description=Re-check workout after early bird grace period expires (08:30 normal, 09:05 extended)
|
2026-05-01 19:07:34 +02:00
|
|
|
|
After=graphical-session.target
|
|
|
|
|
|
|
|
|
|
|
|
[Timer]
|
2026-06-29 11:23:19 +02:00
|
|
|
|
# Fires at 08:30 for the normal early-bird window (5:00–8:30).
|
|
|
|
|
|
# Also fires at 09:05 to catch the extended window (5:00–9:00) earned by 5+ workout weeks.
|
|
|
|
|
|
# Both runs are idempotent: the service handles "already logged" and "window still active".
|
2026-05-01 19:07:34 +02:00
|
|
|
|
OnCalendar=*-*-* 08:30:00
|
2026-06-29 11:23:19 +02:00
|
|
|
|
OnCalendar=*-*-* 09:05:00
|
2026-05-01 19:07:34 +02:00
|
|
|
|
Unit=workout-locker.service
|
|
|
|
|
|
Persistent=false
|
|
|
|
|
|
AccuracySec=1s
|
|
|
|
|
|
RandomizedDelaySec=0
|
|
|
|
|
|
|
|
|
|
|
|
[Install]
|
|
|
|
|
|
WantedBy=timers.target
|