Cron Expression Explainer
Decode any cron schedule into plain English and preview the next run times.
Updated: June 26, 2026
Make sense of any cron schedule
Cron expressions are compact but easy to misread, and a single wrong field can mean a job runs every minute instead of once a day. Paste an expression here and this tool breaks down each of the five fields in plain English and shows you the next five times it will actually fire in your local timezone — so you can confirm a schedule before deploying it.
The five fields
A standard cron expression has five space-separated fields, in this order:
- Minute (0–59)
- Hour (0–23)
- Day of month (1–31)
- Month (1–12)
- Day of week (0–7, where both 0 and 7 mean Sunday)
Each field accepts * (every value), a list (1,15,30),
a range (9-17), or a step (*/15 = every 15). You can
combine them: 0-30/10 means 0, 10, 20, 30.
Common examples
*/15 * * * *— every 15 minutes.0 9 * * 1-5— at 9:00 AM, Monday through Friday.0 0 1 * *— at midnight on the first of every month.30 2 * * 0— at 2:30 AM every Sunday.
Shorthand macros also work: @daily, @hourly,
@weekly, @monthly and @yearly expand to
their five-field equivalents.
The day-of-month / day-of-week gotcha
One rule trips up almost everyone: when both the day-of-month and
day-of-week fields are restricted (neither is *), cron runs when
either matches, not both. So 0 0 13 * 5 fires on
the 13th of the month and on every Friday — not only on Friday the
13th. This explainer applies that rule when computing the next run times, so
what you see is what cron will really do.
Test before you ship
The next-run preview is the fastest way to catch a mistake. If a schedule you thought was "once a day" shows runs a minute apart, you'll see it immediately. Pair this with our other DevOps helpers — validate the job's config with the JSON formatter or YAML converter before deploying.
Frequently asked questions
What do the five cron fields mean?
In order: minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–7, where 0 and 7 are both Sunday).
What does */15 mean in cron?
The */15 step in the minute field means 'every 15 minutes' — it fires at minute 0, 15, 30 and 45 of every hour.
Why does my job with both a day-of-month and day-of-week run more often than expected?
When both fields are restricted, cron runs when either one matches, not both. To target a specific weekday-and-date combination you generally need extra logic in the job itself.
Are the next run times in my timezone?
Yes. The preview uses your browser's local timezone. Remember that your cron server may run in UTC or another timezone, so check the server's setting too.
Job scheduling & monitoring
Cron is great until a job silently fails. These tools add visibility:
- Cron monitoring service Get alerted when a scheduled job doesn't check in on time, so silent failures don't go unnoticed.
- Workflow / job orchestration platform Move beyond crontab to retries, dependencies and dashboards for complex scheduled pipelines.
Learn more
- Unix Timestamps Explained: Epoch, Seconds vs Milliseconds Epoch time, demystified: what the number really means, the seconds-vs-milliseconds bug that bites everyone, and why timestamps have no timezone.
- Cron Syntax Cheat Sheet: How to Read Cron Expressions Stop guessing what a cron line does. A quick, practical reference to the five fields, the special characters, and the schedules you'll actually write.
Related tools
- JSON Formatter & ValidatorBeautify, minify and validate JSON with clear error messages.
- YAML ↔ JSON ConverterConvert YAML to JSON and back, with clear parse errors.
- Regex TesterTest regular expressions against text and inspect every match and group.
- .htaccess & nginx Redirect GeneratorTurn a list of old → new URLs into Apache .htaccess and nginx redirect rules.