Cron expression for every 30 minutes

Every 30 minutes

*/30
minute
*
hour
*
day (month)
*
month
*
day (week)

Every 30 minutes

Try this expression in the interactive tool:

Open in cron explainer →

Next 10 scheduled runs

#1Thu, 16 Apr 2026, 00:30
#2Thu, 16 Apr 2026, 01:00
#3Thu, 16 Apr 2026, 01:30
#4Thu, 16 Apr 2026, 02:00
#5Thu, 16 Apr 2026, 02:30
#6Thu, 16 Apr 2026, 03:00
#7Thu, 16 Apr 2026, 03:30
#8Thu, 16 Apr 2026, 04:00
#9Thu, 16 Apr 2026, 04:30
#10Thu, 16 Apr 2026, 05:00

Common use cases

Every half hour is a common choice for jobs that produce human-readable output — summary emails, dashboard snapshots, or periodic Slack notifications. The interval is short enough to keep information reasonably current but long enough that the output doesn't feel like spam.

Digest-style notifications work well on this schedule: aggregate all events from the last 30 minutes and send a single summary rather than individual alerts. Database maintenance tasks like updating materialised views or refreshing denormalised tables are also commonly scheduled at 30-minute intervals.

Platform-specific syntax

crontab
*/30 * * * * /path/to/script.sh
AWS EventBridge
rate(30 minutes)
GitHub Actions
schedule:
  - cron: '*/30 * * * *'
Kubernetes
schedule: "*/30 * * * *"

Technical breakdown

The expression */30 * * * * has five fields: minute=*/30, hour=*, day (month)=*, month=*, day (week)=*. Every 30 minutes.

Frequently asked questions

Is */30 the same as 0,30?
Yes, exactly. Both fire at minute 0 and minute 30 of every hour. The */30 form is shorthand; 0,30 is the explicit list. They produce identical schedules.