DevToolsHub

Cron schedules, time zones, and daylight saving pitfalls

9 min read · Try Cron Generator

Five fields, many dialects

Classic cron uses minute, hour, day of month, month, and day of week. Some platforms add seconds or year. Kubernetes CronJob, Linux crontab, and managed schedulers differ slightly—always read the vendor docs before copying an expression from a blog post.

Day-of-month vs day-of-week interactions

On some engines, specifying both day-of-month and day-of-week means “run when either matches,” which surprises teams expecting AND logic. When jobs fire on unexpected days, print the interpreted schedule and the next five run times in your staging environment.

Time zones are not optional

A job scheduled at 02:00 local time on a server in UTC will not match business expectations in Mumbai or Chicago. Prefer explicit IANA zones (America/Chicago) in job definitions when the product supports them. Document whether “midnight” means UTC or business-local.

  • Daylight saving: spring forward can skip an hour; fall back can repeat an hour—idempotent jobs matter.
  • Stagger heavy jobs away from :00 to reduce database contention.

Observability

Name owners in shared crontabs. Alert on missed runs, not only failures mid-execution. Keep a human-readable description next to each expression in infrastructure-as-code repos.

This article is part of the DevToolsHub learning guides—original writing meant to complement our free tools, not replace official documentation from vendors or standards bodies.

← All guides · Open Cron Generator