I went for this incantation in /usr/lib/cron/run-crons: # run as usual else TIME="-cmin +$((1 + ($($DATE +%s)-$($DATE -d today' '${CRON_DAILY_NOT_BEFORE:-04:00} +%s))/60))" fi ;; cron.weekly) TIME="-cmin +10080 -or -cmin 10080" ;; DATE is defined so that it can be switched to use UTC or the local timezone by a sysconfig variable and CRON_DAILY_NOT_BEFORE should also be a sysconfig variable.