Scheduling Guide

HookWatch supports both standard cron expressions and human-readable schedules. Learn how to define when your jobs run.

Human-readable Schedules

The easiest way to define a schedule. HookWatch automatically converts these to cron expressions.

ScheduleDescription
every minuteRuns every minute
every 5 minutesRuns every 5 minutes
every hourRuns at the start of every hour
every day at 9amRuns daily at 9:00 AM
every day at 2:30pmRuns daily at 2:30 PM
every monday at 9amRuns every Monday at 9:00 AM
every weekday at 9amRuns Monday-Friday at 9:00 AM
every month on the 1stRuns on the 1st of every month
every sunday at midnightRuns every Sunday at 12:00 AM

Cron Expression Format

For more complex schedules, use standard 5-field cron expressions:

┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-6, Sunday=0)
│ │ │ │ │
* * * * *

Special Characters

CharacterMeaningExample
*Any value* * * * * - every minute
,Value list0 9,17 * * * - at 9am and 5pm
-Range0 9 * * 1-5 - weekdays at 9am
/Step*/15 * * * * - every 15 minutes
@Preset@hourly, @daily, @weekly

Common Examples

Every 5 minutes */5 * * * *
Every hour at minute 30 30 * * * *
Daily at 2:00 AM 0 2 * * *
Weekdays at 9:00 AM 0 9 * * 1-5
Every Sunday at midnight 0 0 * * 0
First day of month at 6:00 AM 0 6 1 * *
Every 6 hours 0 */6 * * *
9am and 5pm on weekdays 0 9,17 * * 1-5

Preset Schedules

Use these shortcuts for common schedules:

PresetEquivalentDescription
@yearly0 0 1 1 *Once a year at midnight on Jan 1st
@monthly0 0 1 * *Once a month at midnight on the 1st
@weekly0 0 * * 0Once a week at midnight on Sunday
@daily0 0 * * *Once a day at midnight
@hourly0 * * * *Once an hour at the beginning

Explain a Schedule

Use the CLI to understand what a cron expression means:

Terminal

Timezone

All schedules run in UTC timezone. Make sure to convert your local time when setting schedules. For example, 9am EST is 2pm UTC (during standard time).

Tips

  • Start with human-readable schedules - they're easier to understand and less error-prone
  • Use the hookwatch cron explain command to verify your expression before creating a job
  • Avoid running jobs at exactly the top of the hour (e.g., 0 * * * *) - many systems do this, which can cause congestion
  • The minimum interval is 1 minute. For more frequent execution, consider using webhooks instead

Related