Your workers, crons, backups and queues emit telemetry over the cheapest channel that fits — HTTP, WebSocket, DNS, UDP — and cron.watch turns it into live monitors, charts, fleet health and alerts. This whole panel is running for real below. Trigger an incident and watch the alert fire. Every widget links to the feature behind it.
Every monitor is a tiny workflow. It runs the moment a check-in is due — and only reaches you if something's actually wrong. Watch one run:
Idle — waiting for the next check-in window.
Sign up once, then branch into whatever you need. Each path is independent — turn on what fits, add more anytime (you pay per monitor, never per seat). The flow lights each one in turn:
Long-running workers & daemons phone home — silence pages you.
Know the job ran — on time, with its exit code — not just that it exists.
Route to Slack / PagerDuty / OpsGenie, escalate, mute maintenance windows.
Attach rows, latency, queue depth — charted, baselined, alertable.
Many identical replicas → one monitor with a “≥5 of 8 healthy” rule.
Customer-facing uptime bars and an incident timeline, from the same data.
Point an agent at the MCP server — it creates monitors and wires check-ins.
Stop the worker's beats with Trigger an incident: after the grace window the monitor flips red and the alert escalates Slack → PagerDuty. Hit Recover to resume. A public status page ↗ reflects the same state.
Heartbeat, cron, metric or fleet, every path above is the same handful of calls: initialize once over HTTPS, then keep it cheap. Full per-language recipes are in the heartbeat guide.
Self-serve over the API, or let an agent do it via MCP. Members are unlimited and free.
# verify email, then mint a key curl -X POST https://api.cron.watch/v1/keys \ -H 'Authorization: Bearer <token>' # → { "api_key": "cw_live_…" }
Pick a type and a schedule; you get back a check-in URL and slug. See a monitor ↗.
curl -X POST https://api.cron.watch/v1/monitors \
-d '{"name":"billing-worker","type":"heartbeat",
"schedule":"every 60s","grace":"3m"}'
One HTTPS init, then a cheap UDP/DNS/WebSocket beat — tier your transport ↗.
# init once (HTTPS), then beat cheaply curl https://cron.watch/s/billing-worker/start printf 'billing-worker pct=64' | nc -u -w0 ping.cron.watch 4738
Full state every 5 min over HTTPS; route alerts with escalation and mute maintenance windows.
curl https://cron.watch/s/billing-worker \ -d 'rows=10423&latency_ms=812&exit_code=0' # missed beats → Slack → PagerDuty
Spin up monitors, wire a check-in from each worker, and let cron.watch tell you the moment one goes quiet. 10 monitors free for 3 months.
Get early access →