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.