tooloora

Cron every 30 minutes — */30 * * * * explained

Half-hourly means minute 0 and minute 30 — identical to 0,30, and a schedule that survives a slow run.

Runs locally — nothing is uploaded

Examples

In plain words

Every 30 minutes, every day.

Field by field

  • */30Minute

    every 30 minutes

    Matches: 0, 30

  • *Hour

    every hour

    Matches: 0, 1, 2, 3, 4, 5 … 23

  • *Day of month

    on every day of the month

    Matches: 1, 2, 3, 4, 5, 6 … 31

  • *Month

    in every month

    Matches: Jan, Feb, Mar, Apr, May, Jun … Dec

  • *Day of week

    on every weekday

    Matches: Sun, Mon, Tue, Wed, Thu, Fri, Sat

Next runs

Calculating the next runs …

These times apply in the time zone configured on the server. Cron converts nothing; this preview uses your device clock.

The expression stays in your browser — it is never sent to a server.

Other expressions

*/30 * * * * runs the job every half hour: at minute 0 and minute 30 of every hour, 48 times a day. It is the shortest interval that still leaves a slow job plenty of headroom, which makes it the default for syncs and imports that take a couple of minutes.

Why write */30 instead of 0,30?

Both mean exactly the same two minutes, and no cron implementation distinguishes them. The step form scales better when you change your mind: turning */30 into */20 is one keystroke, while a list has to be rewritten. The list wins only when the pattern is deliberately irregular, like 5,35 to sit off the round minutes.

What does a half-hourly job cost in a month?

Exactly 1,440 runs in a 30-day month, 48 a day. That matters when each run calls a paid API, spins up a container or writes a log line: 1,440 entries a month fill a log file faster than most people expect. Multiply the runtime by the number of runs before you settle on an interval.

How do I make it every 30 minutes during the day only?

Restrict the hour field: */30 7-19 * * * runs from 7 a.m. through 7:59 p.m. and stays quiet at night. If you need two different rhythms, use two crontab lines — one for the busy hours, one with a coarser interval for the rest. Cron has no if-then, so two lines are the idiomatic answer.

How to add the expression

  1. Add */30 * * * * plus the command to your crontab and save it.
  2. Redirect output to a log file and rotate that file, otherwise 1,440 runs a month will quietly fill the disk.
  3. If the job is slower than a few minutes, guard it with flock -n so two runs never overlap.
  4. Verify the next run times above match the half-hour rhythm you expect.

Frequently asked questions

Does */30 run at :30 and :00 or at :15 and :45?

At minute 0 and minute 30. The step always starts at the beginning of the range, which for the minute field is 0. If you want the off-beats, write 15,45 or 15-59/30 explicitly.

Can I run something every 90 minutes?

Not with a single step, because the minute field resets every hour. The usual solution is to spell out the hours: 0 0,3,6,9,12,15,18,21 * * * gives a three-hour rhythm, and for 90 minutes you need two lines with different hour lists.

What is the difference to @hourly?

@hourly is exactly 0 * * * * and fires once an hour at minute 0. */30 fires twice as often. There is no built-in shortcut for half-hourly schedules, so the step form is the way to write it.

Does the tool need an internet connection?

Only to load the page. After that everything runs locally in your browser: your expression is never sent anywhere, and the next run times are computed on your device from your own clock.