Cron every 20 minutes
*/20 * * * *Every 20 minutes, every hour, every day.
Next runs · UTC
- —
- —
- —
- —
- —
Calendar
September 2026 · UTC
0 runs
About this tool
*/20 * * * *. The minute step expands to 0, 20, 40. Three firings per hour, 72 per day. A common cadence for status updates that don't need every-15-minute precision.The cron expression for every 20 minutes
*/20 * * * *
The minute step */20 resolves to 0, 20, 40 - three firings per hour, 72 per day. Twenty is a divisor of 60 so the spacing is perfectly even.
See the dedicated guide for the full breakdown: Cron every minute.
Paste it into the editor above to see the next runs on a calendar.
When to run a job every 20 minutes
- Polling an API or a queue every 20 minutes when no webhook is available.
- Health checks and uptime probes that should notice an outage within one interval.
- Cache, dashboard, or search-index refreshes where slightly stale data is acceptable.
Run this cron anywhere
*/20 * * * * is five-field cron syntax. It works as is in:
- Linux
crontab-*/20 * * * * /path/to/script.sh - Vercel cron jobs - declare in
vercel.json. - node-cron, robfig/cron and Kubernetes CronJob.
AWS EventBridge and Quartz use six-field expressions with a ? in one of the day fields, so convert first:
- AWS EventBridge -
cron(minute hour day-of-month month ? year); see the AWS guide. - Quartz Scheduler - prepend a seconds field (
0) and replace one day field with?; see the Quartz guide.
Useful variations
*/20 9-17 * * 1-5- every 20 minutes during business hours on weekdays5-59/20 * * * *- every 20 minutes offset by 5 (xx:05, xx:25, xx:45)
Gotchas when running every 20 minutes
- Clock-aligned, not interval-based -
*/20 * * * *fires when the minute matches, counting from minute 0 of each hour. It is not "20 minutes after the previous run", and a run missed while the host was down is not replayed. - Overlapping runs - A run that takes longer than 20 minutes overlaps the next one. Wrap the command in
flock -nor setconcurrencyPolicy: Forbidon Kubernetes; Vercel and EventBridge may overlap runs if the previous one is still executing, so make the handler idempotent.
Examples
- 0 18 * * *Every day at 18:00
- 0 */5 * * *Every 5 hours
- 0 18 * * 1-5Weekdays at 18:00
- 0 0 1 * *Once a month, on the 1st at midnight
Cheatsheet
Full cheatsheet| Field | Req. | Range | Wildcards |
|---|---|---|---|
| minute | yes | 0-59 | , - * / |
| hour | yes | 0-23 | , - * / |
| day of month | yes | 1-31 | , - * / |
| month | yes | 1-12 or JAN-DEC | , - * / |
| day of week | yes | 0-6 or names; some dialects use 0-7 or 1-7 — see Dialects | , - * / |
Frequently asked questions
Timing
Does */20 divide each hour into exact thirds?
Yes. It fires at :00, :20, and :40, so all three gaps—including :40 to the next :00—are exactly 20 minutes. It never selects :10, :30, or :50. Expression: */20 * * * *
How do I offset an every-20-minutes cron by five minutes?
Use 5-59/20 * * * *. It fires at :05, :25, and :45 in every hour. Expression: 5-59/20 * * * *
How do I run every 20 minutes during weekday business hours?
Use */20 9-17 * * 1-5. It fires at :00, :20, and :40 in each included hour, including the 17:00 hour. Expression: */20 9-17 * * 1-5
How do I run at :10, :30, and :50 instead?
Use 10-59/20 * * * *. The range starts the 20-minute step at :10, producing :10, :30, and :50 in each hour. Expression: 10-59/20 * * * *
What maximum polling staleness does every 20 minutes imply?
A change can wait almost 20 minutes before pickup, plus scheduler and execution delay. The cadence runs 72 times daily, compared with 48 for every 30 minutes.
Every 30 minutes guideDays and months
How do I run every 20 minutes all day on weekdays only?
Use */20 * * * 1-5. The schedule keeps its :00/:20/:40 alignment from Monday through Friday and pauses on weekends. Expression: */20 * * * 1-5
Timezones and DST
What happens to an every-20-minutes schedule during DST?
The scheduler decides. Vixie/cronie can skip or double :00/:20/:40 local matches; GitHub advances nonexistent local times; EventBridge Scheduler skips spring and runs once in the fall overlap. UTC-only Vercel and Cloudflare are unaffected.
Timezone and DST referencePlatforms
Do GitHub Actions and EventBridge allow every 20 minutes?
Yes. Twenty minutes is above GitHub Actions' five-minute minimum and EventBridge's one-minute minimum.
Cron dialect matrixWhat is the AWS EventBridge expression for every 20 minutes?
Use cron(0/20 * * * ? *). EventBridge uses six fields including year, requires ? in one day field, and wraps them in cron(...). Expression: 0/20 * * * ? *
What is the Quartz expression for every 20 minutes?
Use 0 0/20 * * * ?. The leading zero is the seconds field, and the minute step selects :00, :20, and :40. Expression: 0 0/20 * * * ?
Crontap
What should I consider before polling every 20 minutes?
This cadence makes 72 calls per day, so account for API quotas, execution cost, and retry traffic. Crontap can run the schedule with retries for failed HTTP calls.
Schedule API callsGeneral
What is the cron expression for every 20 minutes?
*/20 * * * *. Paste this into Linux crontab, Vercel cron, node-cron, robfig/cron, or a Kubernetes CronJob to run a job every 20 minutes; AWS EventBridge and Quartz need the six-field form.
How can I verify this cron actually runs every 20 minutes?
The editor above shows the next 30+ runs on a calendar in your local timezone, plus a plain-English description. If the calendar matches your intent, the cron is correct.
Does */20 * * * * work on every platform?
Linux crontab, Vercel cron jobs, node-cron, robfig/cron, and Kubernetes CronJob accept the five-field form as is. AWS EventBridge and Quartz use six-field expressions with a ? in one of the day fields; see the AWS and Quartz guides for the conversion. Vercel's free Hobby plan caps the minimum frequency at once-per-day; the Pro plan removes that cap.
What happens if the previous run is still going when the next one fires?
Most schedulers will start the new run anyway, leading to overlap. To prevent this, wrap the command with flock -n /tmp/myjob.lock /path/to/script.sh on Linux, or set concurrencyPolicy: Forbid on Kubernetes CronJob. Vercel and EventBridge may overlap runs if the previous one is still executing; make the handler idempotent.
Write the cron here. Run it on Crontap.
Point Crontap at any URL. Pick any cron. Done.
WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks.
1.9k+ teams · Free forever tier · No credit card