Cron · Every 30 minutes · Half hour
Cron Job Every 30 Minutes
Updated: May 2026
A half-hour schedule keeps data reasonably fresh without the overhead of more frequent runs. The expression to remember is */30 * * * *, which fires twice an hour, on the hour and on the half hour.
See the next run times instantly · No upload
The expression
*/30 * * * * /path/to/command
The */30 step fires at minute 0 and minute 30 of every hour — 48 runs per day. It is identical to writing 0,30 * * * *. Both forms are widely used; the list form is sometimes preferred because it reads as an explicit "at :00 and :30".
Shifting the half hour
If you would rather run at quarter-past and quarter-to, list the minutes directly:
15,45 * * * * /path/to/command
This still runs every 30 minutes, but at :15 and :45 instead of :00 and :30. Offsetting like this is a simple way to avoid colliding with other top-of-hour jobs on a busy server.
Useful variations
*/30 9-18 * * 1-5— every 30 minutes, 9am–6pm, weekdays.0,30 * * * 0,6— every 30 minutes on weekends only.15,45 8-20 * * *— offset half-hour runs during the day.0,30 0-6 * * *— every 30 minutes overnight for batch processing.
Choosing the right cadence
Thirty minutes suits jobs that are moderately expensive — report generation, mailbox polling, syncing a remote cache — where running every five minutes would waste resources and once an hour would feel stale. If a single run risks taking longer than 30 minutes, guard it with a lock so two copies never overlap. As always, paste your final line into the generator to confirm the meaning and preview the next executions before committing it to your crontab.
Frequently asked questions
Does */30 run at midnight?
Yes. The schedule includes minute 0 of hour 0, so 00:00 and 00:30 are both run times.
How many times per day does it run?
Two runs per hour over 24 hours equals 48 runs per day.
Can I run every 30 minutes only on the 1st?
Yes. */30 * 1 * * restricts it to the first day of each month.