Cron Expression Parser
Parse cron expressions and preview upcoming run times.
5 fields: minute hour day-of-month month day-of-week · or a @shorthand like @daily
Plain English
Every Monday through Friday at 9:00 AM
Click any expression to load it into the parser.
Shorthand
| Label | Expression | Description |
|---|---|---|
| @yearly | @yearly | Once a year at midnight on January 1 |
| @monthly | @monthly | Once a month at midnight on the 1st |
| @weekly | @weekly | Once a week at midnight on Sunday |
| @daily | @daily | Once a day at midnight |
| @hourly | @hourly | Once an hour at the start of the hour |
Intervals
| Label | Expression | Description |
|---|---|---|
| Every minute | * * * * * | Run every minute, all day |
| Every 5 minutes | */5 * * * * | Run every 5 minutes |
| Every 10 minutes | */10 * * * * | Run every 10 minutes |
| Every 15 minutes | */15 * * * * | Run every 15 minutes |
| Every 30 minutes | */30 * * * * | Run every 30 minutes |
| Every 2 hours | 0 */2 * * * | At the top of every 2nd hour |
| Every 6 hours | 0 */6 * * * | At 00:00, 06:00, 12:00, 18:00 |
| Every 12 hours | 0 */12 * * * | At midnight and noon |
Business
| Label | Expression | Description |
|---|---|---|
| Weekdays at 9 AM | 0 9 * * 1-5 | Monday–Friday at 9:00 AM |
| Weekdays at 8 AM | 0 8 * * 1-5 | Monday–Friday at 8:00 AM |
| Weekdays at noon | 0 12 * * 1-5 | Monday–Friday at 12:00 PM |
| Weekdays at 6 PM | 0 18 * * 1-5 | Monday–Friday at 6:00 PM |
| Every hour on weekdays | 0 9-17 * * 1-5 | Every hour from 9 AM to 5 PM, Mon–Fri |
Maintenance
| Label | Expression | Description |
|---|---|---|
| Midnight daily | 0 0 * * * | Every day at midnight |
| 2 AM daily | 0 2 * * * | Every day at 2:00 AM |
| Sunday at 3 AM | 0 3 * * 0 | Weekly maintenance window |
| 1st of month at midnight | 0 0 1 * * | Monthly task on the 1st |
| Last day check (28th) | 0 0 28 * * | Monthly on the 28th (safe for all months) |
Reporting
| Label | Expression | Description |
|---|---|---|
| Daily report at 7 AM | 0 7 * * * | Morning report generation |
| Weekly report (Mon 8 AM) | 0 8 * * 1 | Weekly summary every Monday |
| Monthly report (1st 6 AM) | 0 6 1 * * | Monthly report on the 1st |
| Quarterly (Jan/Apr/Jul/Oct) | 0 0 1 1,4,7,10 * | First day of each quarter |
| Field | Position | Allowed values | Special names |
|---|---|---|---|
| Minute | 1st | 0–59 | — |
| Hour | 2nd | 0–23 | — |
| Day of month | 3rd | 1–31 | — |
| Month | 4th | 1–12 | jan feb mar apr may jun jul aug sep oct nov dec |
| Day of week | 5th | 0–6 | sun mon tue wed thu fri sat (0=Sun) |
Special Characters
@ Shorthands
| Shorthand | Equivalent | Meaning |
|---|---|---|
| @yearly / @annually | 0 0 1 1 * | Once a year on Jan 1 |
| @monthly | 0 0 1 * * | Once a month on the 1st |
| @weekly | 0 0 * * 0 | Once a week on Sunday |
| @daily / @midnight | 0 0 * * * | Once a day at midnight |
| @hourly | 0 * * * * | Once an hour |
How It Works
Cron is a time-based job scheduler found in Unix-like operating systems. A cron
expression is a string of five fields (minute, hour, day-of-month, month, day-of-week) that
define a recurring schedule. Each field can be a single value, a comma-separated list, a range
(1-5), or a step (*/15). The scheduler fires a job whenever all five
fields match the current wall-clock time.
Wildcards and steps make it easy to express common patterns: * matches every value in the field's range; */n matches every nth value
starting from the minimum. For example, */5 in the minute field produces
0, 5, 10, … 55. A range with step like 0-30/10 yields 0, 10, 20, 30.
Timezone gotcha: cron runs in the server's local timezone unless the daemon is
configured otherwise (e.g. via CRON_TZ or systemd's OnCalendar). This
tool shows times in your browser's local timezone. When DST transitions occur, an hour may be
skipped or repeated — check your platform's documentation for how it handles the ambiguity.
6-field cron (seconds as the first field) is supported by some schedulers (Quartz, Spring, AWS CloudWatch Events). This tool accepts a 6-field expression and treats the first field as seconds, though next-run calculations remain minute-granular.