Cron Expression Parser
You wrote 0 */4 * * 1-5 and you are not sure if it means "every four hours on weekdays" or "four times a day on Monday." Cron syntax is compact and unforgiving -- one wrong character and your job runs every minute instead of every day.
Paste your cron expression. Read what it actually does. See the next run times. Deploy with confidence.
How to read a cron expression
A standard cron expression has five fields:
+------------- minute (0-59)
| +------------- hour (0-23)
| | +------------- day of month (1-31)
| | | +------------- month (1-12)
| | | | +------------- day of week (0-7, both 0 and 7 = Sunday)
| | | | |
* * * * *
Each field accepts:
*-- every value5-- a specific value1-5-- a range*/15-- every 15th unit (every 15 minutes, every 15 hours)1,3,5-- a list of values
Common patterns
| Expression | Meaning |
|---|---|
0 0 * * * | Every day at midnight |
*/15 * * * * | Every 15 minutes |
0 9 * * 1-5 | Every weekday at 9 AM |
0 0 1 * * | First of every month at midnight |
30 2 * * 1 | Every Monday at 2:30 AM |
0 */6 * * 0,6 | Every 6 hours on weekends |
What the tool shows you
- Plain-English description -- "every weekday at 9:00 AM" instead of
0 9 * * 1-5. - Next run times -- the next 10 or 20 scheduled executions computed from right now. If the list looks wrong, your expression is wrong.
- Expression builder -- fill in dropdowns instead of memorizing field order. The tool assembles the cron string for you.
- Quartz mode -- toggle for the seven-field format Java enterprise schedulers use.
Watch out for
- Day-of-month and day-of-week interact.
0 0 1 * 1means "the 1st of the month AND every Monday," not "the 1st Monday." Use?in Quartz mode to specify "do not care" for one of them. - Timezone surprises. Your scheduler might run in UTC while you assumed local time. The tool lets you pick a timezone and recompute.
- Thundering herd. Do not schedule everything at
0 * * * *. Stagger by a few minutes to avoid load spikes.