Cron Expression Parser & Next Run Times

Parse a five-field cron expression into a short description and upcoming run times.

How it works
  • Five fields: minute hour day-of-month month day-of-week (0 and 7 = Sunday). Runs are shown in UTC and local time.
  • * โ€” any value ยท */15 โ€” every 15 units
  • 1-5 โ€” inclusive range ยท 1,15,30 โ€” list
  • minute 0โ€“59 ยท hour 0โ€“23 ยท day 1โ€“31 ยท month 1โ€“12 ยท weekday 0โ€“7
Description
โ€”
About cron expression parsing

Cron Syntax & Field Order

Standard cron uses five whitespace-separated fields: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-7, where both 0 and 7 represent Sunday).

Supported syntax includes wildcards (*), step values (*/15), ranges (1-5), and comma-separated lists (1,15,30). Non-standard 6-field and 7-field formats (such as Quartz seconds or years) and special strings (@daily, @hourly) are not supported. All schedule calculation executes locally without backend calls.

Parse and schedule cron in code

JavaScript (node-cron)
const cron = require("node-cron");
cron.schedule("*/15 * * * *", () => {
  console.log("Runs every 15 minutes");
});
Python (croniter)
from croniter import croniter
from datetime import datetime
iter = croniter("0 9 * * 1-5", datetime.now())
print("Next run:", iter.get_next(datetime))

Cron parser FAQ

Which timezone is used for next run times?
Upcoming run calculations evaluate timestamps in UTC and simultaneously display the converted time in your system local timezone.
What happens when day-of-month and day-of-week are both specified?
In standard POSIX cron, if both fields are constrained (neither is *), the schedule matches when either condition is met (union logic).
Are 6-field expressions with seconds supported?
No. Standard UNIX/Linux cron uses exactly 5 fields. Quartz, Spring, and AWS scheduled rules with 6 fields are not supported.