Cron Expression Calculator
Enter a standard 5-field cron expression (the cronie dialect) and a starting date and time, and see when the job runs next.
Which cron this is
This calculator reads the standard 5-field cron expression used by Linux crontab, and it follows the behavior of cronie. It is not a calculator for other cron dialects. In particular, Quartz-style expressions (6 or 7 fields with seconds and years, and the characters ? L W #) are different and are not supported. Schedulers such as AWS EventBridge, Kubernetes CronJob and systemd timers have their own syntax or time zone settings and are not handled either.
| Field | Range | How to write it |
|---|---|---|
| Minute | 0–59 | *, a number, 1,15 (a list), 10-20 (a range), */15 or 0-30/10 (steps) |
| Hour | 0–23 | The same |
| Day of month | 1–31 | The same |
| Month | 1–12 | The same. Names (jan to dec, case-insensitive) also work, in lists and ranges |
| Day of week | 0–7 | The same. Names (sun to sat) also work. 0 and 7 both mean Sunday |
@yearly(@annually) =0 0 1 1 *,@monthly=0 0 1 * *,@weekly=0 0 * * 0,@daily=0 0 * * *,@hourly=0 * * * *. This calculator also accepts@midnightas@daily.- A day-of-week range that ends in 0 (
5-0) is read as ending in 7 (Friday, Saturday, Sunday). - When a step is larger than the range (such as
*/23in the hour field), only the first value and the values the step reaches are used (*/23= hours 0 and 23).
Day of month and day of week: OR and AND
How the day-of-month field and the day-of-week field work together is decided by the cron implementation (cronie).
- If neither field starts with
*, the job runs on days that match either one (OR).30 4 1,15 * 5runs at 4:30 on the 1st and the 15th of each month and every Friday. - If either field starts with
*, the job runs on days that match both (AND). A field that starts with*counts as "no restriction". *and*/2are treated the same, because both start with*. Only the expanded values differ (*/2is the odd days 1, 3, 5 and so on).0 0 */2 * 1= odd days AND Mondays0 0 1-31/2 * 1= odd days OR Mondays (1-31/2does not start with*)
- The result shows whether OR or AND applies.
How far it searches
Starting after the date and time you entered, the calculator checks up to 10 years ahead (but not past December 31, 2100), one day at a time. An expression that runs only every few years, such as one for February 29, is found if it runs within 10 years. If nothing runs within 10 years (for example, because the date never exists), the result says so. The starting time itself is not included (the search is for times "after" it).
Syntax that is not supported
If you enter one of these, the calculator explains why it cannot read it.
- Expressions with 6 or 7 fields (a seconds or year field, as in Quartz)
?,L,Wand#(Quartz syntax)@reboot(a job that runs once at startup, so it has no run times)~(cronie's random values) andCRON_TZ(a time zone per crontab)- A step on a single start value, such as
5/15
Time zones and daylight saving time
The date and time you enter are used as they are, as year, month, day, hour and minute. Time zone conversion and daylight saving time are not calculated, so the result can differ from what cron really does on your system. According to the cronie manual (checked on October 28, 2026), jobs in a time that does not exist because of a daylight saving change are not run, and jobs in a time that occurs twice are run twice. Other cron implementations handle this differently.
Examples
*/15 9-17 * * 1-5runs every 15 minutes from 9:00 to 17:59 on weekdays0 9 * * 1runs at 9:00 every Monday0 0 1 * *runs at 0:00 on the 1st of each month (the same as@monthly)0 0 * * 0and0 0 * * 7both run at 0:00 every Sunday30 4 1,15 * 5runs at 4:30 on the 1st and 15th and every Friday (OR)0 0 29 2 *runs at 0:00 on February 29 of leap years (the next one may be years away)0 0 31 2 *never runs, because February 31 does not exist (nothing is found within 10 years)
Sources and date checked
The syntax and behavior were checked in the source code of cronie (entry.c and cron.c) and in the crontab(5) manual of cronie (cronie on GitHub) on October 28, 2026. For this English page, the crontab(5) manual page on man7.org, which is the cronie manual, was also opened on October 31, 2026. It lists the five fields and their ranges, the month and day-of-week names (the first three letters, case-insensitive, usable in lists and ranges), the OR behavior when neither day field contains *, and the shortcuts @reboot, @yearly, @annually, @monthly, @weekly, @daily and @hourly. That manual page does not list @midnight, and it does not describe the AND behavior; those two points come from the cronie source code. Differences in other cron implementations were not checked.
Frequently asked questions
What happens if I set both the day of month and the day of week?
If neither field starts with *, the job runs on days that match either one (OR). If either field starts with * (including */2), it runs on days that match both (AND).
What is the difference between 0 and 7 in the day of week?
None. Both mean Sunday.
Can the result differ from what my cron really does?
Yes. This calculator uses the date and time you enter as they are and does not calculate time zones or daylight saving time. Cron implementations other than cronie can also behave differently.
Why does nothing show up beyond 10 years?
The search stops 10 years after the starting date and time. An expression for a date that does not exist, such as February 31, never runs.