Cron Converter

Describe a schedule in words and get the cron expression.

About Cron Converter

Turn a short English phrase such as "every weekday at 9:30am" into a five-field cron expression. The expression and each field's meaning appear as you type.

How to use

  1. Type a schedule in words, or click one of the example phrases below the input.
  2. The cron expression appears on the right as you type, with Copy, and the five fields are listed as minute, hour, day of month, month and day of week.
  3. If the phrase is not recognised, the error says so; rephrase using one of the patterns below.

Phrases it understands

The parser matches a fixed set of English patterns (case-insensitive). It does not convert cron back into English.

Phrase Cron
every 15 minutes, every 2 hours, every 3 days */N in that field; N must fit the field (1–59 minutes, 1–23 hours, 1–31 days)
every 6 months 0 0 1 */6 * (the 1st of every sixth month)
every 2 weeks 0 0 */14 * *; cron has no fortnight, so the count restarts on the 1st of each month
every weekday, weekdays, monday to friday day of week 1-5
every weekend, weekends day of week 0,6
every monday … every sunday, monday and wednesday, tuesday through thursday day of week 0–6, a list or a range
every other day, alternate day day of month */2
on the 1st, on the 1st and 15th, on day 20 day of month
at 9:30am, at 3 pm, at 17, at midnight, at noon sets minute and hour; combines with every other row
at 9am and 5pm, at 9, 12 and 17 hour list 9,17; the minutes must match, since one expression holds one minute value
between 9 am and 5 pm hour 9-17; minute 0 unless an every N minutes or :MM is given
between 9 pm and 5 am wraps past midnight as 21-23,0-5
midnight, noon, mid-day 0 0 * * *, 0 12 * * *
every hour, hourly 0 * * * *
every day, daily 0 0 * * *
every week, weekly 0 0 * * 0
every month, monthly 0 0 1 * *
every year, yearly, annually 0 0 1 1 *
every minute, minutely * * * * *
in january … in december, in january and july month 1–12 or a list

Clauses combine: every 2 hours on weekdays in january fills three fields. A day-level phrase with no "at" clause (every monday, every weekend, every 3 days) means midnight; add a time to move it. every N hours and hour windows fire on the hour. Times are checked (at 25:00 and at 13 pm are errors) and zero padding is dropped (at 09:05 → 5 9). Input is limited to 120 characters.

Example

every weekday at 9:30am → 30 9 * * 1-5
every 15 minutes        → */15 * * * *
every monday at 3 pm    → 0 15 * * 1

Privacy

Parsing runs in the page. No request is made and nothing is stored.

Frequently asked questions

What do the five fields in a cron expression mean?
In order: minute (0-59), hour (0-23), day of month (1-31), month (1-12) and day of week (0-6, Sunday is 0). An asterisk means every value, 1-5 is a range, 0,6 a list, and */15 every fifteenth value.
What does */5 mean in cron?
Every fifth value, starting from the field's minimum. In the minute field */5 runs at :00, :05, :10 and so on; in the hour field it runs at 0:00, 5:00, 10:00, 15:00 and 20:00.
How do I write a cron job for every weekday at 9am?
0 9 * * 1-5. The minute is 0, the hour is 9, any day of month and month, and days 1 to 5 are Monday to Friday.
Does cron use the server time zone?
Yes. Classic POSIX cron evaluates expressions in the system's local time, so a job set for 9am runs at 9am in the server's zone and shifts with daylight saving. Set TZ in the crontab or use UTC on the server if that matters.