The cron expression to run a job every 3 hours is 0 */3 * * *. Preview upcoming executions in any timezone and copy it straight into your scheduler.
0minute*/3hour*day*month*weekdayIn Plain English
What your cron expression actually means.
On the hour, every 3 hours, every day
Upcoming Executions
Preview the next 50 times this schedule will trigger.
About 0 */3 * * *
0 */3 * * * fires at minute 0 of every 3 hours, starting at midnight. Since 3 divides 24 evenly, every gap in the day is the same length.
Cron reads the five fields as minute hour day month weekday. For this schedule that breaks down as:
| Field | Position | Matches |
|---|---|---|
0 | minute | 0 |
*/3 | hour | 0, 3, 6, 9, 12, 15, 18, 21 |
* | day of month | every day |
* | month | every month |
* | day of week | every day of the week |
New to cron? Read the syntax reference or the FAQ.
Use it in crontab or GitHub Actions
Both snippets are ready to paste. A crontab runs in the server's local timezone; GitHub Actions always evaluates schedules in UTC. For Kubernetes, AWS EventBridge, or Vercel, use the export menu in the calculator above.
crontab
# On the hour, every 3 hours, every day 0 */3 * * * /path/to/command
GitHub Actions workflow
# On the hour, every 3 hours, every day
# Note: GitHub Actions always runs schedules in UTC.
on:
schedule:
- cron: '0 */3 * * *'