Temp Mail Logo

Temp Mail safeguards your privacy while keeping your inbox free from spam.

⏰ Build · Explain · Validate · Next Run Times · Preset Library

Cron Expression Generator

Free cron expression builder and explainer. Build schedules visually with a point-and-click editor, paste any cron string to see a plain English explanation, and preview the next 5 scheduled run times. Supports all standard cron syntax.

✓ Visual builder✓ Plain English output✓ Next 5 run times✓ 12 presets✓ No signup
Quick presets
0Minute0–59
9Hour0–23
*Day of Month1–31
Runs every day of month
*Month1–12
Runs every month
1-5Day of Week0–6
FromTo
0 9 * * 1-5
📅 At 09:00, on Monday through Friday
0
Minute
9
Hour
*
Day
*
Month
1-5
Weekday
Next 5 scheduled runs
1
Wed, 20 May 2026, 09:00:00
2
Thu, 21 May 2026, 09:00:00
3
Fri, 22 May 2026, 09:00:00
4
Mon, 25 May 2026, 09:00:00
5
Tue, 26 May 2026, 09:00:00
What this tool does

Free cron expression generator — build, explain and validate cron schedules with next run time preview

How cron expressions work, what each field means, and how to build schedules for any use case

This cron expression generator provides two ways to work with cron schedules. The visual builder lets you construct expressions without memorising syntax — select a mode (Every, Specific, Range, or Step) for each of the five fields, and the expression updates in real time. The paste mode lets you input any existing cron string and instantly receive a plain-English explanation of what it does, plus the next 5 scheduled run times calculated from the current moment.

Cron expressions power scheduled tasks across virtually every platform: Linux crontab, GitHub Actions, AWS Lambda EventBridge, Kubernetes CronJobs, Heroku Scheduler, Jenkins, CircleCI, and most databases and frameworks. The standard 5-field format (minute hour day-of-month month day-of-week) is supported everywhere. This tool generates standard Unix cron syntax compatible with all of these platforms.

The 12 preset library covers the most common real-world schedules — hourly tasks, daily reports, weekly maintenance windows, business-hours-only jobs, and more. Click any preset to load it, then customise from there. The next run times preview is especially useful for validating that complex expressions like */15 * * * 1-5 (every 15 minutes on weekdays) actually match the schedule you intended before deploying.

Features and capabilities
Visual Builder
Point-and-click field editor — no syntax memorisation. Four modes per field: Every, Specific values, Range, and Step.
Plain English
Every expression is automatically translated to a readable sentence: 'At 09:00, on weekdays (Mon–Fri)'.
Next Run Times
Calculates the next 5 scheduled execution times from the current moment — confirms your schedule is correct before deploying.
Paste & Explain
Paste any cron expression from existing code, a CI config, or a database scheduler to instantly understand what it does.
12 Presets
Ready-to-use schedules: every minute, every hour, daily at midnight/noon, weekdays at 8am, every 5/15 minutes, and more.
Field Breakdown
Expression shown split into 5 labelled fields — minute, hour, day, month, weekday — for quick visual verification.
Step Syntax
*/N step values supported in all fields — build expressions like every 15 minutes or every 6 hours with one click.
Range & List
Full support for ranges (1-5), comma lists (1,3,5), and combined patterns across all 5 fields.
Copy to Clipboard
One-click copy of the generated expression — paste directly into your crontab, YAML, or scheduler config.
100% Client-Side
All calculation runs in your browser — schedules and expressions never leave your device.
Examples

Cron expression examples — steps, ranges, lists, weekdays, and monthly schedules

Annotated cron expressions showing what each pattern does and when it runs
Every N minutesStep syntax — run every 15 minutes, every 5 minutes, etc.
*/15 * * * * → every 15 minutes (at :00, :15, :30, :45) */5 * * * * → every 5 minutes */30 * * * * → every 30 minutes (at :00 and :30) 0 */2 * * * → every 2 hours at the top of the hour 0 */6 * * * → every 6 hours (00:00, 06:00, 12:00, 18:00)
The */ step syntax is the most common cron pattern. */N in any field means 'every Nth value starting from the minimum'. In the minute field, */15 matches 0, 15, 30, 45. In the hour field, */6 matches 0, 6, 12, 18. You can also specify a start value: 30/15 matches 30, 45 (starting from 30, stepping by 15).
Specific timesComma lists and ranges — weekdays, multiple times per day
0 8 * * 1-5 → weekdays at 8:00 AM (Mon-Fri) 0 8,20 * * * → twice a day at 08:00 and 20:00 0 9 * * 1,3,5 → Monday, Wednesday, Friday at 9:00 AM 0 0 1,15 * * → 1st and 15th of each month at midnight 0 0 * 1,4,7,10 * → first day of each quarter at midnight
Comma-separated lists match multiple specific values. Ranges (1-5) match all values between the two endpoints inclusive. You can combine them: 1,3,5-7 matches 1, 3, 5, 6, and 7. These patterns cover most real-world scheduling needs without requiring step syntax.
Monthly & yearlyDay-of-month and month fields — monthly reports, seasonal tasks
0 0 1 * * → midnight on the 1st of every month 0 0 1 1 * → midnight on January 1st every year 0 9 15 * * → 9:00 AM on the 15th of every month 0 0 L * * → last day of month (Quartz only, not standard cron) 0 0 * 6,12 * → midnight every day in June and December
The 3rd field is day-of-month (1–31) and the 4th is month (1–12 or JAN–DEC). Combining both lets you schedule precise dates. Important: in standard cron, if both day-of-month and day-of-week are set (not *), most implementations run when EITHER matches — not both. The 'L' last-day shorthand is only available in Quartz/Spring Scheduler, not standard Unix cron.
FAQ

