Cron Expression Generator

Type a cron expression and read it back in plain English, with the next 5 run times in any timezone — the part most cron tools skip, and the part that catches the “wait, whose midnight?” mistakes.

 

The 5 fields

A cron expression is five space-separated fields: minute hour day-of-month month day-of-week. Each accepts a number, a range (1-5), a list (0,30), a step (*/15), or * for any value.

FieldValuesExample
Minute0-59*/15 = :00, :15, :30, :45
Hour0-239-17 = business hours
Day of month1-311 = the 1st
Month1-12 or JAN-DEC*/3 = quarterly
Day of week0-6 or SUN-SAT (0 and 7 = Sunday)1-5 = weekdays

Two rules that surprise people. When both the day-of-month and day-of-week fields are restricted, the job fires when either matches — 0 9 1 * 1 runs on the 1st and every Monday. And there is no seconds field: standard cron's resolution is one minute, so 6-field expressions belong to Quartz and Spring, not crontab.

Common schedules

Timezones: where cron schedules quietly go wrong

Cron evaluates expressions in the daemon's timezone — on most servers, UTC. A report scheduled at 0 9 * * * lands at 11:00 or 12:00 Helsinki time depending on the season. Modern crons honor CRON_TZ=Europe/Helsinki in the crontab; the preview above lets you check any expression against any IANA zone before you find out the hard way.

Running SQL on a cron schedule

If the thing you are scheduling is a database query, you can skip the server, the crontab, and the script that emails a CSV. SaturnSQL runs saved SQL queries on a cron expression — the same 5-field syntax as this page, with a real timezone field — and delivers the results to Google Sheets or Slack. Minimum interval 5 minutes.

Schedule a SQL query instead of a shell script.