Cron Generator — Build Cron Expressions Visually
Generate cron expressions with a GUI. Set minute, hour, day, month, and weekday with preset buttons.
Matches every value (*)
About Cron Generator — Build Cron Expressions Visually
Cron Expression Generator lets you build cron jobs visually — no syntax memorization required. Select minute, hour, day, month, and weekday using a GUI, then copy the generated expression. Preview the next 5 scheduled run times in real time.
How to Use
- 1Click a field tab (Minute, Hour, Day, Month, Weekday) to configure it.
- 2Choose a mode: Every (*), Step (*/n), Range (a-b), or Specific values.
- 3Copy the generated cron expression and paste it into your crontab or scheduler.
Features
- Visual GUI — no need to memorize cron syntax
- Preview the next 5 run times in real time
- Includes 10 common presets (every 5 min, weekdays at 9am, etc.)
- Pairs with the Cron Parser tool for full cron workflow
Cron Expression Syntax Reference
Cron expressions are five space-separated fields that specify when a scheduled job should run. Mastering the field syntax lets you express nearly any recurring schedule precisely.
The Five Fields: Minute, Hour, Day, Month, Weekday
A cron expression follows the format: minute (0–59) hour (0–23) day-of-month (1–31) month (1–12) day-of-week (0–7, where 0 and 7 both mean Sunday). Each field accepts four types of values: a specific number (5 = the 5th), a range (1-5 = 1 through 5), a step value (*/15 = every 15 units, or 0-30/10 = 0, 10, 20, 30), a list of values (1,3,5), or an asterisk (*) meaning "every". Month and weekday fields also accept three-letter abbreviations: JAN–DEC for months and MON–SUN for weekdays. For example, "30 8 * * MON-FRI" runs at 8:30 AM every weekday. "0 0 1 */3 *" runs at midnight on the first day of every third month.
Common Scheduling Patterns and Their Expressions
Several cron patterns appear repeatedly in production systems. "* * * * *" runs every minute and is typically used for health checks or polling tasks. "0 * * * *" runs at the top of every hour. "0 0 * * *" runs daily at midnight. "0 9 * * 1-5" runs at 9 AM on weekdays — a common pattern for business-hours jobs. "0 0 * * 0" runs weekly on Sunday. "0 0 1 * *" runs monthly on the first. "*/5 * * * *" runs every 5 minutes. Many platforms support shorthand aliases: @hourly, @daily, @weekly, @monthly, and @reboot. These aliases are easier to read but less flexible for custom schedules.
Deploying Cron Jobs Across Platforms
Cron expressions are used in Linux crontab, cloud schedulers, CI/CD platforms, and application frameworks. Each platform has specific behaviors and limitations to be aware of.
Linux crontab and System Cron
On Linux, user cron jobs are managed with crontab -e, which opens the user's crontab file for editing. Each line follows the format: expression command. The system timezone is used for scheduling by default, but individual cron jobs can override it by setting the TZ variable in the crontab: TZ=Asia/Tokyo. System-wide cron jobs in /etc/cron.d files include a username field after the expression: "0 9 * * * root /usr/bin/backup.sh". The cron daemon logs execution to syslog — check /var/log/cron or /var/log/syslog for job execution records and error output. Ensure commands use absolute paths since cron runs with a minimal environment and may not have your PATH configured.
GitHub Actions, AWS EventBridge, and Cloud Schedulers
GitHub Actions supports cron scheduling under the "on: schedule:" trigger using standard 5-field expressions. A critical detail: GitHub Actions runs in UTC, so a job intended for 9 AM JST (UTC+9) must be scheduled as "0 0 * * *" (midnight UTC). AWS EventBridge Scheduler and AWS CloudWatch Events also use cron expressions but with a 6-field format that adds a year field and uses ? instead of * when specifying either day-of-month or day-of-week but not both. Google Cloud Scheduler uses the standard 5-field Unix cron format but lets you specify the timezone per job. Always verify the next 5 run times after writing a schedule to catch off-by-one timezone errors before deployment.
FAQ
- What is a cron expression?
- A cron expression is a string of 5 fields (minute hour day month weekday) that defines a recurring schedule for automated tasks. For example, "0 9 * * 1-5" means "every weekday at 9:00 AM".
- What does */5 mean in a cron expression?
- */5 is a step value meaning "every 5 units". In the minute field, */5 runs the job at minutes 0, 5, 10, 15... In the hour field, */2 would run every 2 hours.
- How do I run a cron job only on weekdays?
- Set the weekday field to 1-5 (Monday through Friday). For example, "0 9 * * 1-5" runs at 9:00 AM Monday through Friday. Use the Range mode in the Weekday tab to set this.
- What is the difference between the day and weekday fields?
- When both day and weekday are restricted (not *), cron uses OR logic — the job runs if either condition matches. This is a common source of confusion. If you want Monday on the 15th only, use a script-level check instead.
- How do I use this with GitHub Actions?
- In GitHub Actions, add the generated expression under "on: schedule: - cron:". Note that GitHub Actions uses UTC timezone, so subtract or add the offset for your local time. For Japan (JST = UTC+9), subtract 9 hours from your desired local time.
Found a bug or something not working as expected?
Report a bug →