Cron Expression Explainer

Translate any cron expression into plain English — and build your own.

Free cron expression explainer and builder. Paste a 5-field cron expression and get an instant plain-English description. Use presets or build from scratch. Supports */n steps, ranges, and comma lists. Runs entirely in your browser — nothing sent to any server. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What does "*/15 * * * *" mean?

It means "every 15 minutes". The */n pattern in a field means "every nth value of that field" — so */15 in the minute field fires at minute 0, 15, 30, and 45 of every hour.

Cron expression explainer and builder

This tool translates any 5-field cron expression into a plain-English sentence and breaks each field down so you can spot mistakes at a glance. It’s for anyone scheduling a job in crontab, GitHub Actions, Railway, AWS EventBridge, or a CI pipeline who wants to confirm a schedule reads the way they intended before shipping it.

How it works

A cron expression has five space-separated fields: minute, hour, day-of-month, month, day-of-week. The tool splits on whitespace, validates each field against its allowed range, and translates it. It understands * (every value), */n steps (every nth value), x/n (every nth value starting at x), a-b ranges, and a,b,c comma lists. It then assembles the parsed parts into one sentence — taking care with the cron rule that when both day-of-month and day-of-week are set, the job runs when either matches. Eight presets seed common schedules.

Example expressions explained

The expression:

30 8 * * 1-5

explains as: at 08:30, Monday through Friday. Field by field — minute 30, hour 8, every day of the month, every month, days Monday–Friday. This is the pattern you would use for a weekday morning report or a business-hours job.

A few more common patterns:

0 */4 * * *        →  every 4 hours (at minute 0)
0 0 1 * *          →  at midnight on the 1st of every month
15 14 1 * *        →  at 14:15 on the 1st of every month
0 22 * * 1-5       →  at 22:00 on weekdays

The day-of-month and day-of-week OR trap

A well-known cron surprise: if you restrict both the day-of-month and day-of-week fields, the daemon treats them as an OR. The expression 0 9 15 * 1 fires at 09:00 on the 15th of every month and at 09:00 every Monday — not just on Mondays that happen to fall on the 15th. If you want the second Monday of the month, cron cannot express that directly; you need a wrapper script. The explainer calls this out in the translation so you do not ship the wrong schedule by accident.

Field reference

FieldPositionRange* means
Minute10–59every minute
Hour20–23every hour
Day of month31–31every day
Month41–12every month
Day of week50–6 (0 = Sun)every weekday

Where cron expressions run

The standard 5-field format is accepted by crontab on Linux and macOS, GitHub Actions schedules, AWS EventBridge, Railway’s cron service, Heroku Scheduler, and most CI/CD platforms. Tools like Quartz (Java) and some Node.js libraries add a 6th field for seconds — this explainer covers the 5-field POSIX format. All parsing runs locally in your browser — nothing is sent to any server.