Cron expression for every 10 minutes
Every 10 minutes.
Five fields for Linux, GitHub Actions and Kubernetes (minute hour day month weekday). Six or seven for Quartz. Nothing you type leaves your device.
What it means and when to use it
Ten minutes suits jobs that are a little heavy for five-minute polling: pulling a report from an API with a rate limit, rebuilding a small index, copying new files to another server, or sending a "still alive" ping to a monitoring service. It gives six runs an hour and 144 a day, which is easy to read in a log.
Watch out for this
Many people start every job at minute 0, so a schedule on minutes 0, 10, 20 meets the same crowd that starts at the top of every hour. On a shared server that can mean ten jobs waking at once. If exact alignment does not matter, move the whole pattern by a few minutes with 3-59/10, which fires at 3, 13, 23, 33, 43 and 53. Remember the last gap is then 10 minutes again, not shorter, because a step never wraps into the next hour.
What each field says
| Field | Written | Means |
|---|---|---|
| Minute | */10 | 0, 10, 20, 30, 40, 50 |
| Hour | * | every hour |
| Day of month | * | every day of the month |
| Month | * | every month |
| Day of week | * | every day of the week |
An example of the next runs
If it were Friday 13 November 2026 at 10:20 UTC, the next six runs would be these. Times are shown in UTC and in India time (UTC+5:30).
| UTC | India time |
|---|---|
| Fri 13 Nov, 10:30 | Fri 13 Nov, 16:00 |
| Fri 13 Nov, 10:40 | Fri 13 Nov, 16:10 |
| Fri 13 Nov, 10:50 | Fri 13 Nov, 16:20 |
| Fri 13 Nov, 11:00 | Fri 13 Nov, 16:30 |
| Fri 13 Nov, 11:10 | Fri 13 Nov, 16:40 |
| Fri 13 Nov, 11:20 | Fri 13 Nov, 16:50 |
The same schedule in other places
Quartz
Quartz has a seconds field in front, uses ? in one day field, and counts Sunday as 1:
0 */10 * * * ?GitHub Actions
Scheduled workflows run in UTC unless you add a time zone. In the workflow file:
on:
schedule:
- cron: '*/10 * * * *'Kubernetes CronJob
In a CronJob manifest the schedule goes in spec.schedule. Without spec.timeZone, it is read in the time zone of the cluster's controller:
spec:
schedule: "*/10 * * * *"
timeZone: "Etc/UTC"A crontab line to copy
The command is made up. Replace it with your own and use full paths:
*/10 * * * * cd /srv/app && ./refresh-report.sh >> /var/log/refresh.log 2>&1Questions
What is the difference between */10 and 0,10,20,30,40,50?
None for cron: both give the same six minutes. The step form is shorter and harder to mistype.
This is an independent guide and tool. It is not connected with crontab.guru, Quartz, GitHub, Kubernetes, Spring or the Linux projects named here. Product names belong to their owners.