devtools

Cron to Text

Paste a five-field cron expression and read a plain-English description of when it runs. Supports ranges, lists, steps, and named months and weekdays.

Runs entirely in your browser — your data never leaves your device.

How to use Cron to Text

What it does & when you need it

You open a crontab or a CI config and find a line like */15 9-17 * * 1-5. What does it actually do? This tool reads a standard five-field cron expression and turns it into a plain-English sentence — "Every 15 minutes, of hours 9 through 17, Monday through Friday" — so you can confirm a schedule at a glance instead of decoding fields in your head. It is the mirror image of a cron builder: rather than constructing an expression, it explains one you already have. Everything runs in your browser.

How to use

  1. Paste a cron expression into the field, or click a preset to load an example.
  2. Read the description below. It updates live as you edit each field.
  3. If the expression is malformed — the wrong number of fields or an out-of-range value — you will see a clear error instead of a guess.
  4. Press Copy description (or Ctrl/Cmd + Enter) to grab the text.

Things worth knowing

The five fields. In order: minute, hour, day-of-month, month, and day-of-week. The tool understands wildcards (*), ranges (1-5), lists (1,3,5), steps (*/15), and names such as JAN or MON. Both 0 and 7 mean Sunday.

The day-field trap. When both day-of-month and day-of-week are restricted, standard cron runs when either matches, not both. So 0 0 13 * 5 fires on the 13th and on every Friday — the description makes this explicit by joining the two clauses with "or".

Five fields, not six. This reads classic Unix/Vixie cron. Quartz-style expressions with a leading seconds field will be off by one position. To build an expression and preview its next run times, use the cron generator; to work with timestamps and time zones, see the timestamp converter and timezone converter.

Examples

Weekdays at 9am

0 9 * * 1-5

Reads as "At 09:00, Monday through Friday."

Every 15 minutes

*/15 * * * *

A step in the minute field becomes "Every 15 minutes."

First of the month

0 0 1 * *

Renders as "At 00:00, on day 1 of the month."

A named weekday

30 6 * * MON

Named days work too: "At 06:30, on Monday."

Frequently asked questions

What are the five cron fields?

In order they are minute (0 to 59), hour (0 to 23), day-of-month (1 to 31), month (1 to 12), and day-of-week (0 to 7, where both 0 and 7 mean Sunday). So 0 9 * * 1-5 means minute 0 of hour 9 on any day, in any month, Monday through Friday — which this tool renders as "At 09:00, Monday through Friday."

Which syntax does it understand?

A wildcard (*) for every value, ranges such as 1-5, comma lists such as 1,3,5, and steps such as */15 for every fifteenth unit. Month and weekday names like JAN or MON are accepted too. It reads standard five-field Vixie/Unix cron, the format used by crontab and most schedulers.

Why can a day-of-month and day-of-week combination fire more often than expected?

When both day fields are restricted, standard cron treats them as OR, not AND: the job runs when either matches. So 0 0 13 * 5 runs on the 13th and on every Friday, not only on Friday the 13th. The description reflects this by joining the two clauses with "or". Leave one field as * to avoid the surprise.

Is this five-field or six-field cron?

Five-field (minute through day-of-week). Quartz and some other schedulers prepend a seconds field for six fields; such an expression would be misread here by one position. This tool is the inverse of a cron builder — it explains an existing expression rather than generating one.

Does it run the schedule or show next run times?

No. It only translates the expression into words, entirely in your browser. If you want to preview the actual upcoming run times for an expression, build or paste it into the cron generator, which lists the next runs in your local timezone.