Cron Expression Explainer
Paste a cron expression and instantly get a plain-English description plus the next run times. Parsing happens in your browser as you type — no account, no upload, no waiting.
What is the Cron Expression Explainer?
The Cron Expression Explainer is a free online tool that takes a cron schedule and turns it
into something you can actually read. Paste a line like 30 9 * * 1-5 and it tells
you in plain English that the job runs at 09:30 on weekdays. On top of the description, it
lists the next real run times calculated from the current moment, so you can compare the
schedule against a calendar before you trust it in production. Cron syntax is famously easy to
get wrong, and a single misplaced field can mean a backup never runs or a report fires every
minute instead of once a day. This tool exists to remove that guesswork.
How to use it
- Type or paste your cron expression into the input box, for example a line copied straight from a crontab file or a CI config.
- The tool parses it as you type. A valid expression produces a plain-English summary immediately; an invalid one shows a clear error naming the field that is wrong.
- Read the next run times below the description to confirm the schedule lines up with what you expect.
- Click any of the example schedules to load a common pattern into the input and learn from it.
- Copy the description with one tap when you want to paste it into a pull request, a ticket, or a comment above the cron line.
The five-field cron syntax
A standard cron expression has five fields separated by spaces. Each field controls one part of the schedule:
| Field | Allowed values | Meaning |
|---|---|---|
| Minute | 0 to 59 | Minute of the hour |
| Hour | 0 to 23 | Hour of the day on a 24-hour clock |
| Day of month | 1 to 31 | Calendar day |
| Month | 1 to 12 or jan to dec | Month of the year |
| Day of week | 0 to 7 or sun to sat | 0 and 7 both mean Sunday |
Some schedulers, such as Quartz and certain container runtimes, add a sixth field at the front for seconds, ranging from 0 to 59. This tool detects a six-field expression automatically and explains it the same way.
What the special symbols mean
- An asterisk means every value of the field. An asterisk in every position means every minute of every day.
- A slash sets a step. A slash with 15 in the minute field means every 15 minutes, and 0-30/10 means 0, 10, 20, and 30.
- A hyphen defines a range. The value 1-5 in the day-of-week field means Monday through Friday.
- A comma lists separate values. The value 0,30 in the minute field means on the hour and on the half hour.
You can mix them freely. Combining a range with a step lets you express schedules like every two hours within working hours on weekdays.
Examples
- Run every day at 09:00 for a daily summary email.
- Run every five minutes for a health check.
- Run at midnight on the first of every month for a billing job.
- Run at 18:30 on weekdays for a classic end-of-workday task.
- Run at 14:15 on January 1st for a once-a-year reminder.
Common use cases
- Verifying a crontab before deploy so you can confirm it fires when you intend.
- Reviewing someone else's schedule to translate an unfamiliar expression during a code review.
- Debugging a job that runs too often or never because the next-run list makes a wrong field obvious.
- Learning cron by clicking the examples and watching how each field changes the outcome.
- Documenting jobs by copying the plain-English line into a comment above the cron entry.
A note on day-of-month and day-of-week
When both the day-of-month and the day-of-week fields are restricted at the same time, standard crontab runs the job when either one matches, not only when both do. This surprises many people. The explainer follows the same rule in both its description and its next-run math, so the preview matches exactly what your system will do.
Why use this one
Most cron explainers give you only a sentence. This one also shows the next real run times, so you can sanity-check the schedule against the calendar instead of trusting a description alone. It parses as you type, supports the optional six-field form with seconds, and gives specific errors that name the offending field. Everything runs in your browser, which means it is fast and your expression never touches a server. There is no signup and no rate limit. When you finish here, the related tools help with neighboring tasks: convert epoch times with the Unix Timestamp Converter, test patterns with the Regex Tester, or create identifiers with the UUID Generator.
Frequently asked questions
What does a cron expression look like?
A standard cron expression has five fields separated by spaces: minute, hour, day-of-month, month, and day-of-week, for example "30 9 * * 1-5". This tool also accepts the optional six-field form where a leading field sets the seconds, which is used by schedulers like Quartz and some container cron implementations.
What do the symbols *, /, -, and , mean?
An asterisk (*) means every value of that field. A slash (/) sets a step, so */15 means every 15 units. A hyphen (-) defines a range, so 1-5 means one through five. A comma (,) lists individual values, so 1,15,30. You can combine them, for example 0-30/10 means 0, 10, 20, and 30.
Are the next run times accurate to my timezone?
Yes. The next run times are calculated using your browser's local timezone, exactly like cron would run on a machine set to that timezone. If your server uses UTC or a different zone, remember the actual runs follow that machine's clock, not your browser's.
What happens if I set both a day-of-month and a day-of-week?
In standard crontab, when both the day-of-month and day-of-week fields are restricted, the job runs when EITHER one matches, not only when both match. This tool follows that OR behavior in both the description and the next-run calculation so the preview matches what cron actually does.
Is my expression sent to a server?
No. The parser and the next-run calculator run entirely in your browser with JavaScript. Your cron expression is never uploaded, stored, or logged, so it is safe to test internal job schedules without exposing them.