undownable

cron-job.org alternative: watching jobs rather than running them

Updated Aug 19, 2026

Worth clearing up first, because it changes the answer: cron-job.org is a free service that executes scheduled jobs by calling your URLs on a timetable. Undownable does not run anything for you; it watches jobs you already run and tells you when they stop reporting in. Some people searching for an alternative want a different executor. Most, once they think about it, want the monitoring half.

What cron-job.org does well

It is free, it has been running for many years, and it does a specific useful thing: if you have no server of your own to run cron on, it will call your URL on a schedule for you. That is a real gap it fills, particularly for shared hosting, serverless apps, and hobby projects.

If you need something to trigger a URL every ten minutes and you have no infrastructure, it is hard to argue with free, unlimited, and proven.

The trade you are making

The constraints are the ones you would expect from a free, donation-funded service, and they are published honestly.

The failure it cannot catch

A scheduled job has a specific and nasty failure mode: it fails quietly. Nobody notices a backup that has not run, because nothing happens. No error page, no angry customer, no alert. You find out weeks later when you need the backup, which is the worst possible moment to find out.

The fix is a dead man switch. Your job pings a private URL when it succeeds. If the ping does not arrive inside the window you set, an incident opens and you get alerted. Silence becomes a signal rather than an absence. That works no matter where the job runs: a server, a laptop, a Raspberry Pi, a container, a CI pipeline, or a scheduled task somewhere else entirely.

0 3 * * * /usr/local/bin/backup.sh && curl -fsS --max-time 10 https://undownable.com/ping/your-monitor-id > /dev/null

The double ampersand is the important part. The ping only fires if the backup script exits successfully, so a failed backup produces no ping, and no ping produces an alert. A job that runs but fails is now just as loud as a job that never runs at all.

Side by side

cron-job.org Undownable
Pricing model Free, donation funded, no paid tier Free tier, then one flat price per team
Check interval Executes as often as once per minute 5 minutes on Free, 1 minute on Pro, plus heartbeat windows
Monitor count No hard job cap, subject to fair use 10 monitors on Free, 50 on Pro
Status pages Status monitor pages and badges available 1 on Free, unlimited on Pro with custom domains
Alert channels Failure, recovery, and SSL expiry notifications Email, ntfy, Telegram, Slack, Discord, webhooks, all plans
Team members Single account model Unlimited on Pro, no per-seat charge
API and automation API with a daily call limit Versioned REST API plus a first-party MCP server
External backstop fit Runs your jobs, does not watch your own scheduler Watches your jobs and your sites from outside

Where Undownable differs

The two are complements more often than substitutes, but the differences are worth stating plainly.

Who should stick with cron-job.org

The strongest setup for many people is both: let cron-job.org trigger the work, and have the endpoint it calls ping an Undownable heartbeat on success. Then you find out when the executor itself stops calling, which is the one failure cron-job.org cannot report to you.

Can Undownable run my cron jobs for me?

No. Undownable is a monitor, not a scheduler. It never calls your URLs on a timetable of your choosing to do work. It runs health checks and it waits for heartbeat pings, and it alerts when either goes wrong.

How do I monitor a cron job with Undownable?

Create a heartbeat monitor and set the interval you expect a ping within. You get a private URL. Append a curl to that URL at the end of your job, joined with a double ampersand so it only runs on success. If the ping does not arrive in time, an incident opens and your alert channels fire.

What if my job runs a few minutes late?

Nothing happens until the window you configured has passed. Set the expected interval a little wider than the job actually needs and normal variance never pages anyone, while a genuinely dead job still does.

Does the machine running the job need to be reachable from the internet?

No, and that is the advantage of the push model. The job makes an outbound HTTPS request to the ping URL, so it works fine on a laptop, a home server behind a router, a container, or a CI runner, with no inbound access and no open ports.

Can I use both cron-job.org and Undownable together?

Yes, and it is a sensible pairing. cron-job.org triggers the work, and the endpoint it calls pings an Undownable heartbeat when it finishes successfully. That way you are alerted whether the job fails, the endpoint breaks, or the executor stops calling.

Related reading

Monitoring that watches from the outside

Free plan with 10 monitors, plus a 14-day Pro trial. No credit card required.

Start free