crontool
Paste a schedule, read it in English, see the next runs.

Cron Expression to Run Every 25 Minutes

The naive answer is */25 * * * *, but it does not fire a clean 25-minute cadence — it resets at the top of each hour. The honest explanation and a working alternative are below.

The naive expression

*/25 * * * * looks like "every 25 minutes" but the step restarts each hour. It fires at :00, :25, :50, then jumps back to :00 — so the gap between :50 and the next :00 is only 10 minutes, not 25.

Why it drifts

The */25 step counts from 0 within the single minute field (0–59). Because 25 does not divide 60 evenly, the pattern cannot line up across the hour boundary. Any interval that is not a divisor of 60 (like 25, 40, 50) has this problem.

If you need an exact 25-minute gap

Cron alone cannot do a true every-25-minutes schedule. Use a systemd timer with OnUnitActiveSec=25min, or have the job reschedule itself, or accept the :00,:25,:50 approximation if the hourly reset is acceptable.

FAQ

What is the cron expression for every 25 minutes?

*/25 * * * * fires at :00, :25, :50, but resets each hour — it is not a true 25-minute interval.

Why does */25 not run exactly every 25 minutes?

Because 25 does not divide 60, the minute step restarts at the top of each hour, leaving a 10-minute gap from :50 to :00.

How do I get an exact 25-minute interval?

Use a systemd timer with OnUnitActiveSec=25min, or have the job sleep/reschedule itself; plain cron cannot do it.