Cron Expression Builder

Build cron schedules visually or parse existing expressions. See human-readable descriptions and the next 5 run times.

Presets

Every minute

Every hour

Every day of month

Every month

Every day of week

Generated Expression

* * * * *

Runs every minute

Next 5 Scheduled Runs

  • 1Sun, Mar 22, 2026 04:38 AM
  • 2Sun, Mar 22, 2026 04:39 AM
  • 3Sun, Mar 22, 2026 04:40 AM
  • 4Sun, Mar 22, 2026 04:41 AM
  • 5Sun, Mar 22, 2026 04:42 AM

Times shown in your local timezone (UTC)

How to use this tool

You can work in two directions: build a cron expression by selecting values from the dropdowns for each field, or parse an existing expression by typing or pasting it into the expression input at the top. The tool updates in both directions automatically.

The human-readable description updates as you type, so you can verify the schedule makes sense. The next 5 run times section shows exactly when the job would fire, based on your local timezone.

Cron syntax reference

A standard cron expression has five fields separated by spaces. Each field defines when the job should run for that unit of time.

Field Range Example
Minute0–5930 = at minute 30
Hour0–2314 = 2 PM
Day of Month1–311 = first of the month
Month1–126 = June
Day of Week0–61 = Monday (0 = Sunday)

Special characters

* (asterisk)
Matches every value in the field. * * * * * runs every minute.
/ (slash)
Step value. */15 in the minute field means every 15 minutes (0, 15, 30, 45).
- (hyphen)
Range. 1-5 in the day-of-week field means Monday through Friday.
, (comma)
List. 1,15 in the day field means the 1st and 15th of the month.

About the seconds field

This tool uses standard 5-field cron syntax, which is what cron, crontab, and most schedulers (systemd timers, GitHub Actions, AWS EventBridge) expect. Some systems like Spring and Quartz use a 6-field format with a leading seconds field. That format is not covered here because it's non-standard and scheduler-specific.

Examples

  • 0 9 * * 1-5: Weekdays at 9:00 AM
  • */10 * * * *: Every 10 minutes
  • 0 0 1 * *: Midnight on the first of every month
  • 30 4 * * 0: Every Sunday at 4:30 AM
  • 0 */6 * * *: Every 6 hours (midnight, 6 AM, noon, 6 PM)

Common scheduling scenarios

Database backups
0 2 * * * runs daily at 2:00 AM, avoiding peak hours. For weekly full backups with daily differentials, combine 0 2 * * 0 (Sunday full) with 0 2 * * 1-6 (weekday differentials).
Log rotation
0 0 * * * rotates logs at midnight daily. For weekly rotation, use 0 0 * * 1 (Monday midnight).
SSL certificate checks
0 8 * * 1 checks every Monday morning, giving you the working week to address any expiring certificates.
Cache clearing
0 */4 * * * clears cache every 4 hours. For less aggressive clearing, 0 6,18 * * * runs twice daily at 6 AM and 6 PM.
Report generation
0 7 1 * * generates monthly reports on the 1st at 7:00 AM. For quarterly reports, use 0 7 1 1,4,7,10 * (1st of Jan, Apr, Jul, Oct).
Health checks
*/5 * * * * runs every 5 minutes for continuous monitoring. For less frequent checks, */30 * * * * runs every 30 minutes.

Timezone considerations

Cron jobs typically run in the system's local timezone. If your server is in UTC but your users are in a different timezone, account for the offset when scheduling user-facing jobs. Some cron implementations (like systemd timers) support explicit timezone configuration. In cloud environments, scheduled tasks usually default to UTC.