Skip to main content

Cron expression

5 15 31 APR 1-5

This cron expression schedules a command to run at 15:05, on day 31 of the month, Monday through Friday, only in April.

At 15:05, on day 31 of the month, Monday through Friday, only in April.

Next runs · UTC

September 2026 · UTC

This expression never fires — day 31 does not exist in April

Read more in the dedicated guide: Cron weekdays (Mon-Fri).

What this cron means, field by field

Each field of 5 15 31 APR 1-5 controls one dimension of the schedule. Hover over any value in the editor above to see its tooltip; the table below summarises the same information.

FieldValueMeansRange / hint
minute5at minute 50-59. The minute(s) of the hour the job will fire.
hour15at hour 150-23. The hour(s) of the day the job will fire (0 = midnight, 23 = 11 PM).
day of month31at day of month 311-31. The day(s) of the month. Use * if you want every day.
monthAPRat month APR1-12 or JAN-DEC. The month(s). Use * for every month.
day of week1-5from day of week 1 through 50-7 or SUN-SAT (0 and 7 both mean Sunday). Use * for every day of the week.

Next 5 runs

This expression never fires — day 31 does not exist in April. Every field is valid on its own, but no calendar date satisfies all of them at once.

Similar cron expressions

Common variations and tweaks of 5 15 31 APR 1-5.

Where else this cron could be used

The same expression 5 15 31 APR 1-5 works in:

Examples

  • 0 18 * * *
    Every day at 18:00
  • 0 */5 * * *
    Every 5 hours
  • 0 18 * * 1-5
    Weekdays at 18:00
  • 0 0 1 * *
    Once a month, on the 1st at midnight

Cheatsheet

Full cheatsheet
FieldReq.RangeWildcards
minuteyes0-59, - * /
houryes0-23, - * /
day of monthyes1-31, - * /
monthyes1-12 or JAN-DEC, - * /
day of weekyes0-6 or names; some dialects use 0-7 or 1-7 — see Dialects, - * /

Frequently asked questions

What does the cron expression `5 15 31 APR 1-5` mean?

at 15:05, on day 31 of the month, Monday through Friday, only in April.

When does `5 15 31 APR 1-5` run next?

Never — day 31 does not exist in April. The expression is syntactically valid but no calendar date satisfies every field.

Is `5 15 31 APR 1-5` a valid cron expression?

It parses, but it never fires: day 31 does not exist in April. Pick a day that exists in every listed month.

Run this cron in production

Stop pasting `5 15 31 APR 1-5` into a host you also have to babysit.

WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks.

1.9k+ teams · Free forever tier · No credit card