Updated · Built and checked by the PlinzoTools team, formulas tested against published sources
Build a 5-field cron expression from a schedule, with a plain-English description.
0 9 * * *
Cron expressions schedule recurring tasks on Unix-like systems and countless cloud services (CI/CD pipelines, serverless functions, task schedulers) -- a compact 5-field syntax (minute, hour, day-of-month, month, day-of-week) that's notoriously easy to get backwards. This tool builds a valid expression from individual field values and describes the resulting schedule in plain English.
Enter a value (a number or * for "any") in each of the 5 fields. The cron expression and a plain-English schedule description update instantly.
In order: minute (0-59), hour (0-23), day of month (1-31), month (1-12), day of week (0-6, where 0 is Sunday). A field set to * matches every possible value for that field.
Minute 0, hour 9, all other fields * builds 0 9 * * * -- "At 09:00" every day.
To go the other direction -- decoding an existing cron expression -- use the Cron Expression Parser.
Each of the five boxes accepts a single value or an asterisk, and the tool joins them in order: minute, hour, day of month, month, day of week. Ranges, lists and step values are also allowed in the text boxes, because the tool inserts whatever you type as-is. Some patterns you can enter, all hypothetical schedules:
The description is a simple summary, not a full interpreter. If minute and hour are both an asterisk it says every minute. If only the minute is set it says at that minute of every hour. Otherwise it prints the time as hours and minutes with a leading zero, then appends phrases for the day of month, month and weekday if those are not asterisks. Weekdays and months are shown as the numbers you typed, not as names. Ranges and steps typed into the boxes are shown literally rather than translated, so a value like */15 in the minute box will be treated as a specific minute in the sentence and read oddly. Trust the expression itself, and use the sentence as a rough check.
It means "every possible value" for that field -- e.g. "*" in the hour field means the schedule matches every hour, not a specific one.
This generator builds simple single-value or wildcard fields; more advanced cron syntax (step values, ranges, lists) would need to be added manually to the generated expression.
Yes, per the standard cron convention -- 0 is Sunday, 1 is Monday, through 6 for Saturday (some systems also accept 7 for Sunday, but 0 is the more universal convention).
Type a step value such as */5 into the Minute box and leave the other fields as asterisks. The expression will be valid in most cron systems, though the plain-English sentence will not describe the step.
No. It joins whatever you enter. Verify each field is inside its allowed range and that your scheduler supports any advanced syntax you use.
The one your cron daemon or cloud scheduler is configured with, often the server time or UTC. The expression itself carries no timezone.
In many implementations the job runs when either condition matches. Check your platform's documentation, and add a check in the job itself if you need both.
Reference: MDN Web Docs