Skip to content

Cron Timezones: UTC vs Local Next Runs

Published July 16, 2026By Samson PG

The expression can be perfect and still fire at the “wrong” hour. Cron uses the scheduler’s timezone, not whatever your laptop shows.

When people say “my cron is wrong,” the expression is often fine. The mismatch is usually timezone: you pictured 9 AM local, the platform ran 9 AM UTC (or the host’s zone).

What cron actually uses

Cron fields describe wall-clock time in whatever timezone the scheduler is configured for:

Layer Typical source of truth
Linux crontab System timezone / CRON_TZ where supported
Kubernetes CronJob Cluster/timeZone (newer APIs) or controller TZ
GitHub Actions cron UTC
Cloud Scheduler / EventBridge Explicit schedule timezone you set

Your laptop’s local clock only matters for how you interpret the next-run list — not for how the server ticks unless you configured it that way.

UTC vs local: common failure modes

  1. Midnight backups0 0 * * * at UTC is afternoon/evening in the Americas, early morning in Asia.
  2. “Weekdays at 9” — correct fields, wrong zone → fires while the office is empty.
  3. DST — local zones spring forward/fall back; UTC does not. Jobs pinned to “local 2 AM” can skip or repeat on transition nights depending on the engine.
  4. Preview tools — a helper showing “next runs in your browser local time” can look “off” if the job will run in UTC. Compare apples to apples.

Checklist before you deploy

  1. Read the platform’s timezone docs (do not assume laptop local).
  2. Write the expression for that zone.
  3. Expand the next several fire times.
  4. Convert one of those instants to your city and confirm intent.
  5. Document the intended zone next to the schedule in the repo.

Use TryDevSnip Cron Helper

TryDevSnip Cron Helper explains expressions and shows upcoming runs in your browser so you can sanity-check timing before production.

Also see: hourly and midnight cron (timezone traps section) and weekdays at 9 AM.

Privacy one-liner: expressions are parsed locally; nothing is uploaded.

FAQ

Should I always schedule in UTC?

Many teams do — one unambiguous zone, convert for humans in docs. Others pin to office local. Consistency beats dogma.

Why is GitHub Actions cron “early”?

Actions cron is UTC. 0 9 * * 1-5 is 09:00 UTC, not 09:00 in India or US Pacific.

Does every-5-minutes care about timezone?

Less for the interval itself; day boundaries and “business hours” ranges still do.

Can DST break my job?

Yes for local-zone schedules near transition hours. Prefer UTC or test the weekend of the change.

← More from the blog