Cron Expression to Run Multiple Times Per Day
Table of Contents
Running a cron job multiple times per day is one of the most common scheduling patterns — whether you need a twice-daily backup, hourly polling during business hours, or quarter-hourly data syncs. There are two approaches: comma-separated specific times, or step intervals with / notation.
Use our free cron generator to build multi-daily schedules with the custom frequency mode, or grab any of the ready-to-use patterns below.
Twice Daily Cron Expressions
The simplest approach: list specific hours separated by commas in the hour field.
| Schedule | Cron Expression |
|---|---|
| 9 AM and 9 PM | 0 9,21 * * * |
| Midnight and noon | 0 0,12 * * * |
| 8 AM and 5 PM | 0 8,17 * * * |
| Every 12 hours from midnight | 0 */12 * * * |
| Every 12 hours from 6 AM | 0 6,18 * * * |
The comma-list approach gives you precise control over exact times. The step notation */12 gives you equal spacing but always starts from midnight.
3 or 4 Times Per Day Cron Expressions
| Schedule | Cron Expression |
|---|---|
| 3 times: 8 AM, 2 PM, 8 PM | 0 8,14,20 * * * |
| Every 8 hours from midnight | 0 */8 * * * |
| Every 6 hours (4x daily) | 0 */6 * * * |
| 4 times: 6 AM, 12 PM, 6 PM, midnight | 0 0,6,12,18 * * * |
| Every 4 hours | 0 */4 * * * |
| Every 3 hours | 0 */3 * * * |
Multiple Executions During Business Hours Only
To run multiple times per day but only during business hours, combine an hour range with a step or list:
# Every 2 hours, 9 AM to 5 PM 0 9,11,13,15,17 * * * # Every hour during business hours (9-5) 0 9-17 * * * # Every 30 minutes during business hours */30 9-17 * * * # Weekdays only, every 2 hours during business hours 0 9,11,13,15,17 * * 1-5
Sub-Hourly Multiple Times (Every N Minutes)
For higher frequency — multiple times per hour rather than per day — use the minute field:
| Schedule | Cron Expression |
|---|---|
| Every 15 minutes (4x/hour) | */15 * * * * |
| Every 20 minutes (3x/hour) | */20 * * * * |
| Every 30 minutes (2x/hour) | */30 * * * * |
| At :00, :15, :30, :45 | 0,15,30,45 * * * * |
| At :00 and :30 only | 0,30 * * * * |
For sub-minute scheduling (every 10 or 30 seconds), standard cron can't do it. You'd need Spring Boot's @Scheduled with a 6-field expression, or a loop inside your script with sleep calls.
Try It Free — No Signup Required
Runs 100% in your browser. No account, no install, no limits.
Open Free Cron GeneratorFrequently Asked Questions
How do I run a cron job exactly twice a day at specific times?
Use comma-separated values in the hour field. Example: "0 9,21 * * *" runs at 9 AM and 9 PM every day. You can list any combination of hours: "0 8,17 * * *" for 8 AM and 5 PM.
What is the cron expression for every 6 hours?
"0 */6 * * *" runs every 6 hours starting from midnight: at 00:00, 06:00, 12:00, and 18:00. If you want it at specific times instead (like 3 AM, 9 AM, 3 PM, 9 PM), use "0 3,9,15,21 * * *".
Can cron run more frequently than once per minute?
No, standard cron has a minimum interval of one minute. For sub-minute scheduling, you need a different tool: Spring Boot @Scheduled supports a seconds field, or your script can run a loop with sleep intervals.