Frequently asked questions about cron expressions and cron scheduling

Common questions about cron syntax, fields, special characters, and scheduling across different platforms
What is a cron expression?
A cron expression is a string of 5 (or 6) fields separated by spaces that defines a schedule for a recurring task. Each field represents a unit of time: minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–7, where both 0 and 7 represent Sunday). The name comes from the Unix cron daemon, a time-based job scheduler used on Unix-like operating systems to automate repetitive tasks like backups, log rotation, report generation, and data synchronisation.
What does * mean in a cron expression?
An asterisk (*) in any field means 'every' — every minute, every hour, every day, etc. For example, the expression '* * * * *' runs every minute of every hour of every day. Asterisks are the most common cron symbol and serve as a wildcard that matches all possible values for that field. They're usually paired with specific values in other fields — for example '0 * * * *' runs at minute 0 of every hour (i.e. at the top of every hour).
What is the difference between cron on Linux and AWS/cloud schedulers?
Linux cron uses the classic 5-field format (minute hour dom month dow). AWS EventBridge, Kubernetes CronJobs, GitHub Actions, and most cloud schedulers also support a 6-field format that adds a seconds field at the start, or a year field at the end. Some systems (like Quartz Scheduler in Java) use 6 or 7 fields. This tool generates standard 5-field Unix cron expressions compatible with crontab, most Linux cron daemons, and the majority of modern job schedulers including GitHub Actions and most CI/CD tools.
How do I run a cron job every 15 minutes?
Use the step syntax with an asterisk: */15 * * * *. The slash (/) denotes a step value — */15 means 'every 15th value starting from 0', which matches minutes 0, 15, 30, and 45. Similarly, */5 * * * * runs every 5 minutes, */30 * * * * runs every 30 minutes (at :00 and :30), and 0 */2 * * * runs every 2 hours at the top of the hour. The step syntax works in any field: 0 */6 * * * runs every 6 hours.
How do I schedule a cron job for weekdays only?
Use the day-of-week field (the 5th field) with a range: 0 9 * * 1-5 runs at 9:00 AM Monday through Friday. Monday is 1 and Friday is 5. Sunday is 0 (or 7). To run on specific days, use a comma-separated list: 0 9 * * 1,3,5 runs at 9:00 AM on Monday, Wednesday, and Friday. Note: when both the day-of-month and day-of-week fields are specified (not *), most cron implementations run when EITHER condition matches, not when both match simultaneously.
What is the ? character in cron expressions?
The question mark (?) is used in some cron implementations (notably Quartz Scheduler and AWS EventBridge) to mean 'no specific value' in the day-of-month or day-of-week fields. Because you typically specify either day-of-month or day-of-week but not both, ? is used in the field you don't care about to avoid conflicts. Standard Unix cron doesn't support ? — use * instead. AWS EventBridge cron expressions require ? in one of those two fields whenever the other is specified.
How do I test if my cron expression is correct?
Use the next run times shown by this tool — they calculate the next 5 scheduled execution times from the current moment. This lets you verify the schedule matches your expectation before deploying. For production validation, you can also run 'crontab -e' on Linux to add the job and check system logs, or use tools like cronitor.io or healthchecks.io to monitor scheduled jobs and alert you if they don't run as expected.
Can I use cron expressions in GitHub Actions?
Yes — GitHub Actions supports cron scheduling via the 'schedule' trigger using standard 5-field cron syntax. Add it in your workflow YAML: 'on: schedule: - cron: "0 2 * * *"' to run at 2:00 AM UTC every day. Note that GitHub Actions schedules run in UTC timezone and may be delayed by up to 15 minutes during peak usage. The minimum interval is every 5 minutes (GitHub enforces this). GitHub uses the POSIX cron format — the same 5-field syntax this tool generates.

Need a disposable email address?Stop exposing your real inbox — get a free instant throwaway email with no signup and no trace.

Get Free Temp Mail →