Cron Syntax Explained

30 9 1,15 * *

On day 1st, 15th of every month at 9:30 AM

Next 10 Executions

Times shown in UTC

  • Mon, Jun 1, 202609:30
  • Mon, Jun 15, 202609:30
  • Wed, Jul 1, 202609:30
  • Wed, Jul 15, 202609:30
  • Sat, Aug 1, 202609:30
  • Sat, Aug 15, 202609:30
  • Tue, Sep 1, 202609:30
  • Tue, Sep 15, 202609:30
  • Thu, Oct 1, 202609:30
  • Thu, Oct 15, 202609:30

Field Breakdown

30
Minute
30
9
Hour
9
1,15
Day of Month
1,15
*
Month
Every month
*
Day of Week
Every day of week

About This Schedule

A cron expression consists of five fields separated by spaces: minute hour day-of-month month day-of-week. Each field accepts specific values, wildcards (*), ranges (1-5), steps (*/5), and comma-separated lists (1,3,5).

The five fields and their valid ranges are: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6, where 0 is Sunday). A wildcard * means "every possible value." A step like */5 means "every 5th value starting from the minimum." A range like 9-17 means "9 through 17 inclusive."

These building blocks combine to create powerful schedules. For example, 30 9 1,15 * * means "at 9:30 AM on the 1st and 15th of every month." Understanding the syntax lets you write any schedule without relying on a generator — though tools like SimpleCronTab make it faster and less error-prone.

Frequently Asked Questions