Recurring jobs
Schedule, update, pause, and run HTTP callbacks with five-field cron expressions.
A recurring job creates a run each time its five-field cron schedule is due.
Create a job
Set schedule_type to recurring, then provide url and cron_expression.
curl --fail-with-body -sS -X POST "https://api.cronbolt.com/api/v1/jobs" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CRONBOLT_API_KEY" \
-H "Idempotency-Key: weekday-report-v1" \
-d '{
"name": "Weekday report",
"schedule_type": "recurring",
"cron_expression": "0 9 * * 1-5",
"timezone": "Asia/Kolkata",
"method": "POST",
"url": "https://example.com/webhooks/report",
"headers": {"Content-Type": "application/json"},
"body": "{\"source\":\"cronbolt\"}",
"timeout_seconds": 30,
"max_retries": 2,
"retry_backoff_seconds": 30,
"expected_status_min": 200,
"expected_status_max": 299,
"response_contains": "accepted",
"alert_webhook_url": "https://example.com/webhooks/alerts"
}'Cron format
Cronbolt accepts standard five-field cron expressions:
minute hour day-of-month month day-of-week| Expression | Meaning |
|---|---|
*/15 * * * * | Every 15 minutes |
0 * * * * | At the start of every hour |
0 9 * * * | Every day at 9:00 |
0 9 * * 1-5 | Weekdays at 9:00 |
Use an IANA timezone such as UTC, Asia/Kolkata, or America/New_York.
Preview a schedule
curl --fail-with-body -sS -X POST "https://api.cronbolt.com/api/v1/jobs/preview" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CRONBOLT_API_KEY" \
-d '{"cron_expression":"0 9 * * 1-5","timezone":"Asia/Kolkata"}'The preview returns the next time that matches the expression and timezone.
Update a job
Patch only the fields that should change:
curl --fail-with-body -sS -X PATCH "https://api.cronbolt.com/api/v1/jobs/$JOB_ID" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CRONBOLT_API_KEY" \
-d '{"cron_expression":"0 10 * * 1-5","timezone":"Asia/Kolkata"}'Secrets are write-only. Job responses report whether headers or a body exist, but never return their values.
Pause, resume, or run now
curl --fail-with-body -sS -X POST "https://api.cronbolt.com/api/v1/jobs/$JOB_ID/pause" \
-H "X-API-Key: $CRONBOLT_API_KEY"
curl --fail-with-body -sS -X POST "https://api.cronbolt.com/api/v1/jobs/$JOB_ID/resume" \
-H "X-API-Key: $CRONBOLT_API_KEY"
curl --fail-with-body -sS -X POST "https://api.cronbolt.com/api/v1/jobs/$JOB_ID/run-now" \
-H "X-API-Key: $CRONBOLT_API_KEY" \
-H "Idempotency-Key: manual-$JOB_ID-v1"A manual run does not change the recurring schedule.
Reliability defaults
New jobs retry retryable failures twice with exponential backoff starting at 30 seconds. Set max_retries to 0 to disable this. Cronbolt never runs two deliveries for the same job at once. A due recurring occurrence is marked skipped while prior work remains active.
By default, HTTP 200 through 299 means success. Change the expected status range or set response_contains for application-level success. Response bodies are checked in memory and are never stored.
Set alert_webhook_url to receive best-effort, secret-free job.failed and job.recovered events.