Cron expression
Every 6 hours
0 */6 * * *
Runs four times a day: at 00:00, 06:00, 12:00 and 18:00.
Runs per month
≈ 120
Next run (UTC)
Thu 18:00
On CronEngine
Runs on the free plan
What each part means
| Minute | 0 | at minute 0 |
| Hour | */6 | every 6 hours |
| Day of month | * | every day of the month |
| Month | * | every month |
| Day of week | * | every day of the week |
Next runs
- 1 Thursday 22 October 2026 18:00 UTC
- 2 Friday 23 October 2026 00:00 UTC
- 3 Friday 23 October 2026 06:00 UTC
- 4 Friday 23 October 2026 12:00 UTC
- 5 Friday 23 October 2026 18:00 UTC
See these in your own timezone, or change the schedule →
Good to know
- The same as 0 0,6,12,18 * * *. The step version is shorter, the list version easier to change later.
- With only four runs a day, a single failed run is a long gap. A heartbeat or failure alert is worth more here than on a job that runs every minute.
Typical uses: Database backups, certificate checks, larger data exports.
Copy and paste
0 */6 * * * /path/to/script.sh
on:
schedule:
- cron: '0 */6 * * *'
GitHub Actions reads this in UTC, and scheduled runs can start late when GitHub is busy. How to start it on time.
Schedule::command('your:command')->everySixHours();
Variations
| 0 3,9,15,21 * * * | Every 6 hours, shifted to avoid midnight |
| 0 */12 * * * | Every 12 hours → |
Questions
What is the cron expression for every 6 hours?
0 */6 * * *. Runs four times a day: at 00:00, 06:00, 12:00 and 18:00.
Can GitHub Actions run every 6 hours?
Yes, with cron: '0 */6 * * *'. GitHub Actions reads this in UTC, and scheduled runs can start late when GitHub is busy.
More schedules: hours
← All cron schedules · Cron cheat sheet · Cron expression generator