Cron expression for every 30 minutes

The cron expression to run a job every 30 minutes is */30 * * * *. See the next run times in your timezone.

*/30minute
*hour
*day
*month
*weekday

In Plain English

What your cron expression actually means.

Every 30 minutes, every hour, every day

Upcoming Executions

Preview the next 50 times this schedule will trigger.

Calculating…

About */30 * * * *

*/30 * * * * runs a job every 30 minutes, on the minute. Because 30 divides 60 evenly, the spacing stays consistent across every hour boundary.

Cron reads the five fields as minute hour day month weekday. For this schedule that breaks down as:

FieldPositionMatches
*/30minute0, 30
*hourevery hour
*day of monthevery day
*monthevery month
*day of weekevery day of the week

New to cron? Read the syntax reference or the FAQ.

Use it in crontab or GitHub Actions

Both snippets are ready to paste. A crontab runs in the server's local timezone; GitHub Actions always evaluates schedules in UTC. For Kubernetes, AWS EventBridge, or Vercel, use the export menu in the calculator above.

crontab

# Every 30 minutes, every hour, every day
*/30 * * * * /path/to/command

GitHub Actions workflow

# Every 30 minutes, every hour, every day
# Note: GitHub Actions always runs schedules in UTC.
on:
  schedule:
    - cron: '*/30 * * * *'

Repeating intervals

Build a custom cron expression →