No recently used tools
No favorite tools yet

Free Cron Expression Generator - Build Cron Jobs Visually

239 uses
Cron Expression
* * * * *

Next 5 Execution Times

    Tips

    5 Fields
    Standard cron uses 5 fields: minute, hour, day-of-month, month, and day-of-week
    Wildcard
    The asterisk (*) means every possible value for that field
    Common Patterns
    Use presets for quick setup: daily at midnight (0 0 * * *), hourly (0 * * * *)
    Validation
    Always verify your cron expression by checking the next 5 execution times

    Frequently Asked Questions

    Q How can I quickly verify my cron expression's execution schedule?
    A Our Cron Expression Generator provides a live preview feature that instantly displays the next upcoming execution dates and times for any expression you build. This visual feedback helps you quickly verify that your cron schedule precisely matches your intended timing, eliminating common errors and ensuring your automated tasks run exactly when expected without needing to manually test or guess.
    Q How can I generate a cron expression to run a task at multiple specific times during the day, like 9 AM, 1 PM, and 5 PM?
    A Our Cron Expression Generator makes this simple. Navigate to the 'Hour' field and select each desired hour (e.g., 9, 13, 17 for 9 AM, 1 PM, 5 PM). The tool will automatically combine these into a comma-separated list, resulting in an expression like `0 9,13,17 * * *`. The live preview immediately shows that your task will execute precisely at these specified times every day, ensuring accurate scheduling.
    Q Can I generate a cron expression for a task that runs every 15 minutes during business hours only?
    A Yes, you can. Set the minute field to */15 for every 15 minutes. Then restrict the hour field to 9-17 for a 9-to-5 schedule. The tool will display an expression like */15 9-17 * * *. Check the live preview to confirm it skips evenings and weekends. Pro tip: add a weekday restriction like 1-5 if you want Monday through Friday only.
    Q Why does my cron expression with day-of-month and day-of-week both set not work as expected?
    A This is a common gotcha. When you specify both day-of-month (like 15) and day-of-week (like 3 for Wednesday), cron treats them as OR conditions by default. So the task runs on the 15th OR every Wednesday. Our generator avoids this confusion: if you select both fields, it shows a warning and lets you choose between OR behavior or using a comma-separated list. For example, to run only on the 15th AND it's a Wednesday, you'd need a separate script check.
    Q Can I make a cron job run every 2 hours, but only on weekdays?
    A Absolutely. Set the minute field to 0, then use */2 in the hour field for every 2 hours. Add 1-5 in the day-of-week field. That gives you "0 */2 * * 1-5". Our tool's live preview will show it firing at 00:00, 02:00, 04:00 and so on, Monday through Friday only. Double-check the preview around midnight to avoid surprises.
    Q Does */5 in the minute field mean the job runs every 5 seconds?
    A No — */5 in the minute field means every 5 minutes, not seconds. Cron doesn't have a seconds field at all. Our generator shows this clearly: selecting */5 for minutes gives you runs at :00, :05, :10, and so on. One common mistake is thinking you can get sub-minute intervals. You can't with standard cron. For 5-second intervals, you'd need a different solution like a loop inside your script or a dedicated scheduler.
    Q Why does my cron job run twice when I use both day-of-month and day-of-week?
    A This trips up nearly everyone at some point. Standard cron treats those two fields as OR, not AND. So `15 15 * * 1` fires on the 15th of every month AND every Monday. Our generator catches this: when you select both fields, a yellow warning appears. Click the toggle to force AND logic, or use our 'advanced mode' to add a script-side check. Pro tip: always verify next five runs in the live preview before deploying.
    Q Can I use this generator to schedule a job that runs on the last day of every month?
    A Yes — that's one of the trickier schedules cron supports, but our generator handles it. For the last day of the month, use 'L' in the day-of-month field. Most UIs don't expose this, but ours has a dedicated toggle under advanced options. This produces an expression like `0 0 L * *`. The live preview is essential here: it'll show exact dates like Jan 31, Feb 28 (or 29 in leap years). Works reliably for billing cycles and monthly reports.
    Q Why does my cron job run at the wrong time after daylight saving time changes?
    A Cron handles DST differently depending on your server's timezone settings. If you're using UTC, nothing shifts — but local time zones can cause jobs to fire twice or skip entirely. Our generator shows a timezone dropdown in the preview panel; set it to match your server. For example, a 2:30 AM job won't run on the spring-forward day in most US zones. Best practice: schedule at times that exist every day, like 3:15 AM, or stick to UTC if your workflow tolerates it.
    Q Is there a way to test my cron expression against a specific date range before deploying it?
    A The live preview already covers this. Set your expression, then look at the preview panel's date range filter. You can narrow it to, say, next Tuesday through Thursday and see exactly which iterations fire within that window. If you're debugging a one-off issue like a holiday schedule, that range view beats scrolling through 20 upcoming runs. Give it ten seconds of clicking around; you'll find the calendar icon in the preview header.

    How to Use

    Related Tools