Create a check
Sign up in 10 seconds. Name your script or container, set your schedule interval, and get a unique ping URL.
Cron job monitoring
CronHook monitors your scheduled tasks, background scripts, and containers. Get alerted on Slack, Discord, or Email when a ping is missed.
# Add curl ping to your crontab:
*/5 * * * * /app/backup.sh && curl -fsS \
https://cronhook.site/ping/your-check-id
# CronHook alerts Slack & Email if
# the ping fails to arrive within grace period. # Python scheduled task ping
import requests
try:
run_daily_etl_job()
requests.get("https://cronhook.site/ping/your-check-id", timeout=10)
except Exception as e:
# Optional: send error payload to CronHook
requests.post("https://cronhook.site/ping/your-check-id/fail", json={"error": str(e)}) // Node.js / TypeScript background worker
async function handleQueue() {
try {
await processBatchJobs();
await fetch("https://cronhook.site/ping/your-check-id");
} catch (err) {
console.error("Job execution failed:", err);
}
} # Docker container health check / entrypoint script
#!/bin/sh
/usr/local/bin/run-cleanup.sh
# Signal successful execution
curl -fsS --retry 3 https://cronhook.site/ping/your-check-id # GitHub Actions Workflow Step
- name: Ping CronHook Monitor
run: |
curl -fsS https://cronhook.site/ping/your-check-id Live demo
See how CronHook detects a missed ping and sends alerts.
How it works
No servers, no agents, no polling loops. Just an HTTP request at the end of your job.
Sign up in 10 seconds. Name your script or container, set your schedule interval, and get a unique ping URL.
Append curl cronhook.site/ping/check_id to your cron file, Python script, or Docker entrypoint.
If your job misses a ping or crashes silently, CronHook alerts your team on Slack, Discord, Email, or Webhooks.
Features
Each monitor runs inside its own Durable Object with native alarm scheduling. No database polling.
Each monitor is an isolated Cloudflare Durable Object with a native alarm timer. When a ping is missed, the alarm fires and your webhooks are called directly — no polling loops or background queues.
Route notifications instantly to Slack webhooks, Discord channels, Email, or custom HTTP webhooks with failure payloads.
Buffer job execution variance from 1 minute to 24 hours. Prevent false alarms caused by temporary database spikes.
Share live status with your users or team. Embed status badges in docs and track 30-day uptime SLAs.
Every outage is logged with exact downtime durations, failure timestamps, HTTP headers, and recovery confirmations.
5 monitored jobs with unlimited pings, email and Slack alerts. No credit card required.
FAQ
Every check created on CronHook provisions an isolated Cloudflare Durable Object actor. When a check is configured, an internal alarm timer is scheduled on Cloudflare's edge network for the target period plus your grace buffer. When your job pings the URL, the alarm is extended. If the ping doesn't arrive before the alarm fires, the actor triggers your alert webhooks instantly.
CronHook supports standard GET, POST, and HEAD requests. You can append HTTP ping calls with curl, wget, Python requests, or any HTTP client. You can also send optional JSON execution logs or exit codes in the POST body to store debugging output for failed runs.
Yes, CronHook is agentless. As long as your environment has outbound internet access to perform an HTTP request, you can monitor any script, container, Lambda function, or CI/CD workflow step.
Our free tier includes 5 active monitored jobs (with unlimited incoming ping requests), minimum 5-minute schedule intervals, 1-minute minimum grace buffer, 30-day incident log history, and alerts via Email, Slack, and Discord. No credit card is required.
Create a free account and add a ping URL to your script.
Free plan available — no credit card required