HTTP cron jobs let you schedule outbound HTTP requests to any HTTPS URL on a recurring schedule. Use them to keep serverless endpoints warm, run health checks, trigger batch jobs, or send test traffic to your HookDeploy endpoints.
What cron jobs do
Each cron job stores:
- Target URL (HTTPS only)
- HTTP method (GET, POST, PUT, PATCH, DELETE, HEAD)
- Optional headers and request body
- Cron expression and timezone
- Notification preferences
HookDeploy runs due jobs according to their saved schedule and records the result for inspection in the dashboard.
Use cases
| Use case | Example expression | Description |
|---|---|---|
| Keep services warm | */5 * * * * | Ping a serverless function every 5 minutes |
| Health checks | * * * * * | Call /health every minute (Team plan minimum interval) |
| Daily reports | 0 9 * * * | Trigger ETL at 9am in your timezone |
| Weekday monitoring | 0 9 * * 1-5 | Weekday morning checks only |
| Webhook replay | 0 */6 * * * | POST sample payloads to your endpoint every 6 hours |
Cron expression syntax
HookDeploy uses standard 5-field cron expressions:
minute hour day-of-month month day-of-week
| Field | Range | Notes |
|---|---|---|
| minute | 0–59 | |
| hour | 0–23 | 24-hour clock |
| day-of-month | 1–31 | |
| month | 1–12 | |
| day-of-week | 0–7 | 0 and 7 = Sunday |
Examples
| Expression | Meaning |
|---|---|
* * * * * | Every minute |
*/5 * * * * | Every 5 minutes |
0 * * * * | Every hour at minute 0 |
0 9 * * * | Daily at 9:00 AM |
0 9 * * 1-5 | Weekdays at 9:00 AM |
0 9 * * 1 | Every Monday at 9:00 AM |
0 0 1 * * | First day of every month at midnight |
0 9,17 * * * | Daily at 9:00 AM and 5:00 PM |
*/30 9-17 * * 1-5 | Every 30 minutes, 9am–5pm on weekdays |
Second-precision (6-field) expressions are not supported.
Timezone configuration
Each job has a timezone field using IANA timezone strings (UTC, America/New_York, Europe/London, etc.). The cron expression is evaluated in that timezone when calculating due times.
Example: 0 9 * * * with timezone America/New_York runs at 9:00 AM Eastern Time, not UTC.
Creating and managing jobs
In the dashboard, go to Cron in your organization sidebar. You need the endpoints.edit permission to create, edit, delete, or manually trigger jobs.
When creating a job:
- Enter name and HTTPS URL
- Choose method and optional headers/body
- Set cron expression (presets available) and timezone
- Configure email notification on failure (optional)
After creation, HookDeploy calculates next_run_at automatically.
Run history and response inspection
Every run is logged with:
- Timestamp and duration
- HTTP status code or error message
- Response body (first 10KB, truncated with a note if longer)
- Trigger source:
scheduleormanual
View run history on the cron job detail page. New runs appear in the dashboard as they complete.
Filter by time range: last 24 hours, 7 days, 30 days, or all time.
Failure notifications
When a run fails (network error, timeout, or non-2xx status) and email notifications are enabled on the job:
- Email — the organization owner receives a failure email with status, duration, and error details
The dashboard toggle is stored as slack_notify_on_failure for compatibility; it currently controls email delivery only. Slack failure notifications for cron jobs are not implemented yet.
Auto-disable behavior
After 10 consecutive failures, HookDeploy automatically disables the job to prevent runaway failures and records the reason.
When auto-disabled:
- Scheduled runs stop
- Email notifications include an auto-disable warning when enabled on the job
- Run history is preserved
Re-enabling a disabled job
From the dashboard:
- Open the cron job (card shows a red banner when auto-disabled)
- Click Re-enable or Edit and toggle enabled back on
- Consecutive failure count resets to zero
- The next run is recalculated from the current time
Fix the underlying issue (wrong URL, auth, server down) before re-enabling.
Plan limits
| Plan | Max cron jobs | Minimum interval |
|---|---|---|
| Free | 2 | 1 hour |
| Starter | 10 | 5 minutes |
| Team | 50 | 1 minute |
| Enterprise | Unlimited | 1 minute |
The dashboard validates expressions against your plan’s minimum interval before saving. Attempting to create a job with too-frequent scheduling returns a validation error.
Dashboard support
Create, edit, trigger, and inspect cron jobs from the HookDeploy dashboard. Cron job management is not currently exposed through the public REST API.
Common expressions reference
| Expression | Description |
|---|---|
* * * * * | Every minute |
*/5 * * * * | Every 5 minutes |
*/15 * * * * | Every 15 minutes |
*/30 * * * * | Every 30 minutes |
0 * * * * | Every hour |
0 */6 * * * | Every 6 hours |
0 0 * * * | Daily at midnight |
0 9 * * * | Daily at 9:00 AM |
0 9 * * 1-5 | Weekdays at 9:00 AM |
0 9 * * 1 | Every Monday at 9:00 AM |
0 0 1 * * | Monthly on the 1st at midnight |
Next steps
- Slack integration — webhook delivery alerts on Starter and above
- Plans — compare cron job limits across plans