Every 15 minutes, during hours 09 through 17, on Monday through Friday
Upcoming runs
Tue 2026-09-29 09:00 UTC
Tue 2026-09-29 09:15 UTC
Tue 2026-09-29 09:30 UTC
Tue 2026-09-29 09:45 UTC
Tue 2026-09-29 10:00 UTC
Tue 2026-09-29 10:15 UTC
Tue 2026-09-29 10:30 UTC
Tue 2026-09-29 10:45 UTC
Tue 2026-09-29 11:00 UTC
Tue 2026-09-29 11:15 UTC
Time until the next run
9 h
Runs on each matching day
36
Times are UTC. A cron daemon uses its server's time zone (or CRON_TZ), so shift these if the server isn't on UTC.
Every 15 minutes, during hours 09 through 17, on Monday through Friday. The next run after the start is Tue 2026-09-29 09:00 UTC, followed by Tue 2026-09-29 09:15 UTC.
Next runs
Upcoming runs (UTC) 行数:10
#
Run
1
Tue 2026-09-29 09:00 UTC
2
Tue 2026-09-29 09:15 UTC
3
Tue 2026-09-29 09:30 UTC
4
Tue 2026-09-29 09:45 UTC
5
Tue 2026-09-29 10:00 UTC
6
Tue 2026-09-29 10:15 UTC
7
Tue 2026-09-29 10:30 UTC
8
Tue 2026-09-29 10:45 UTC
9
Tue 2026-09-29 11:00 UTC
10
Tue 2026-09-29 11:15 UTC
计算方法 S
Minute: */15
4 values: 0, 15, 30, 45.
Hour: 9-17
9 values: 9, 10, 11, 12, 13, 14, 15, 16, 17.
Day of month: *
Every day of month.
Month: *
Every month.
Day of week: MON-FRI
5 values: Mon, Tue, Wed, Thu, Fri.
Combine the two day fields
At least one day field starts with *, so a day must match both (with * matching everything).
Scan forward
Starting after 2026-09-29 00:00 UTC, check each day, then each matching hour and minute, until 10 runs are found.
关于Cron expression parser and explainer
A cron expression has five fields: minute (0–59), hour (0–23), day of month (1–31), month (1–12 or JAN–DEC) and day of week (0–7 or SUN–SAT, where 0 and 7 both mean Sunday). Each field takes a single value, a comma-separated list, a range with a hyphen or a step with a slash. The parser expands every field into its set of values, then scans forward day by day for the minutes that match all five.
The default, */15 9-17 * * MON-FRI, runs every 15 minutes from 09:00 to 17:45 on weekdays, which is 36 runs on each matching day. Started at midnight on Thursday 15 January 2026, its first run is 09:00 that morning.
When day of month and day of week are both restricted, cron runs on days that match either one, as crontab(5) specifies. Times here are UTC; a cron daemon uses its server's time zone, or CRON_TZ in cronie.
计算示例
Every 15 minutes in office hours
Cron 表达式
*/15 9-17 * * MON-FRI
Start date (UTC)
2026-01-15
Start time (UTC)
00:00
Next run
Thu 2026-01-15 09:00 UTC
Upcoming runs
Thu 2026-01-15 09:00 UTC
Thu 2026-01-15 09:15 UTC
Thu 2026-01-15 09:30 UTC
Thu 2026-01-15 09:45 UTC
Thu 2026-01-15 10:00 UTC
Thu 2026-01-15 10:15 UTC
Thu 2026-01-15 10:30 UTC
Thu 2026-01-15 10:45 UTC
Thu 2026-01-15 11:00 UTC
Thu 2026-01-15 11:15 UTC
Runs on each matching day
36
Time until the next run
9 h
核验来源:Brute-force Python 3.8 datetime scan minute by minute with an independent field parser; 4 minutes × 9 hours = 36 runs a day; 09:00 − 00:00 = 32400 s
Daily at 09:00, starting exactly at 09:00 (edge)
Cron 表达式
0 9 * * *
Start date (UTC)
2026-01-15
Start time (UTC)
09:00
Runs to list
3
Next run
Fri 2026-01-16 09:00 UTC
In plain English
At 09:00, every day
Upcoming runs
Fri 2026-01-16 09:00 UTC
Sat 2026-01-17 09:00 UTC
Sun 2026-01-18 09:00 UTC
核验来源:crontab(5): runs are strictly after the start; confirmed by the Python brute-force scan
Leap day only
Cron 表达式
0 0 29 2 *
Start date (UTC)
2026-01-15
Start time (UTC)
00:00
Runs to list
3
Next run
Tue 2028-02-29 00:00 UTC
Upcoming runs
Tue 2028-02-29 00:00 UTC
Sun 2032-02-29 00:00 UTC
Fri 2036-02-29 00:00 UTC
核验来源:Python 3.8 calendar.isleap and datetime weekday, via the brute-force scan
Day 1 or Monday (both day fields restricted)
Cron 表达式
0 12 1 * MON
Start date (UTC)
2026-01-15
Start time (UTC)
00:00
Runs to list
5
Upcoming runs
Mon 2026-01-19 12:00 UTC
Mon 2026-01-26 12:00 UTC
Sun 2026-02-01 12:00 UTC
Mon 2026-02-02 12:00 UTC
Mon 2026-02-09 12:00 UTC
核验来源:crontab(5) OR rule for day-of-month and day-of-week, checked by the Python brute-force scan
常见问题
What does */5 mean in a cron expression?
*/5 means every 5th value of the field, counted from the field's first value. In the minute field it fires at minutes 0, 5, 10 … 55, which is 12 times an hour. A step can follow a range too: 10-30/10 gives minutes 10, 20 and 30. Steps restart each hour, so */7 runs at minute 56 and then again at minute 0.
How do I run a cron job every day at midnight?
Write 0 0 * * *, which means minute 0 of hour 0 on every day, or use the @daily macro, which cronie and Vixie cron expand to the same five fields. For 2:30 a.m. every day write 30 2 * * *, and for 09:00 on weekdays write 0 9 * * 1-5. The hour is read in the server's time zone unless the crontab sets CRON_TZ.
How do day of month and day of week combine in cron?
If both fields are restricted, cron runs when either one matches, so 0 12 1 * MON fires at noon on the 1st of every month and on every Monday. In Vixie cron and cronie, a day field that starts with * switches this to both, which is why 0 0 */2 * FRI runs only on Fridays that fall on odd dates such as the 23rd.
Why does my cron expression have 6 or 7 fields?
Standard cron uses 5 fields. Quartz and Spring schedulers put a seconds field in front, making 6, and Quartz accepts an optional year as a 7th, so an expression like 0 0/15 * * * ? belongs to those tools rather than crontab; the ? placeholder is Quartz syntax. This parser reads the 5-field crontab format plus the @hourly, @daily, @weekly, @monthly and @yearly macros.
Can cron run a job every 30 seconds?
Not directly: the smallest unit in a crontab is 1 minute, because the first field is the minute. The usual workaround is two entries, * * * * * job and * * * * * sleep 30; job, which start the job at 0 and 30 seconds past each minute. systemd timers accept OnCalendar schedules down to the second if you need finer control.
“Cron expression parser and explainer”有多准确?
准确性取决于输入值和方法的假设。十进制运算使用50位有效数字,但估算、数值方法和源数据的精度可能较低;显示时的舍入并不能消除这些限制。 已按独立来源核验的计算示例:7。 例如,“Every 15 minutes in office hours”根据Brute-force Python 3.8 datetime scan minute by minute with an independent field parser; 4 minutes × 9 hours = 36 runs a day; 09:00 − 00:00 = 32400 s进行核验。