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
Paste a cron expression into the field, or click a preset to load an example.
Read the description below. It updates live as you edit each field.
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.
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.