Minuteform / Cron and daylight saving time
$ man cron | grep -i daylight
Cron and daylight saving time: every DST change in 2026–2027
When clocks change, one local hour is skipped in spring and one is repeated in autumn. A cron job scheduled in that hour may run late, run once, run twice or not run at all, depending on the scheduler. This page lists the exact hour for 28 common time zones and what each scheduler documents.
Updated 19 Oct 2026IANA tz data, checked in Chrome and macOSTimes are local wall-clock times
tl;drVixie cron · cronie
skipped Spring forward
A job at a fixed time inside the missing hour, such as 30 2 * * * in New York, still runs once, right after the clock jumps. Jobs with * in the minute or hour field lose the missing minutes.
repeated Fall back
A fixed-time job in the repeated hour, such as 30 1 * * *, runs once. Jobs with * in the minute or hour field, such as */15 * * * *, run again during the second pass.
safe Avoid the problem
Run the daemon in UTC, or keep fixed-time jobs out of roughly 00:00–04:00 local time. Other schedulers behave differently; see the comparison.
01What happens to a job in the skipped or repeated hour
“Fixed-time” means the minute and hour fields are plain numbers, as in 30 2 * * *. “Wildcard” means the minute or hour field starts with *, as in */15 * * * * or 0 * * * *. Where a vendor documents nothing, the table says so rather than guessing.
| Scheduler | skipped fixed-time job | repeated fixed-time job | Wildcard jobs | Basis |
| Vixie cron (ISC), Debian cron | Runs once, soon after the change | Runs once, not again | Run on the new clock right away, so skipped minutes are lost and repeated minutes run again | cron(8): changes of less than 3 hours are handled specially Vixie cron.8 · Debian cron(8) |
| cronie (Fedora, RHEL, Arch…) | Runs once, immediately after the change | Runs once; running the same job twice is avoided | Same as Vixie: the special handling covers only fixed-time jobs and jobs that run less often than hourly | cron(8) section “Daylight Saving Time and other time changes”, and the time-jump cases in src/cron.c man7 cron(8) · cron.c |
cronie with CRON_TZ= | Varies by implementation. cronie’s crontab(5) says non-existent times “will never match” and times that occur twice make matching jobs run twice. Its source also skips CRON_TZ jobs while the daemon’s own zone is switching. Test on your system before relying on either. | cronie crontab(5) · cron.c |
Kubernetes CronJob with timeZone | Not run that day | Runs twice | An hourly job runs in both passes and skips the missing hour | Kubernetes documents no DST rule. It parses schedules with robfig/cron v3, whose tests show this behavior k8s docs · robfig spec_test.go |
| AWS EventBridge Scheduler | Skipped | Runs once | Not documented; rate() schedules count fixed 24-hour days | “Daylight saving time” in the Scheduler guide AWS docs |
GitHub Actions with timezone | Moves to the next valid time (02:30 → 03:00) | Not documented | Not documented | Schedules run in UTC unless timezone is set GitHub docs |
| Quartz | Varies. The docs warn that the change “can cause a skip or a repeat” and suggest avoiding those hours. | Quartz tutorial |
Spring @Scheduled(zone=…) | Not run (framework test only) | Not documented | Not documented | No DST statement in the reference or Javadoc. A framework unit test expects a skipped 02:10 to move to the next day. CronExpressionTests |
| Minuteform preview | Not shown | Shown twice, labelled with each offset | Follow the wall clock | The preview lists the instants whose local wall-clock time matches. It does not model the Vixie/cronie catch-up rule, so read the rows above for your daemon. |
The Vixie/cronie rule depends on the daemon’s own clock. It applies when the time zone of the cron process (usually the system zone) changes offset. A server kept in UTC never sees a DST jump. Changes of three hours or more are treated as clock corrections, not DST.
02DST changes by time zone, 2026–2027
Each row gives the local date of the change, the UTC instant, the local minutes that are skipped or repeated, and a link that opens Minuteform with a job in that window and the preview starting two days earlier. Ranges are inclusive, so “02:00–02:59” means every minute from 02:00 to 02:59.
America/New_York
UTC−5 standard · UTC−4 daylightUS Eastern
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 8 Mar 20262026-03-08 07:00 UTC | skipped 02:00–02:59 Sun 8 Mar 2026: clocks jump 02:00 → 03:00 (EST → EDT). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 1 Nov 20262026-11-01 06:00 UTC | repeated 01:00–01:59 Sun 1 Nov 2026: clocks fall back 02:00 → 01:00 (EDT → EST). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
| Sun 14 Mar 20272027-03-14 07:00 UTC | skipped 02:00–02:59 Sun 14 Mar 2027: clocks jump 02:00 → 03:00 (EST → EDT). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 7 Nov 20272027-11-07 06:00 UTC | repeated 01:00–01:59 Sun 7 Nov 2027: clocks fall back 02:00 → 01:00 (EDT → EST). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
America/Chicago
UTC−6 standard · UTC−5 daylightUS Central
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 8 Mar 20262026-03-08 08:00 UTC | skipped 02:00–02:59 Sun 8 Mar 2026: clocks jump 02:00 → 03:00 (CST → CDT). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 1 Nov 20262026-11-01 07:00 UTC | repeated 01:00–01:59 Sun 1 Nov 2026: clocks fall back 02:00 → 01:00 (CDT → CST). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
| Sun 14 Mar 20272027-03-14 08:00 UTC | skipped 02:00–02:59 Sun 14 Mar 2027: clocks jump 02:00 → 03:00 (CST → CDT). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 7 Nov 20272027-11-07 07:00 UTC | repeated 01:00–01:59 Sun 7 Nov 2027: clocks fall back 02:00 → 01:00 (CDT → CST). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
America/Denver
UTC−7 standard · UTC−6 daylightUS Mountain
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 8 Mar 20262026-03-08 09:00 UTC | skipped 02:00–02:59 Sun 8 Mar 2026: clocks jump 02:00 → 03:00 (MST → MDT). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 1 Nov 20262026-11-01 08:00 UTC | repeated 01:00–01:59 Sun 1 Nov 2026: clocks fall back 02:00 → 01:00 (MDT → MST). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
| Sun 14 Mar 20272027-03-14 09:00 UTC | skipped 02:00–02:59 Sun 14 Mar 2027: clocks jump 02:00 → 03:00 (MST → MDT). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 7 Nov 20272027-11-07 08:00 UTC | repeated 01:00–01:59 Sun 7 Nov 2027: clocks fall back 02:00 → 01:00 (MDT → MST). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
America/Los_Angeles
UTC−8 standard · UTC−7 daylightUS Pacific
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 8 Mar 20262026-03-08 10:00 UTC | skipped 02:00–02:59 Sun 8 Mar 2026: clocks jump 02:00 → 03:00 (PST → PDT). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 1 Nov 20262026-11-01 09:00 UTC | repeated 01:00–01:59 Sun 1 Nov 2026: clocks fall back 02:00 → 01:00 (PDT → PST). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
| Sun 14 Mar 20272027-03-14 10:00 UTC | skipped 02:00–02:59 Sun 14 Mar 2027: clocks jump 02:00 → 03:00 (PST → PDT). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 7 Nov 20272027-11-07 09:00 UTC | repeated 01:00–01:59 Sun 7 Nov 2027: clocks fall back 02:00 → 01:00 (PDT → PST). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
America/Anchorage
UTC−9 standard · UTC−8 daylightAlaska
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 8 Mar 20262026-03-08 11:00 UTC | skipped 02:00–02:59 Sun 8 Mar 2026: clocks jump 02:00 → 03:00 (AKST → AKDT). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 1 Nov 20262026-11-01 10:00 UTC | repeated 01:00–01:59 Sun 1 Nov 2026: clocks fall back 02:00 → 01:00 (AKDT → AKST). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
| Sun 14 Mar 20272027-03-14 11:00 UTC | skipped 02:00–02:59 Sun 14 Mar 2027: clocks jump 02:00 → 03:00 (AKST → AKDT). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 7 Nov 20272027-11-07 10:00 UTC | repeated 01:00–01:59 Sun 7 Nov 2027: clocks fall back 02:00 → 01:00 (AKDT → AKST). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
America/Halifax
UTC−4 standard · UTC−3 daylightAtlantic Canada
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 8 Mar 20262026-03-08 06:00 UTC | skipped 02:00–02:59 Sun 8 Mar 2026: clocks jump 02:00 → 03:00 (AST → ADT). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 1 Nov 20262026-11-01 05:00 UTC | repeated 01:00–01:59 Sun 1 Nov 2026: clocks fall back 02:00 → 01:00 (ADT → AST). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
| Sun 14 Mar 20272027-03-14 06:00 UTC | skipped 02:00–02:59 Sun 14 Mar 2027: clocks jump 02:00 → 03:00 (AST → ADT). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 7 Nov 20272027-11-07 05:00 UTC | repeated 01:00–01:59 Sun 7 Nov 2027: clocks fall back 02:00 → 01:00 (ADT → AST). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
America/St_Johns
UTC−3:30 standard · UTC−2:30 daylightNewfoundland, a half-hour offset zone
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 8 Mar 20262026-03-08 05:30 UTC | skipped 02:00–02:59 Sun 8 Mar 2026: clocks jump 02:00 → 03:00 (GMT-3:30 → GMT-2:30). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 1 Nov 20262026-11-01 04:30 UTC | repeated 01:00–01:59 Sun 1 Nov 2026: clocks fall back 02:00 → 01:00 (GMT-2:30 → GMT-3:30). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
| Sun 14 Mar 20272027-03-14 05:30 UTC | skipped 02:00–02:59 Sun 14 Mar 2027: clocks jump 02:00 → 03:00 (GMT-3:30 → GMT-2:30). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 7 Nov 20272027-11-07 04:30 UTC | repeated 01:00–01:59 Sun 7 Nov 2027: clocks fall back 02:00 → 01:00 (GMT-2:30 → GMT-3:30). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
America/Santiago
UTC−4 standard · UTC−3 daylightMainland Chile; the clock changes at local midnight
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sat 4 Apr 20262026-04-05 03:00 UTC | repeated 23:00–23:59 Sat 4 Apr 2026: clocks fall back 24:00 → 23:00 (GMT-3 → GMT-4). These 60 local minutes happen twice. | Fixed-time jobs in 23:00–23:59 (e.g. 30 23 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 23 * * * |
| Sun 6 Sep 20262026-09-06 04:00 UTC | skipped 00:00–00:59 Sun 6 Sep 2026: clocks jump 00:00 → 01:00 (GMT-4 → GMT-3). These 60 local minutes never happen. | Fixed-time jobs in 00:00–00:59 (e.g. 30 0 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 0 * * * |
| Sat 3 Apr 20272027-04-04 03:00 UTC | repeated 23:00–23:59 Sat 3 Apr 2027: clocks fall back 24:00 → 23:00 (GMT-3 → GMT-4). These 60 local minutes happen twice. | Fixed-time jobs in 23:00–23:59 (e.g. 30 23 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 23 * * * |
| Sun 5 Sep 20272027-09-05 04:00 UTC | skipped 00:00–00:59 Sun 5 Sep 2027: clocks jump 00:00 → 01:00 (GMT-4 → GMT-3). These 60 local minutes never happen. | Fixed-time jobs in 00:00–00:59 (e.g. 30 0 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 0 * * * |
Europe/London
UTC+0 standard · UTC+1 daylightUnited Kingdom
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 29 Mar 20262026-03-29 01:00 UTC | skipped 01:00–01:59 Sun 29 Mar 2026: clocks jump 01:00 → 02:00 (GMT+0 → GMT+1). These 60 local minutes never happen. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 1 * * * |
| Sun 25 Oct 20262026-10-25 01:00 UTC | repeated 01:00–01:59 Sun 25 Oct 2026: clocks fall back 02:00 → 01:00 (GMT+1 → GMT+0). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
| Sun 28 Mar 20272027-03-28 01:00 UTC | skipped 01:00–01:59 Sun 28 Mar 2027: clocks jump 01:00 → 02:00 (GMT+0 → GMT+1). These 60 local minutes never happen. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 1 * * * |
| Sun 31 Oct 20272027-10-31 01:00 UTC | repeated 01:00–01:59 Sun 31 Oct 2027: clocks fall back 02:00 → 01:00 (GMT+1 → GMT+0). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
Europe/Dublin
UTC+0 standard · UTC+1 daylightIreland
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 29 Mar 20262026-03-29 01:00 UTC | skipped 01:00–01:59 Sun 29 Mar 2026: clocks jump 01:00 → 02:00 (GMT+0 → GMT+1). These 60 local minutes never happen. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 1 * * * |
| Sun 25 Oct 20262026-10-25 01:00 UTC | repeated 01:00–01:59 Sun 25 Oct 2026: clocks fall back 02:00 → 01:00 (GMT+1 → GMT+0). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
| Sun 28 Mar 20272027-03-28 01:00 UTC | skipped 01:00–01:59 Sun 28 Mar 2027: clocks jump 01:00 → 02:00 (GMT+0 → GMT+1). These 60 local minutes never happen. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 1 * * * |
| Sun 31 Oct 20272027-10-31 01:00 UTC | repeated 01:00–01:59 Sun 31 Oct 2027: clocks fall back 02:00 → 01:00 (GMT+1 → GMT+0). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
Europe/Berlin
UTC+1 standard · UTC+2 daylightGermany (Central European Time)
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 29 Mar 20262026-03-29 01:00 UTC | skipped 02:00–02:59 Sun 29 Mar 2026: clocks jump 02:00 → 03:00 (GMT+1 → GMT+2). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 25 Oct 20262026-10-25 01:00 UTC | repeated 02:00–02:59 Sun 25 Oct 2026: clocks fall back 03:00 → 02:00 (GMT+2 → GMT+1). These 60 local minutes happen twice. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 2 * * * |
| Sun 28 Mar 20272027-03-28 01:00 UTC | skipped 02:00–02:59 Sun 28 Mar 2027: clocks jump 02:00 → 03:00 (GMT+1 → GMT+2). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 31 Oct 20272027-10-31 01:00 UTC | repeated 02:00–02:59 Sun 31 Oct 2027: clocks fall back 03:00 → 02:00 (GMT+2 → GMT+1). These 60 local minutes happen twice. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 2 * * * |
Europe/Paris
UTC+1 standard · UTC+2 daylightFrance (Central European Time)
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 29 Mar 20262026-03-29 01:00 UTC | skipped 02:00–02:59 Sun 29 Mar 2026: clocks jump 02:00 → 03:00 (GMT+1 → GMT+2). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 25 Oct 20262026-10-25 01:00 UTC | repeated 02:00–02:59 Sun 25 Oct 2026: clocks fall back 03:00 → 02:00 (GMT+2 → GMT+1). These 60 local minutes happen twice. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 2 * * * |
| Sun 28 Mar 20272027-03-28 01:00 UTC | skipped 02:00–02:59 Sun 28 Mar 2027: clocks jump 02:00 → 03:00 (GMT+1 → GMT+2). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 31 Oct 20272027-10-31 01:00 UTC | repeated 02:00–02:59 Sun 31 Oct 2027: clocks fall back 03:00 → 02:00 (GMT+2 → GMT+1). These 60 local minutes happen twice. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 2 * * * |
Europe/Helsinki
UTC+2 standard · UTC+3 daylightFinland (Eastern European Time)
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 29 Mar 20262026-03-29 01:00 UTC | skipped 03:00–03:59 Sun 29 Mar 2026: clocks jump 03:00 → 04:00 (GMT+2 → GMT+3). These 60 local minutes never happen. | Fixed-time jobs in 03:00–03:59 (e.g. 30 3 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 3 * * * |
| Sun 25 Oct 20262026-10-25 01:00 UTC | repeated 03:00–03:59 Sun 25 Oct 2026: clocks fall back 04:00 → 03:00 (GMT+3 → GMT+2). These 60 local minutes happen twice. | Fixed-time jobs in 03:00–03:59 (e.g. 30 3 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 3 * * * |
| Sun 28 Mar 20272027-03-28 01:00 UTC | skipped 03:00–03:59 Sun 28 Mar 2027: clocks jump 03:00 → 04:00 (GMT+2 → GMT+3). These 60 local minutes never happen. | Fixed-time jobs in 03:00–03:59 (e.g. 30 3 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 3 * * * |
| Sun 31 Oct 20272027-10-31 01:00 UTC | repeated 03:00–03:59 Sun 31 Oct 2027: clocks fall back 04:00 → 03:00 (GMT+3 → GMT+2). These 60 local minutes happen twice. | Fixed-time jobs in 03:00–03:59 (e.g. 30 3 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 3 * * * |
Africa/Cairo
UTC+2 standard · UTC+3 daylightEgypt; the clock changes at local midnight
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Fri 24 Apr 20262026-04-23 22:00 UTC | skipped 00:00–00:59 Fri 24 Apr 2026: clocks jump 00:00 → 01:00 (GMT+2 → GMT+3). These 60 local minutes never happen. | Fixed-time jobs in 00:00–00:59 (e.g. 30 0 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 0 * * * |
| Thu 29 Oct 20262026-10-29 21:00 UTC | repeated 23:00–23:59 Thu 29 Oct 2026: clocks fall back 24:00 → 23:00 (GMT+3 → GMT+2). These 60 local minutes happen twice. | Fixed-time jobs in 23:00–23:59 (e.g. 30 23 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 23 * * * |
| Fri 30 Apr 20272027-04-29 22:00 UTC | skipped 00:00–00:59 Fri 30 Apr 2027: clocks jump 00:00 → 01:00 (GMT+2 → GMT+3). These 60 local minutes never happen. | Fixed-time jobs in 00:00–00:59 (e.g. 30 0 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 0 * * * |
| Thu 28 Oct 20272027-10-28 21:00 UTC | repeated 23:00–23:59 Thu 28 Oct 2027: clocks fall back 24:00 → 23:00 (GMT+3 → GMT+2). These 60 local minutes happen twice. | Fixed-time jobs in 23:00–23:59 (e.g. 30 23 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 23 * * * |
Asia/Jerusalem
UTC+2 standard · UTC+3 daylightIsrael; spring change is on a Friday
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Fri 27 Mar 20262026-03-27 00:00 UTC | skipped 02:00–02:59 Fri 27 Mar 2026: clocks jump 02:00 → 03:00 (GMT+2 → GMT+3). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 25 Oct 20262026-10-24 23:00 UTC | repeated 01:00–01:59 Sun 25 Oct 2026: clocks fall back 02:00 → 01:00 (GMT+3 → GMT+2). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
| Fri 26 Mar 20272027-03-26 00:00 UTC | skipped 02:00–02:59 Fri 26 Mar 2027: clocks jump 02:00 → 03:00 (GMT+2 → GMT+3). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 31 Oct 20272027-10-30 23:00 UTC | repeated 01:00–01:59 Sun 31 Oct 2027: clocks fall back 02:00 → 01:00 (GMT+3 → GMT+2). These 60 local minutes happen twice. | Fixed-time jobs in 01:00–01:59 (e.g. 30 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 1 * * * |
Australia/Sydney
UTC+10 standard · UTC+11 daylightNew South Wales (Australian Eastern Time)
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 5 Apr 20262026-04-04 16:00 UTC | repeated 02:00–02:59 Sun 5 Apr 2026: clocks fall back 03:00 → 02:00 (GMT+11 → GMT+10). These 60 local minutes happen twice. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 2 * * * |
| Sun 4 Oct 20262026-10-03 16:00 UTC | skipped 02:00–02:59 Sun 4 Oct 2026: clocks jump 02:00 → 03:00 (GMT+10 → GMT+11). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 4 Apr 20272027-04-03 16:00 UTC | repeated 02:00–02:59 Sun 4 Apr 2027: clocks fall back 03:00 → 02:00 (GMT+11 → GMT+10). These 60 local minutes happen twice. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 2 * * * |
| Sun 3 Oct 20272027-10-02 16:00 UTC | skipped 02:00–02:59 Sun 3 Oct 2027: clocks jump 02:00 → 03:00 (GMT+10 → GMT+11). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
Australia/Adelaide
UTC+9:30 standard · UTC+10:30 daylightSouth Australia, a half-hour offset zone
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 5 Apr 20262026-04-04 16:30 UTC | repeated 02:00–02:59 Sun 5 Apr 2026: clocks fall back 03:00 → 02:00 (GMT+10:30 → GMT+9:30). These 60 local minutes happen twice. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 2 * * * |
| Sun 4 Oct 20262026-10-03 16:30 UTC | skipped 02:00–02:59 Sun 4 Oct 2026: clocks jump 02:00 → 03:00 (GMT+9:30 → GMT+10:30). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 4 Apr 20272027-04-03 16:30 UTC | repeated 02:00–02:59 Sun 4 Apr 2027: clocks fall back 03:00 → 02:00 (GMT+10:30 → GMT+9:30). These 60 local minutes happen twice. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 2 * * * |
| Sun 3 Oct 20272027-10-02 16:30 UTC | skipped 02:00–02:59 Sun 3 Oct 2027: clocks jump 02:00 → 03:00 (GMT+9:30 → GMT+10:30). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
Australia/Lord_Howe
UTC+10:30 standard · UTC+11 daylightLord Howe Island; the clock moves by 30 minutes, not an hour
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 5 Apr 20262026-04-04 15:00 UTC | repeated 01:30–01:59 Sun 5 Apr 2026: clocks fall back 02:00 → 01:30 (GMT+11 → GMT+10:30). These 30 local minutes happen twice. | Fixed-time jobs in 01:30–01:59 (e.g. 45 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 45 1 * * * |
| Sun 4 Oct 20262026-10-03 15:30 UTC | skipped 02:00–02:29 Sun 4 Oct 2026: clocks jump 02:00 → 02:30 (GMT+10:30 → GMT+11). These 30 local minutes never happen. | Fixed-time jobs in 02:00–02:29 (e.g. 15 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 15 2 * * * |
| Sun 4 Apr 20272027-04-03 15:00 UTC | repeated 01:30–01:59 Sun 4 Apr 2027: clocks fall back 02:00 → 01:30 (GMT+11 → GMT+10:30). These 30 local minutes happen twice. | Fixed-time jobs in 01:30–01:59 (e.g. 45 1 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 45 1 * * * |
| Sun 3 Oct 20272027-10-02 15:30 UTC | skipped 02:00–02:29 Sun 3 Oct 2027: clocks jump 02:00 → 02:30 (GMT+10:30 → GMT+11). These 30 local minutes never happen. | Fixed-time jobs in 02:00–02:29 (e.g. 15 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 15 2 * * * |
Pacific/Auckland
UTC+12 standard · UTC+13 daylightNew Zealand
| Local change | Skipped or repeated local time | Vixie cron / cronie (daemon running in this zone) | Preview |
| Sun 5 Apr 20262026-04-04 14:00 UTC | repeated 02:00–02:59 Sun 5 Apr 2026: clocks fall back 03:00 → 02:00 (GMT+13 → GMT+12). These 60 local minutes happen twice. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 2 * * * |
| Sun 27 Sep 20262026-09-26 14:00 UTC | skipped 02:00–02:59 Sun 27 Sep 2026: clocks jump 02:00 → 03:00 (GMT+12 → GMT+13). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
| Sun 4 Apr 20272027-04-03 14:00 UTC | repeated 02:00–02:59 Sun 4 Apr 2027: clocks fall back 03:00 → 02:00 (GMT+13 → GMT+12). These 60 local minutes happen twice. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, not twice. Jobs with * in the minute or hour field run in both passes. | Preview 30 2 * * * |
| Sun 26 Sep 20272027-09-25 14:00 UTC | skipped 02:00–02:59 Sun 26 Sep 2027: clocks jump 02:00 → 03:00 (GMT+12 → GMT+13). These 60 local minutes never happen. | Fixed-time jobs in 02:00–02:59 (e.g. 30 2 * * *) run once, soon after the jump. Jobs with * in the minute or hour field skip those minutes. | Preview 30 2 * * * |
03Zones with no DST change in 2026–2027
Cron jobs in these zones keep the same UTC offset all year. The tz data contains no transition between 1 Jan 2026 and 1 Jan 2028.
| Zone | Offset all year | Notes | Preview |
| UTC | UTC+0 | The reference zone. Never skips or repeats an hour. | Preview |
| America/Phoenix | UTC−7 | Most of Arizona. America/Denver has the same standard offset but does change. | Preview |
| America/Mexico_City | UTC−6 | Central Mexico. No transition in the tz data for 2026–2027. | Preview |
| America/Sao_Paulo | UTC−3 | Brazil (Brasília time). Why there is no DST. | Preview |
| Asia/Kolkata | UTC+5:30 | India, a half-hour offset zone. | Preview |
| Asia/Shanghai | UTC+8 | China. | Preview |
| Asia/Singapore | UTC+8 | Singapore. | Preview |
| Asia/Tokyo | UTC+9 | Japan. | Preview |
| Australia/Brisbane | UTC+10 | Queensland. Australia/Sydney has the same standard offset but does change. | Preview |
America/Sao_Paulo. Brazil ended daylight saving time in 2019 by Decree 9.772, which the tz database records with “Brazil no longer has DST changes” (tz southamerica file). For 2026/2027, Jornal do Brasil reported on 5 Oct 2026 that the Ministry of Mines and Energy found no case for bringing DST back (JB, in Portuguese). We could not open the ministry’s own page, which requires a gov.br login. If Brazil changes course, a new tz release would add the rule and this page would be updated.
Rules changed in 2026 for zones not listed above. British Columbia, Alberta, the Northwest Territories and Manitoba have moved to permanent time, and Morocco has moved to permanent UTC. These changes came in tz releases 2026b–2026e (tzdb NEWS). Servers with older tz data will shift these zones at the wrong time, so update the tzdata package before trusting cron there.
04How these times were calculated
- Source data: the IANA time zone database, read through the browser’s
Intl.DateTimeFormat with timeZoneName: "longOffset". We scanned 1 Jan 2026 to 1 Jan 2028 in 15-minute steps, then narrowed each offset change to the exact minute.
- Engine: headless Chrome 155 on 19 Oct 2026. Its bundled time zone data includes the tz 2026c changes but not 2026d; we checked this with America/Edmonton and America/Inuvik.
- Cross-check: the same scan with Python
zoneinfo against macOS tzdata 2026d. All 28 zones and 76 transitions matched, with 0 differences.
- Latest release: tz 2026e (29 Sep 2026) changes only America/Winnipeg, and 2026d only America/Inuvik. Neither zone appears in these tables.
Your browser can re-check these tables with its own time zone data. The check runs after the page loads.
05Practical rules for DST-safe cron jobs
- Keep servers in UTC and convert schedules yourself. UTC never skips or repeats an hour.
- Avoid local 00:00–04:00 for fixed-time jobs if the zone observes DST. Most changes fall between 00:00 and 04:00, and Cairo and Santiago change at local midnight.
- Make jobs idempotent. Kubernetes, robfig/cron and Quartz can run a job twice in a repeated hour, and a wildcard job runs twice under cron too.
- Watch half-hour shifts. Lord Howe Island moves its clocks by 30 minutes, so only 02:00–02:29 is skipped.
- Check the next run before you deploy. Paste the expression into Minuteform, pick the zone and compare the upcoming runs with the table above.
06Sources
- Vixie (ISC) cron, cron.8: changes of less than three hours are handled specially; skipped jobs run immediately; repeats are avoided. checked 19 Oct 2026
- Debian cron(8), cron 3.0pl1, NOTES: “Jobs which are specified with wildcards are run based on the new time immediately.” checked 19 Oct 2026
- cronie cron(8), section “Daylight Saving Time and other time changes”. checked 19 Oct 2026
- cronie src/cron.c: the time-jump cases. Forward jumps run wildcard jobs once, then fixed-time jobs for each skipped minute. Backward jumps run wildcard jobs only. checked 19 Oct 2026
- cronie crontab(5):
CRON_TZ, plus the statement on missing and repeated times. checked 19 Oct 2026
- Kubernetes CronJob time zones, and robfig/cron v3 spec_test.go (DST cases for America/New_York). Kubernetes lists
github.com/robfig/cron/v3 in its go.mod. checked 19 Oct 2026
- Amazon EventBridge Scheduler: schedule types, section on daylight saving time. checked 19 Oct 2026
- GitHub Actions: schedule event: UTC by default, optional
timezone, and the spring-forward rule. checked 19 Oct 2026
- Quartz CronTrigger tutorial: the daylight saving caution. checked 19 Oct 2026
- Spring Framework CronExpressionTests: the
daylightSaving() test. checked 19 Oct 2026
- IANA time zone database and tzdb NEWS, release 2026e. checked 19 Oct 2026