Cron Expression Builder

Generate and explain a cron schedule expression visually

Builds a valid five-field cron expression from minute, hour, day-of-month, month, and weekday inputs, then explains in plain English exactly when the schedule runs, with quick presets for common intervals. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What are the five cron fields?

In order they are minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6, where 0 is Sunday). An asterisk means every value.

Cron Expression Builder

Cron is the standard syntax for scheduling recurring jobs on Unix systems, in container orchestrators, CI pipelines, and cloud schedulers. Its five compact fields are easy to get wrong. This builder lets you set each field, applies quick presets, and translates the result into a plain-English sentence so you can confirm the schedule before shipping it.

Field reference

A cron expression has five space-separated fields:

┌ minute (0-59)
│ ┌ hour (0-23)
│ │ ┌ day of month (1-31)
│ │ │ ┌ month (1-12)
│ │ │ │ ┌ day of week (0-6, Sun=0)
* * * * *

Each field accepts a single value, * for every value, a list like 0,30, a range like 1-5, or a step like */15. The builder validates each entry against its allowed range and then describes the schedule by reading the fields together, naming weekdays and months where helpful.

Common patterns and what they produce

ExpressionFires
*/5 * * * *Every 5 minutes
0 9 * * 1-5At 09:00 Monday through Friday
0 0 1 * *At midnight on the first of every month
30 6 * * 0At 06:30 every Sunday
0 */4 * * *At the start of every fourth hour (00:00, 04:00, 08:00 …)
0 12 15 * *At noon on the 15th of every month

Important behaviours to understand

Day-of-month and day-of-week interaction: in standard cron, when both the day-of-month and day-of-week fields are explicitly restricted (neither is *), the job fires when either condition is true, not when both are true simultaneously. For example 0 9 15 * 1 fires at 09:00 on the 15th of every month and at 09:00 every Monday — not only on Mondays that fall on the 15th. This surprises many people. If you want to restrict to one axis only, set the other to *.

Time zones on servers: cron evaluates against the server’s system clock, which is usually UTC on cloud and VPS instances. A job set to 0 9 * * * fires at 09:00 UTC — which is 10:00 BST in summer or 05:00 Eastern time. Always confirm your platform’s clock before deploying a time-sensitive schedule.

Minimum resolution: standard cron can only fire at most once per minute. For sub-minute jobs you need a dedicated scheduler or a loop inside the job itself.

Building and verifying a schedule

Set each field individually or start from a preset, then read the plain-English summary to confirm you have the right schedule. Copy the finished expression and paste it directly into your crontab, GitHub Actions schedule: block, Kubernetes CronJob spec, or cloud scheduler. The builder runs entirely in your browser — nothing is sent to any server.