Cron: Every 30 minutes (*/30 * * * *)
Plain-English meaning, run times, and visual editor for the */30 * * * * cron schedule. No sign-up required.
What does */30 * * * * mean?
The cron expression */30 * * * * translates to “Every 30 minutes”. It is one of the most commonly used schedules (every 30 minutes).
The `*/30` step fires just twice an hour, at :00 and :30 - the top of the hour and the half-hour. This is the lightest of the sub-hourly schedules, a good default when "a couple of times an hour" is plenty: batch imports, moderate-cost API calls, or a job whose work simply does not change fast enough to justify running more often. Halving to two runs an hour also makes overlaps essentially impossible for anything but very long jobs.
Use the builder above to tweak this expression and instantly see how the description and the next run times change.
Example runs from Jan 1, 2026 (UTC)
- Thu Jan 01 2026, 00:30 UTC
- Thu Jan 01 2026, 01:00 UTC
- Thu Jan 01 2026, 01:30 UTC
- Thu Jan 01 2026, 02:00 UTC
- Thu Jan 01 2026, 02:30 UTC
Frequently Asked Questions
About cron expressions and this generator.
It runs twice an hour: once at the top of the hour (minute 0) and once at the half-hour mark (minute 30).
You can append "1-5" in the day-of-week field: "*/30 * * * 1-5".
Related cron expressions
From the blog
Cron Expressions Explained: A 5-Field Cheatsheet
A technical reference for POSIX cron expressions: the 5-field syntax, step-value math traps, and the Day-of-Month vs. Day-of-Week OR-behavior that catches everyone.
Read →cronCron Syntax Across Schedulers: Unix vs. Quartz vs. AWS EventBridge
Why your cron expression failed in the cloud. A technical breakdown of the differences between POSIX, Java Quartz, AWS, and Node.js schedulers.
Read →cronWhy Your Cron Job Failed: Debugging Timezones, PATH Variables, and Overlaps
A practical guide to diagnosing standard runtime failure modes in cron daemons. Learn why your script works in the terminal but fails silently in the background.
Read →