The ToolMint Cron Expression Generator helps you create standard five-field Unix cron schedules without guessing which number belongs in which position. You can use the visual builder, load a common preset, paste an existing expression, read a plain-language explanation and preview upcoming run times in local time or UTC.
The tool is designed for practical cron work: scheduling maintenance jobs, recurring scripts, CI workflows, reports, reminders, data syncs and other automations where a compact schedule string is required. Cron expressions, field values, timezone choices and generated run previews are processed locally in your browser and are not uploaded to ToolMint servers.
What a cron expression is
A cron expression is a short text schedule used by cron-style schedulers. In the standard Unix form, the expression has five fields:
| Field | Meaning | Allowed numeric values |
|---|---|---|
| Minute | Minute of the hour | 0-59 |
| Hour | Hour of the day | 0-23 |
| Day of month | Calendar day | 1-31 |
| Month | Calendar month | 1-12 |
| Day of week | Weekday | 0-7, where 0 and 7 are Sunday |
For example, 0 9 * * 1-5 means minute 0, hour 9, any day of month, any month and Monday through Friday. In ordinary language, that is 09:00 on weekdays in the timezone used by the scheduler.
How to build a cron schedule
Start with a preset when the schedule is common. ToolMint includes presets for every minute, every 5 minutes, every 15 minutes, every hour, daily at midnight, daily at 09:00, weekdays at 09:00, Sunday at midnight, the first day of each month, the 15th of each month and January 1 each year.
Use the visual builder when you need something more specific. Each field supports an every-value wildcard, a single value, a comma-separated list, a range and an interval step. The generated expression updates as soon as you change a field, and the validator checks the result before you copy it.
If you already have a cron expression, paste it directly into the expression input. Repeated spaces are normalized for validation, but unsupported formats are not silently rewritten. This is intentional: a six-field Quartz expression should not be converted into a five-field Unix expression without you understanding what changed.
Wildcards, lists, ranges and steps
Cron syntax is compact because each field can describe many matching values:
| Syntax | Example | Meaning |
|---|---|---|
| Wildcard | * |
Every allowed value in that field |
| Specific value | 15 |
Only that value |
| List | 0,15,30,45 |
Any value in the list |
| Range | 1-5 |
Every value from 1 through 5 |
| Step | */10 |
Every tenth value across the full field |
| Range step | 1-9/2 |
Every second value from 1 through 9 |
The Cron Expression Generator supports numeric forms of these patterns. It does not support aliases such as MON, JAN, @daily or @hourly, because those aliases are not accepted consistently across every scheduler.
Useful cron examples
Use * * * * * for every minute. This is common for testing, but it can be too frequent for production jobs unless the task is small and idempotent.
Use */5 * * * * for every five minutes. This is a typical interval for lightweight polling, queue checks or sync tasks.
Use 0 * * * * for once per hour at minute zero. This keeps hourly jobs aligned to the top of the hour.
Use 0 0 * * * for daily at midnight. Remember that midnight depends on the scheduler timezone, not necessarily your personal timezone.
Use 0 9 * * 1-5 for weekdays at 09:00. This is a good pattern for business-day notifications or reports when the target platform uses the intended timezone.
Use 0 0 1 * * for the first day of every month. Use 0 0 15 * * for the 15th day of every month.
Use 0 0 1 1 * for January 1 each year.
Day-of-month and day-of-week behavior
The day fields are the easiest place to make a subtle mistake. In many Unix cron implementations, if both day-of-month and day-of-week are restricted, the job runs when either field matches. That means 0 9 1 * 1 may run on the first day of the month and on Mondays, not only when the first day of the month is a Monday.
ToolMint's preview uses that common Unix cron behavior so the explanation is conservative for standard crontab-style schedules. Some platforms differ, so verify your exact scheduler before relying on both day fields together. When you need a monthly schedule, prefer a restricted day-of-month and wildcard day-of-week. When you need a weekly schedule, prefer wildcard day-of-month and a restricted day-of-week.
Timezones and daylight saving time
A standard five-field cron expression does not contain a timezone. The server, scheduler, CI platform or cloud service decides which timezone to use. That is why the same expression can run at a different wall-clock time after deployment than it did in your local preview.
ToolMint lets you preview upcoming runs using your browser's local timezone or UTC. Use UTC when your infrastructure runs scheduled tasks in UTC. Use local time when you are matching a local crontab, but still confirm the server timezone before deploying.
Daylight saving time is another important edge case. When clocks move forward, a local time can be skipped. When clocks move backward, a local time can occur twice. Different schedulers handle those moments differently, so the preview should be treated as guidance rather than a replacement for platform documentation.
Unix cron versus Quartz and cloud schedulers
This tool is intentionally limited to five-field Unix cron:
minute hour day-of-month month day-of-week
Quartz cron often includes a seconds field and can include a year field. Cloud schedulers such as AWS EventBridge, GitHub Actions, Kubernetes CronJob and Jenkins may support cron-like schedules with their own restrictions, defaults or timezone controls. Some accept names, some require question marks, some require UTC and some interpret the day fields differently.
Because of those differences, the Cron Expression Generator rejects unsupported six-field and seven-field expressions instead of pretending they are equivalent. Build the schedule here, then check the target scheduler's documentation before deploying it.
Common mistakes
One common mistake is confusing the minute and hour fields. 5 * * * * runs at minute 5 of every hour, not every five minutes. Use */5 * * * * for every five minutes.
Another mistake is assuming weekday numbering is identical everywhere. Standard cron commonly treats 0 and 7 as Sunday, with 1 as Monday. Some platforms document a narrower range, so check whether day 7 is accepted.
Timezone mismatches cause many production incidents. If your laptop is in one timezone and the server is in UTC, 0 9 * * * may not run at the local 09:00 you expected.
Finally, avoid copying examples with seconds into a five-field scheduler. 0 0 9 * * * may be valid in a six-field scheduler, but it is invalid in this Unix cron tool because it has too many fields.
Privacy and local processing
Cron expressions can reveal operational habits, system names in surrounding notes or sensitive deployment timing. ToolMint treats the schedule itself as private input. Validation, explanation, preview calculation, copying, reset and preset loading happen in the browser.
Analytics are limited to privacy-safe interaction events such as loading a preset, copying a valid expression, changing preview mode, reset and clear. Analytics do not include cron strings, field values, timezone choices, next-run values or schedule intent.
If you are documenting a schedule for a deployment, you can pair this tool with the Unix Timestamp Converter when comparing exact run times, the Markdown Previewer when writing operational notes and the Text Diff Checker when reviewing cron changes.
Limitations
The tool does not execute jobs, connect to a server or verify whether a deployed scheduler accepted your expression. It does not support Quartz modifiers such as ?, L, W or #, and it does not support named aliases such as MON or JAN.
The next-run preview searches within a bounded lookahead window and focuses on supported five-field numeric cron syntax. Impossible schedules such as February 31 will not produce upcoming runs. For encoded URLs, use the URL Encoder / Decoder. For structured config cleanup, use the JSON Formatter. For generated identifiers in scheduled jobs, use the UUID Generator or Hash Generator. You can browse more utilities in the Developer category.
Related ToolMint tools
Use the Unix Timestamp Converter to compare run times, JSON Formatter for scheduler configuration files, Text Diff Checker to review cron changes, URL Encoder / Decoder for webhook URLs, Hash Generator for checksums and Markdown Previewer for operational documentation.
The FAQ section below is generated from the ToolMint registry so visible answers and FAQ structured data stay synchronized.