Cron jobs you can finally trust
Schedule HTTP jobs down to 15-second precision and get alerted the moment they fail — Slack, PagerDuty, email, or webhooks. No more silent 3 a.m. failures.
Free forever plan · No credit card required
Scheduling, execution, monitoring and alerting on one control plane.
Plugs into the tools your team already runs on
Minimum schedule interval
Built-in alert channels
Days of metrics & history
Virtual shards for scale
Capabilities
Everything your schedules deserve
From a single nightly job to a fleet of interdependent pipelines.
Sub-minute scheduling
Run jobs down to 15-second precision. Timezone-aware crons, execution windows, and day filters — “only on Fridays” is one toggle away.
Smart alerting
Dynamic rules on status codes, duration, and failure streaks. Incidents are deduplicated, so one outage means one alert — not fifty.
- Run failed (HTTP 503)
- Incident opened
- Slack notified
- Recovered
Dependency chains
Wire jobs into a DAG. Trigger downstream jobs when upstreams finish, with all-of or any-of fan-in semantics.
Heartbeat monitoring
We request your URLs on schedule and verify the response. Prefer push? Check-ins accept pings from your systems — silence past the grace period opens an incident.
next check-in expected in 42s
Secret vault
Store API keys and tokens once, inject them into requests at runtime. Fail-closed: a missing secret blocks the run instead of firing a broken call.
injected at runtime — fail-closed
Public status pages
Share uptime with your users. Hosted status pages with 90-day uptime bars for jobs, heartbeats and check-ins.
90-day uptime
Alerts that wake you up
Native iOS & Android push. Mark a rule as critical and your phone rings like an alarm — full-screen, loud, impossible to miss.
Critical: payments-cron is failing
full-screen alarm · bypasses silent mode
Overlap & retry policies
Skip, queue, or kill-and-restart when a run overlaps itself. Retries with exponential backoff and jitter, per job.
exponential backoff + jitter
Bulk monitoring
Watch one path across your whole fleet. Point /healthz at fifty domains in one step — each becomes an independent job.
one path → every domain
API-first
Everything you can click, you can automate. Manage jobs, incidents and status pages with API keys and a full REST reference.
POST /api/v1/jobs GET /api/v1/incidents POST /api/v1/status-pages
How it works
Live in three steps
From zero to a monitored job in under two minutes.
Connect an endpoint
Point cronctl at any URL, with headers, auth, query params, and response assertions.
Set a schedule
Cron or interval down to 15 seconds — timezone-aware, with execution windows and day filters.
Let it run
We execute it, retry failures, deduplicate incidents, and alert the right channel automatically.
For developers
Scriptable from day one
Everything in the UI is an API call underneath. Create jobs from CI, check in from your scripts, and receive webhooks for every event.
- Full REST API with API keys
- Check-ins with a single curl
- Webhooks for every incident event
- OpenAPI reference built in
curl -X POST https://cronctl.com/api/v1/jobs \
-H "Authorization: Bearer cctl_live_..." \
-d '{
"name": "nightly-report",
"target": { "url": "https://acme.com/cron/report" },
"schedule": { "interval_seconds": 900 },
"retry_policy": { "max_attempts": 3, "jitter": true }
}'Pricing
Simple pricing
Start free. Upgrade when you need tighter schedules, more jobs, or longer history.
Local taxes are calculated at checkout where applicable.
Frequently asked questions
Everything you need to know before you start.
A crontab fires blindly — if a job fails, hangs, or never runs, you find out from your users. cronctl executes the job for you, verifies the response, retries on failure, deduplicates incidents, and alerts the right channel, with full run history and metrics.
Stop babysitting your cron jobs
Set up your first monitored job in under two minutes. Free plan, no card required.
Free forever plan · No credit card required