Yes it is. You can use the following cron expression:
5-59/20 * * * *An asterisk (*) in the minute field is equivalent to 0-59/1, where 0-59 represents the range and 1 is the step. The command will execute at the initial minute of the range (5), then at each subsequent minute that is separated by the step (20), up until the final minute (59).
The start-end/step syntax is the most flexible way to write “every N minutes starting at M”. It expands to: 5, 25, 45 in this case (next would be 65, which is out of range, so the field terminates). Without the explicit start (*/20), the expression would fire at 0, 20, and 40 — not what you asked for.
Two pitfalls worth knowing: 1) the step does not wrap, so 50-10/20 is invalid — wrap it manually with a list: 50,10,30. 2) not every divisor produces evenly-spaced runs across hours. 5-59/20 fires three times one hour and two the next depending on whether 65 (=05 next hour) is in range. Use the calendar view in CronTool to verify before relying on it for SLA-sensitive jobs.
For the strictly-every-20-minutes pattern (with a 0/20/40 cadence at the top of every hour), see the every-15-minutes guide for the same idea applied to other intervals.
Read the dedicated guide: Cron every 15 minutes.
View future cron matches in a calendar
Showing next 1000 cron schedules
See this cron expression on the calendar → view example
Other answers and worked examples for the most confusing cron expressions.
Ready to schedule it?
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.
Free forever tier ・ No credit card required
Schedule
“every 5 minutes”
Next run
in 23s
Permalink: https://tool.crontap.com/help/cron-job-expression-every-number-of-minutes