Scheduling guide
Cron schedules and timezone surprises
How to read a five-field schedule and verify the clock that will actually run it.
Read the five fields from left to right
A traditional cron expression has minute, hour, day of month, month, and day of week fields. For example, 0 9 * * 1-5 means minute zero at hour nine on weekdays in the scheduler's interpretation of those fields. The Cron Explainer can make a simple expression readable and preview upcoming runs.
Do not assume every scheduler uses the same syntax. Some platforms add seconds, a year field, special tokens, or a different interpretation of the two day fields.
The expression does not carry a timezone by itself
“09:00” is incomplete until the scheduler's timezone is known. A host may use UTC, a machine-local zone, a container setting, or an explicit job-level timezone. Managed platforms can also evaluate schedules in a documented service timezone while displaying them in your browser's local zone.
Write the intended zone beside the schedule, for example “09:00 Europe/Lisbon weekdays”. Verify the actual runtime configuration instead of trusting a dashboard preview.
Daylight-saving transitions are real edge cases
In a region that changes clocks, a local time can occur twice or not occur at all. A job scheduled at 02:30 may be skipped or run once depending on the scheduler's rules. A job that must run exactly once should be designed around an unambiguous instant and protected by idempotency or a recorded execution key.
Test the next several occurrences
Preview dates around month-end, leap days, weekends, daylight-saving changes, and the boundary between two calendar days. Check the server logs after deployment and make the task safe to retry. A correct expression can still produce an unsafe workflow if two instances run at the same time.
Checklist
- Confirm the scheduler dialect and field count.
- Write the intended timezone next to the expression.
- Preview dates in UTC and the intended local zone.
- Test daylight-saving, month-end, and retry behavior.
- Verify the deployed job from logs, not only from a UI preview.
Reference
The common Linux format is described in the crontab(5) manual. Hosted schedulers may intentionally extend or change those rules.
