Cron Expression Explainer
Expression
Enter a cron expression or pick a preset. Supports @shortcuts, named months jan–dec, and day names mon–sun.
Why use a private cron expression explainer?
Cron syntax is compact and easy to get subtly wrong: a job that should run weekly runs daily, or one meant for 9am runs at 9pm UTC. Seeing the schedule in plain English, together with the next run times, catches those mistakes before they reach production.
Crontabs and CI configs can reveal internal job names and infrastructure details. formatvault parses expressions entirely in your browser — nothing is sent to a server.
How it works
Each of the five fields is parsed into the set of values it matches, then described in plain English and broken down field by field. Next run times are found by stepping forward through the calendar from now until the expression matches.
The Build tab works the other way round: choose minutes, hours, days, and months from controls and the expression is generated for you.
Common use cases
- Checking a crontab entry before adding it to a server
- Reviewing schedules in GitHub Actions, Kubernetes CronJobs, or Vercel cron config
- Confirming exactly when a backup or report job will next run
- Building an expression for an unusual schedule without memorising the syntax
- Explaining an inherited cron job to a teammate in plain English
Frequently asked questions
- Which cron syntax is supported?
- Standard five-field cron: minute, hour, day of month, month, and day of week. Lists (1,15), ranges (1-5), steps (*/15), month and weekday names (JAN, MON), and the presets @hourly, @daily, @midnight, @weekly, @monthly, @yearly, and @annually all work.
- Does it support six-field cron with seconds, or Quartz syntax?
- No. Expressions with a seconds field, and Quartz extensions such as L, W, and #, are not supported. Remove the seconds field to check the rest of a six-field schedule.
- What time zone are the next run times shown in?
- Your browser's local time zone. If your server runs cron in UTC, the actual run times will be offset by your UTC offset.
- Why does my job run on more days than I expected?
- When both day of month and day of week are restricted, standard cron runs the job when either one matches, not both. For example, 0 9 1 * MON runs on the 1st of every month and on every Monday.
- What about @reboot?
- @reboot runs once when the cron daemon starts, so there is no schedule to calculate next runs from. It is recognised and explained but has no run times.