Cron tools › Build / Generate
Text to cron
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
- Type the schedule the way you would say it: every 10 minutes, weekdays at 18:00, on the 1st and 15th at 6am.
- Pick the dialect you need. The same sentence becomes
30 9 * * 1-5for Linux,0 30 9 ? * MON-FRIfor Quartz andcron(30 9 ? * MON-FRI *)for AWS. - 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.
- Check the yellow and red notes. Words the parser skipped are named there, and so are assumptions such as "no time given, so midnight".
- Copy the expression. If the answer is a Unix workaround, copy the whole crontab line with its shell test.
Phrases it understands
| Kind | You can write | Unix result |
|---|---|---|
| Intervals | every minute · every 5 minutes · every half hour · hourly · every 2 hours · every other hour | */5 * * * * |
| Clock times | at 9am · 9:30 pm · 21:30 · noon · midnight · at 8 and 20 · twice a day at 8 and 20 | 0 8,20 * * * |
| Minute of the hour | every hour at :15 · 20 minutes past the hour · at half past every hour | 15 * * * * |
| Windows | between 9am and 5pm · from 8 to 20 · 22:00-06:00 · during business hours | */15 9-16 * * 1-5 |
| Weekdays | weekdays · weekends · every Monday · mon, wed and fri · monday to friday | 0 18 * * 1,3,5 |
| Dates | on the 1st · 1st and 15th · every January 1st · on december 25 · from the 1st to the 7th | 0 6 1,15 * * |
| Months | monthly · every quarter · every 3 months · twice a year · in March and September | 0 0 1 */3 * |
| Quartz-only days | last day of the month · last weekday of the month · first Monday · last Friday · weekday nearest the 15th | workaround |
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:
- Last day of the month — Linux cron has no
L. The workaround runs on the 28th to 31st with[ "$(date -d tomorrow +\%d)" = 01 ] &&in front of the command (GNU date; the%is escaped because cron treats a bare%as a newline). - First Monday —
0 9 1-7 * 1looks right but runs on the 1st to 7th and on every Monday, because cron ORs the two day fields. The workaround schedules1-7and testsdate +\%u. Quartz, AWS and Spring can say it directly:2#1,2#1and1#1. - Every 90 minutes — steps restart every hour, so it takes two lines:
0 0-21/3 * * *and30 1-22/3 * * *. - Every other week — cron has no idea of odd and even weeks. Run weekly and let the job skip alternate weeks.
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.