Cron Expression for Every 30 Minutes

Every 30 minutes, 48 times a day
*/30 * * * *

Cron reads this as: every 30th minute.

Next 5 runs

These times are in your browser's local time zone. Cron itself uses the server's zone, which on most cloud hosts is UTC. If the difference matters here, see time zones & DST.

When to use this schedule

It runs twice an hour, on the hour and on the half hour. This is a sensible shortest interval for jobs that call an external API with a real per-call cost, and a common choice for mailbox polling, moderate ETL steps and refreshing derived data that nobody watches in real time.

What to watch out for

Because it fires only twice an hour, a single failed run doubles how stale your data gets. At this interval a dead-man's-switch check-in is worth setting up, because you cannot rely on someone noticing the gap. 0,30 * * * * is an identical and arguably clearer way to write it.

The crontab line

*/30 * * * * /usr/local/bin/your-job.sh >> /var/log/your-job.log 2>&1

Send the output to a log you will read. By default cron mails it, and on a host with no mail transport that mail is silently dropped. See the crontab guide for the surrounding syntax.

Related schedules

Variations on every 30 minutes
ExpressionSchedule
0,30 * * * *Same schedule, written as a list
15,45 * * * *Twice an hour, offset by 15 min
0 * * * *Once an hour

Build your own

If this page doesn't cover the schedule you need, compose it field by field in the visual builder, or paste an expression you already have into the explainer for a per-field breakdown. The examples library has sixty schedules in one place, and the guides cover crontab syntax, time zones, troubleshooting and production practices.