Cron Expression Explainer

Paste a cron expression and read it in plain English.

Reading a cron expression

Paste five fields โ€” minute, hour, day of month, month, weekday โ€” and get the schedule in plain English plus the next five run times computed against your clock. Names work (JANโ€“DEC, SUNโ€“SAT), as do ranges, lists and steps: */15 9-17 * * 1-5 reads "every 15 minutes during hours 9โ€“17 on Monday to Friday". Clickable examples cover the schedules everyone actually writes.

The traps the preview catches

The OR rule: when day-of-month and weekday are both restricted, classic cron fires on either โ€” 0 0 13 * 5 runs every Friday AND every 13th, not just Friday the 13th. The next-runs list implements this faithfully, so the surprise happens here rather than in production.

Timezones: cron runs on the server's clock, and a 02:30 job can run twice or never on daylight-saving nights โ€” schedule odd hours in UTC. Steps restart: */7 in minutes gives 0, 7, โ€ฆ, 56, then 0 again at the next hour โ€” not a clean every-7-minutes. And six-field expressions (Quartz, some CI systems) put seconds first; drop that field to read them here. The timestamps involved decode in the Unix timestamp converter, and scheduling across regions is the time zones guide's subject.

Frequently asked questions

What do the five fields in cron mean?

Minute (0โ€“59), hour (0โ€“23), day of month (1โ€“31), month (1โ€“12), weekday (0โ€“7, both 0 and 7 being Sunday) โ€” left to right, space-separated.

What does */5 mean in cron?

Every fifth value: */5 in minutes is :00, :05, :10โ€ฆ Note steps restart each cycle, so */7 gives 0,7,โ€ฆ,56 then 0 again on the hour.

Why does my Friday-the-13th cron run every Friday?

When day-of-month and weekday are both restricted, cron matches either โ€” the OR rule. True Friday-13th scheduling needs a condition inside the job itself.

My expression has six fields โ€” why won't it parse?

Quartz and some CI systems add a leading seconds field. Drop the first field to read the remaining five here; classic crontab has no seconds.