Network
Cron Expression Explainer
Turn cryptic cron syntax into a plain-English schedule, plus the next several times it will actually run.
–
Standard 5-field cron syntax: *, ranges like 1-5, steps like */15, lists like 1,15,30. Next-run times use your local clock.
Runs entirely in your browser. Nothing you enter is sent anywhere.
Learn about cron syntax
How a cron expression is built
A standard cron expression has five fields, in order: minute, hour, day of month, month, and day of week. Each field can be a specific value, a wildcard, a list, a range, or a step, and it's the combination of all five that determines exactly when a job fires.
Field reference
| Field | Allowed values |
|---|---|
| Minute | 0–59 |
| Hour | 0–23 |
| Day of month | 1–31 |
| Month | 1–12 |
| Day of week | 0–6 (0 and 7 both mean Sunday) |
* means "every value," , separates a list, - defines a range, and / defines a step, so */15 in the minute field means "every 15 minutes."
Common questions
Why did my job run on days I didn't expect? This is the classic cron gotcha. When both day-of-month and day-of-week are restricted (not left as *), most cron implementations treat them as an OR, not an AND. The job runs if either condition matches, which surprises almost everyone the first time they hit it.
What timezone does a cron schedule run in? Whatever timezone the server or scheduler running the job is set to, not necessarily yours. Always check that before assuming a job fires at a specific local time.
Does every platform use this exact five-field format? Most traditional Unix cron does, but some systems differ. Several CI tools and cloud schedulers (like AWS EventBridge) add a seconds or year field, and Quartz-style schedulers have their own quirks. It's worth double-checking your specific platform's docs if a five-field expression doesn't behave as expected.