Cron Parser
Parse cron expressions to understand when scheduled tasks will run.
Enter Cron Expression
minute (0-59) | hour (0-23) | day (1-31) | month (1-12) | weekday (0-6)
Human Readable
Runs at minute 0 at 09:00 on Monday to Friday
Field Breakdown
Minute
00
Hour
99
Day of Month
*every
Month
*every
Day of Week
1-5Monday to Friday
Next 5 Run Times
Example Expressions
* * * * *Every minute0 * * * *Every hour0 0 * * *Every day at midnight0 9 * * 1-5Weekdays at 9 AM*/15 * * * *Every 15 minutesWhat Is a Cron Expression?
A cron expression is a compact, five-field string that tells a Unix-like scheduler exactly when to fire a recurring job. The name comes from chronos (Greek for time), and cron daemons have powered scheduled automation on Linux and macOS servers since the 1970s. Today the same syntax drives cloud functions, CI/CD pipelines, database maintenance windows, and application-level task queues.
Every cron expression contains exactly five whitespace-separated fields:
| Position | Field | Allowed Values |
|---|---|---|
| 1 | Minute | 0–59 |
| 2 | Hour | 0–23 |
| 3 | Day of Month | 1–31 |
| 4 | Month | 1–12 |
| 5 | Day of Week | 0–6 (0 = Sunday) |
The cron parser on this page reads your expression, breaks it into those five fields, translates each one into plain English, and then walks forward minute-by-minute from the current time to display the next five scheduled run times. This makes it easy to verify that your schedule is correct before deploying it to production.
Cron Field Syntax and Matching Rules
Each field in a cron expression supports four special characters that give the syntax its expressive power. Understanding how each character is matched is the key to writing reliable schedules.
- Asterisk (
*) — matches every value in the field's range.* * * * *fires every minute of every day. - Step (
/) — combined with a range or*to fire at regular intervals.*/15in the minute field fires at minutes 0, 15, 30, and 45.2/3fires at 2, 5, 8, … up to the field maximum. - Range (
-) — selects a contiguous span of values.1-5in the weekday field means Monday through Friday. - List (
,) — selects an explicit set.8,17in the hour field fires at 8 AM and 5 PM.
Parsing happens left-to-right: the parser splits the expression on whitespace and processes each field independently. For the month and day-of-week fields it also translates numeric values to names (e.g., month 3 becomes March, weekday 1 becomes Monday).
Step-Value Match Formula
Where:
- value= Current field value being tested (e.g., current minute 0–59)
- start= Starting offset; 0 when range is *, otherwise the left side of the slash
- step= Interval — the number after the slash (e.g., 15 in */15)
Day-of-Month vs Day-of-Week: The OR Rule
One of the most misunderstood parts of standard cron is how the day-of-month and day-of-week fields interact when both are set to non-wildcard values. This cron parser follows the same logic used by Vixie cron (the reference implementation on most Linux systems):
- If either day-of-month or day-of-week is
*, only the other field is evaluated — effectively an AND with a wildcard. - If both fields contain specific values (non-
*), the scheduler fires when either condition is true — a logical OR.
For example, 0 0 1 * 5 fires at midnight on the 1st of every month and also at midnight every Friday, not only on Fridays that happen to be the 1st. This OR behavior surprises many developers expecting AND semantics. To guarantee a job only runs on a specific weekday, use * for day-of-month; to guarantee it runs only on a specific date, use * for day-of-week.
The cron next-run calculator on this page applies exactly this OR/AND logic when computing future fire times, so you can see the effect directly in the "Next 5 Run Times" output.
Common Cron Patterns Reference
The following table lists the most frequently used cron expressions across web development, DevOps, and data engineering workflows. Each entry shows the raw expression, its human-readable meaning, and a practical use case.
| Expression | Meaning | Typical Use Case |
|---|---|---|
| * * * * * | Every minute | Health-check pings |
| 0 * * * * | Every hour on the hour | Hourly report aggregation |
| 0 0 * * * | Daily at midnight | Nightly database backups |
| 0 9 * * 1-5 | Weekdays at 9 AM | Morning business report emails |
| */15 * * * * | Every 15 minutes | Cache warm-up, queue polling |
| 0 0 1 * * | First day of month at midnight | Monthly invoice generation |
| 0 2 * * 0 | Sundays at 2 AM | Weekly maintenance window |
| 30 8,17 * * 1-5 | 8:30 AM and 5:30 PM on weekdays | Twice-daily data sync |
Paste any expression from this table directly into the parser above to see its field breakdown and next scheduled runs. Knowing these building-block patterns by heart dramatically speeds up writing new schedules from scratch.
How to Use This Cron Expression Parser
This free online cron parser is designed for developers, system administrators, and DevOps engineers who need to verify scheduled tasks quickly and confidently. Here is how to get the most out of it.
- Type or paste your cron expression into the input box. The parser accepts any standard five-field expression and updates results in real time as you type.
- Read the human-readable summary in the blue gradient box. This sentence-level translation is generated from each field's parsed value and tells you exactly when the job fires in plain English. Use the Copy button to grab the description for documentation.
- Check the field breakdown table. Each of the five fields is shown alongside its parsed meaning. This is useful for spotting typos — for example, confirming that
1-5in the weekday field correctly resolves to "Monday to Friday" rather than an unexpected range. - Review the next five run times. The calculator walks forward from the current moment, checking each minute against the expression, and surfaces the next five matching timestamps. This is the most reliable way to confirm that a schedule will fire when you expect.
- Click any example expression at the bottom of the calculator to load it instantly and see how common patterns parse.
The parser validates that your expression has exactly five fields. If you enter fewer or more fields it will display a clear error message, so you can correct the expression before deploying it. This is especially helpful when migrating expressions between tools that may use six-field formats (which add a seconds field) versus the standard five-field crontab format.
Worked Examples
Weekday Business Hours Job
Problem:
Parse the expression '0 9 * * 1-5' and determine what it does.
Solution Steps:
- 1Split into five fields: minute=0, hour=9, dayOfMonth=*, month=*, dayOfWeek=1-5.
- 2Minute field '0': exact match — fires at minute 0 (top of the hour).
- 3Hour field '9': exact match — fires at hour 9, so the combined time is 09:00.
- 4dayOfMonth is '*' so the day-of-week field drives day selection. dayOfWeek '1-5' is a range: 1 (Monday) to 5 (Friday).
- 5Result: 'Runs at minute 0 at 09:00 on Monday to Friday' — a classic 9 AM weekday job.
Result:
Fires every weekday (Mon–Fri) at exactly 09:00 local time.
Every 15 Minutes Step Expression
Problem:
Parse '*/15 * * * *' and verify which minutes it fires.
Solution Steps:
- 1Split into five fields: minute=*/15, hour=*, dayOfMonth=*, month=*, dayOfWeek=*.
- 2Minute field '*/15': step notation with range='*', so start=0, step=15.
- 3Apply formula: (value − 0) mod 15 = 0. Matching values: 0, 15, 30, 45.
- 4All remaining fields are '*', so this fires on every hour of every day.
- 5Result: 'Runs every 15 minutes' — four times per hour, 96 times per day.
Result:
Fires at minutes 0, 15, 30, and 45 of every hour, every day.
First-of-Month Midnight Job
Problem:
Parse '0 0 1 * *' to understand when a monthly cleanup runs.
Solution Steps:
- 1Split into five fields: minute=0, hour=0, dayOfMonth=1, month=*, dayOfWeek=*.
- 2Minute '0': fires at minute 0. Hour '0': fires at hour 0. Combined: midnight (00:00).
- 3dayOfMonth '1': exact match — only on the 1st day of the month.
- 4dayOfWeek is '*', so day-of-month is the sole day selector (no OR ambiguity).
- 5month is '*': fires every month. Result: midnight on the 1st of every month.
Result:
Fires once per month at 00:00 on the 1st — 12 times per year.
Twice-Daily Weekday Sync
Problem:
Parse '30 8,17 * * 1-5' for a data sync that runs morning and evening.
Solution Steps:
- 1Split into five fields: minute=30, hour=8,17, dayOfMonth=*, month=*, dayOfWeek=1-5.
- 2Minute '30': fires at minute 30.
- 3Hour '8,17': comma list — fires at hour 8 and hour 17.
- 4Combined times: 08:30 and 17:30.
- 5dayOfWeek '1-5': Monday through Friday. dayOfMonth is '*', so OR rule simplifies to range match.
- 6Result: fires at 08:30 and 17:30 on every weekday — 10 times per week.
Result:
Fires at 08:30 and 17:30 Monday–Friday — twice daily on business days.
Tips & Best Practices
- ✓Always verify your cron expression in a parser before deploying — a single misplaced field can cause a job to run thousands of times more (or less) than intended.
- ✓Use '1-5' in the day-of-week field (Monday–Friday) instead of individual comma values to keep weekday schedules concise and readable.
- ✓Keep day-of-month as '*' when using day-of-week and vice versa to avoid the OR ambiguity that surprises many developers.
- ✓Midnight is '0' in the hour field, not '24'. The expression '0 0 * * *' fires at 00:00; '0 24 * * *' is invalid.
- ✓Step values like '*/5' are relative to the field minimum (0 for minutes/hours/weekdays, 1 for day-of-month and month), so '*/1 * * * *' is identical to '* * * * *'.
- ✓Combine a comma list with a range for complex but readable patterns: '0,30 9-17 * * 1-5' fires at :00 and :30 of every hour from 9 AM to 5 PM on weekdays.
- ✓For jobs that must not overlap, schedule them with enough buffer — for example, avoid scheduling a heavy database job every minute if it typically takes several minutes to complete.
- ✓Document your cron expressions in code comments using the human-readable description from this parser — it saves future developers (and yourself) from having to decode the syntax.
Frequently Asked Questions
Sources & References
Last updated: 2026-06-05
Help us improve!
How would you rate the Cron Parser?
Editorial Note
MyCalcBuddy Editorial Team
This page is maintained as an educational calculator reference.
Formula Source: Standard Mathematical References
by Various