cronkit.org
Cron expressions, explained and converted — in your browser

Cron tools › Build / Generate

Text to cron

rule-based, no AI · names the words it did not understand · Unix, Quartz, AWS, Spring

Describe when a job should run and get the cron expression for it. The result is parsed back and explained, so you can check the machine understood you — and when cron cannot express the schedule, you get the standard workaround instead of a wrong answer.

Next runs

Try a phrase

How to convert English to cron

  1. Type the schedule the way you would say it: every 10 minutes, weekdays at 18:00, on the 1st and 15th at 6am.
  2. Pick the dialect you need. The same sentence becomes 30 9 * * 1-5 for Linux, 0 30 9 ? * MON-FRI for Quartz and cron(30 9 ? * MON-FRI *) for AWS.
  3. Read the sentence under the expression. It is the parser's reading of the result, not a copy of your words — if it says something else, rephrase.
  4. Check the yellow and red notes. Words the parser skipped are named there, and so are assumptions such as "no time given, so midnight".
  5. Copy the expression. If the answer is a Unix workaround, copy the whole crontab line with its shell test.

Phrases it understands

KindYou can writeUnix result
Intervalsevery minute · every 5 minutes · every half hour · hourly · every 2 hours · every other hour*/5 * * * *
Clock timesat 9am · 9:30 pm · 21:30 · noon · midnight · at 8 and 20 · twice a day at 8 and 200 8,20 * * *
Minute of the hourevery hour at :15 · 20 minutes past the hour · at half past every hour15 * * * *
Windowsbetween 9am and 5pm · from 8 to 20 · 22:00-06:00 · during business hours*/15 9-16 * * 1-5
Weekdaysweekdays · weekends · every Monday · mon, wed and fri · monday to friday0 18 * * 1,3,5
Dateson the 1st · 1st and 15th · every January 1st · on december 25 · from the 1st to the 7th0 6 1,15 * *
Monthsmonthly · every quarter · every 3 months · twice a year · in March and September0 0 1 */3 *
Quartz-only dayslast day of the month · last weekday of the month · first Monday · last Friday · weekday nearest the 15thworkaround

A window with a minute interval stops before its end hour: every 15 minutes between 9am and 5pm becomes hours 9-16, so the last run is 16:45. The note under the result says so and gives the extra line for a 17:00 run. An hourly interval includes the end: every 2 hours from 8 to 20 is 0 8-20/2 * * *.

When cron cannot say it

Some everyday schedules have no single Unix cron line, and the tool tells you rather than guess:

To click an expression together instead, use the cron generator; to wrap the result in a safe crontab line, the crontab line builder.

FAQ

Is this using AI? Is my text sent anywhere?

Neither. It is a set of hand-written rules running in this page's JavaScript. Nothing is sent to a server, and the same sentence always gives the same answer.

What does "I didn't understand" mean?

After matching everything it knows, the parser lists the words left over. The schedule shown ignores them, so if a leftover word mattered — "except", "every other" — rephrase until the list is empty.

What time does "every Monday" run?

Midnight (00:00), the same as cron's own @weekly and @daily shorthands. The tool adds a note whenever it fills in a time or day you did not give. Add "at 9am" to change it.

Why is "9" read as 09:00 and not 9 pm?

Bare hours are read on the 24-hour clock. Write 9pm or 21:00 for the evening. In a window such as "between 9 and 5", an end hour smaller than the start is taken as the afternoon, and the note says so.