Cron Expression Generator

minutehourday of monthmonthday of week

Build it instead

Each field takes * for every value, a number, a list like 1,15, a range like 9-17, or a step like */15. Month and day names work too — JAN, MON.

Next runs

Field by field

FieldYou wroteWhich means

The rule that catches everyone

When you set both day of month and day of week, cron runs the job when either matches — not both. So 0 0 13 * 5 is not "Friday the 13th", it is "the 13th of every month, and also every Friday". If you want a specific weekday, leave day of month as *.

The field order

Minute, hour, day of month, month, day of week. Put the hour first by mistake and 5 0 * * * — which you read as five o'clock — actually runs at ten past midnight in cron's reading. The plain-English line above exists so you never have to trust your memory of the order.

Timezones

Cron runs in the server's timezone. On a cloud server that is usually UTC, so a job set for 9am runs at 2:30pm Indian time. The next-run times here are in your browser's timezone, stated below them — check that against your server before trusting the schedule.

Things a star will do to you

  • * * * * * — every minute, forever. Fine for a test, expensive for a real job.
  • 0 * * * * — every hour on the hour, not once a day.
  • */5 * * * * — every five minutes.
  • 0 0 * * 0 — once a week, Sunday midnight.
  • 0 0 1 * * — once a month, on the 1st.

Share this tool with friends

Free to use, no sign-up, works on any phone.

Frequently Asked Questions

What order do the five fields go in?

Minute, hour, day of month, month, day of week. The order is the thing people get wrong, and writing the hour first is how a job meant for 5am ends up running every minute of the fifth hour.

Why does my job run more often than I expected?

Almost always because a field was left as a star when it should have been a number. "0 * * * *" is every hour on the hour; "0 0 * * *" is once a day. Every star means "every value of this field", and the plain-English reading above tells you exactly what you have written.

What happens if I set both day of month and day of week?

Standard cron treats them as OR, not AND — the job runs when either matches. So "0 0 13 * 5" is the 13th of every month AND every Friday, not only Friday the 13th. This is the single most surprising rule in cron.

Which timezone does it use?

Cron uses the server's timezone, which is often UTC and often not what you assume. The times shown here are in your own browser's timezone, which is stated below the results — compare it against your server before relying on them.

Are the special strings supported?

Yes — @hourly, @daily, @weekly, @monthly and @yearly are recognised and expanded to the equivalent five-field expression so you can see what they actually mean.

What about seconds?

Standard Unix cron has no seconds field; the smallest interval is one minute. Quartz and some frameworks add a sixth field at the front for seconds, which is a different dialect from the one here.

Everything on this page runs inside your own browser. Nothing you type or upload is sent to a server, so your data never leaves your device.