Human Text to Cron Expression

Convert plain-English schedules into valid cron syntax

Type a schedule in plain English such as every weekday at 9am or every 15 minutes and get a valid 5 field cron expression back, with notes that explain any assumptions the converter made. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What input phrasing does it understand?

It recognises intervals like every 15 minutes and every 2 hours, times like 9am, 6:30, noon, and midnight, weekday and weekend keywords, individual day names, month names, and ordinals like on the 1st.

From English to cron

Writing cron by hand is error-prone, especially when you only remember the field order roughly. This tool goes the other way from a reader: you describe the schedule in plain English and it builds a valid 5 field cron expression, then explains in one line how it interpreted your words so there are no silent surprises.

How it works

The converter scans your phrase for a few well-defined patterns and fills the five cron fields accordingly. Interval phrases such as “every 15 minutes” or “every 2 hours” map directly to a step expression like */15 * * * *. A clock time, whether 9am, 18:30, noon, or midnight, sets the minute and hour fields. Keywords drive the day fields: “weekday” becomes 1-5, “weekend” becomes 0,6, and named days such as “Monday” become their numbers.

Month names and an ordinal day-of-month such as “on the 1st” are recognised too. Frequency words fill in sensible defaults: “weekly” without a named day becomes Sunday, “monthly” becomes the 1st, and “yearly” becomes January 1.

Every weekday at 9am   ->   0 9 * * 1-5
Every 15 minutes       ->   */15 * * * *
On the 1st at noon     ->   0 12 1 * *

Worked examples

Here are common scheduling phrases and the expressions they produce:

PhraseCron expressionMeaning
every day at midnight0 0 * * *Runs at 00:00 every day
every Monday at 6:3030 6 * * 1Mondays 06:30
every 15 minutes*/15 * * * *00, 15, 30, 45 past every hour
on the 1st at noon0 12 1 * *12:00 on the 1st of each month
every weekday at 9am0 9 * * 1-5Mon–Fri at 09:00
every hour0 * * * *Top of each hour
every Sunday at 2am0 2 * * 0Sunday 02:00

Understanding the five cron fields

The classic Unix cron format is: minute hour day-of-month month day-of-week. A * means “every value”, a step like */15 means “every 15 units”, and a list like 1-5 covers a range. The most common confusion is that setting both day-of-month and day-of-week causes the job to fire when either matches — not both. The converter flags this with a note so you are not caught out.

Common mistakes and how to avoid them

Forgetting the time: If you write only “daily” or “weekly” without a time, the tool defaults to midnight and says so in the note. Update the expression if you need a specific hour.

Wrong day numbering: Sunday is 0 (or 7 in some implementations), Monday is 1, through Saturday as 6. This tool uses 0 for Sunday throughout.

Mixing day-of-month and day-of-week: Phrases like “every Wednesday on the 15th” set both the 4th field and the 5th field. Classical cron treats this as OR, so the job fires on every Wednesday and also on every 15th. If you truly want the 15th only when it falls on a Wednesday, you need to handle that in the script, not the cron expression.

Tips and notes

Be explicit when it matters. If you only say “weekly” the result targets Sunday; add the day name to change it. After generating an expression, paste it into the companion cron reader tool to confirm it describes exactly the schedule you intended before you ship it.