Every N minutes
*/20 * * * *
Run three times an hour, :00, :20, :40.
This preview is live: the table below shows the actual next run times for */20 * * * * in your time zone, recomputed in your browser. Change the expression, dialect, or zone to experiment, then copy the result.
What */20 * * * * means
*/20 * * * * fires three times an hour, on the thirds of the hour. It is a tidy compromise when every-15 is slightly too chatty but every-30 leaves too long a gap, three even runs that always start at :00, :20, and :40.
Twenty-minute cadence is common for session-cleanup and token-refresh work, where the window must be comfortably shorter than the thing you are protecting (a 30-minute session, a one-hour token) but you do not want to run constantly.
Field-by-field breakdown
Unix cron has five fields. Here is what each one is doing in this expression:
| Field | Value | Meaning |
|---|---|---|
| Minute | */20 | every 20 (step) across minute |
| Hour | * | every hour |
| Day of month | * | every day-of-month |
| Month | * | every month |
| Day of week | * | every day-of-week |
Every 20 minutes in every scheduler
The same cadence written for the seven cron dialects you are most likely to meet. Copy the line for the system you target, the field count and day-of-week numbering differ between them.
| Scheduler | Expression | Copy |
|---|---|---|
| Unix / crontab | */20 * * * * | |
| GitHub Actions | */20 * * * * | |
| Kubernetes CronJob | */20 * * * * | |
| Vercel Cron | */20 * * * * | |
| Quartz | 0 */20 * * * * * | |
| Spring | 0 */20 * * * * | |
| AWS EventBridge | */20 * * * * * |
When you would use */20 * * * *
- Expiring stale sessions or pruning soft-deleted rows.
- Refreshing OAuth tokens that live for an hour.
- Recomputing a leaderboard or trending list.
The gotcha worth knowing
Because 60 ÷ 20 = 3 exactly, the cadence is regular, but if you ever change it to */40, the slash math breaks: */40 fires at :00 and :40 only, then waits 20 minutes to :00, not 40.
People also search for
*/20 * * * * FAQ
What does the cron expression */20 * * * * mean?
*/20 * * * * means: Run three times an hour, :00, :20, :40. */20 * * * * fires three times an hour, on the thirds of the hour. It is a tidy compromise when every-15 is slightly too chatty but every-30 leaves too long a gap, three even runs that always start at :00, :20, and :40.
How do I write "every 20 minutes" in GitHub Actions?
Use */20 * * * * in the schedule's cron field. Because 60 ÷ 20 = 3 exactly, the cadence is regular, but if you ever change it to */40, the slash math breaks: */40 fires at :00 and :40 only, then waits 20 minutes to :00, not 40.
How do I write "every 20 minutes" for AWS EventBridge?
EventBridge uses six fields with a required year and a ? placeholder in one day field: */20 * * * * *. Wrap it as cron(*/20 * * * * *) in the console or CloudFormation.
What is the Quartz equivalent of */20 * * * *?
Quartz is seconds-first with a trailing year, so the equivalent is 0 */20 * * * * *. Remember Quartz numbers Sunday as 1, the opposite of Unix.
Related cron patterns
More cron tools
Browse the full set of cron pattern pages, or jump to the interactive tools: the cron expression builder for designing a schedule from scratch, the cron cheat sheet for a side-by-side reference, the cron timezone translator for moving a schedule between zones and dialects, and the GitHub Actions cron picker for DST-stable CI schedules.