Docs
Everything is one HTTP request. These guides show where to put it.
Start here
Create a monitor and send your first ping in two minutes.
Ping API referenceEvery URL a heartbeat monitor understands: success, start, fail, exit codes, logs.
The vivere CLIWrap any command so its start, exit code, duration and output tail are reported.
Schedulers
Add a ping to a crontab line with curl, or wrap the job.
systemd timersReport a systemd service run with ExecStartPre / ExecStartPost.
Windows Task SchedulerPing from PowerShell and report failures with the exit code.
GitHub ActionsKnow when a scheduled workflow stops running, not just when it fails.
Kubernetes CronJobWrap the container command so every run reports.
Docker and ComposeReport container jobs and one-shot services.
Automation platforms
A Schedule Trigger that stops firing produces no failed execution, so your Error Workflow never reports it. Here is the check that does.
Make and ZapierAdd an HTTP module as the last step of a scenario or zap.
Data orchestrators
A paused DAG or a stopped scheduler produces no failed task, so callbacks and email-on-failure stay quiet.
PrefectA deployment with no worker on its work pool goes Late, not Failed, and Late sends nothing by default.
DagsterSchedules are evaluated by the daemon. If the daemon is down or the schedule is stopped, there is no run to fail.
Frameworks
Beat queues the task and a worker runs it. Either half can stop without the other noticing.
Laravel schedulerEverything scheduled hangs off one crontab line. One package monitors every task, or use the built-in ping methods.
Rails and sidekiq-cronCron lives in Redis and runs inside Sidekiq, so a lost schedule key is silent.
Languages
requests, urllib, and a decorator that reports exceptions.
Node.jsfetch, plus a wrapper for scheduled scripts.
Gonet/http and a helper that reports panics and errors.
Agents
Let scheduled agents and hooks report that they ran, and alert when they go quiet.
MCP serverGive Claude, Cursor or any MCP client tools to create monitors and check in.
Reference
Uptime checks with status codes, keywords, intervals and thresholds.
Alert channelsEmail, webhooks, Slack, Discord, Telegram and ntfy, and the webhook payload.
Status pages and badgesPublish a public status page and embed SVG badges.
HTTP APIMonitors, pages, sharing, teams, alert channels and pixels over HTTP, with keys you can limit by permission and page.
When a schedule stops
What to check when a scheduled job, workflow or CronJob goes quiet, written to be useful whichever monitoring you use.
- Cron job not running: how to find out whyA cron job stopped running and nothing told you. The five usual causes in the order worth checking, how to read the logs, and how to find out next time without looking.
- n8n Schedule Trigger not firing: what to checkYour n8n Schedule Trigger stopped running. Activation state, timezone, missed executions after a restart, queue mode, and how to be told when a workflow goes quiet.
- GitHub Actions scheduled workflow stopped running: how to find out whyA GitHub Actions cron workflow stopped firing and nothing told you. The 60-day inactivity rule, the default branch, forks, delays and dropped runs at the top of the hour, edits that drop the schedule, billing, and how to notice the next time.
- GitHub Actions scheduled workflow runs late or is skippedWhy a GitHub Actions cron workflow starts minutes late or not at all: queueing at high load, the top of the hour, UTC and daylight saving, the 5-minute minimum and concurrency groups. How to measure the delay from run history, and how to trigger a job on time with workflow_dispatch.
- Scheduled workflow disabled after 60 days of inactivity: how to keep it runningGitHub disabled your scheduled workflow because the repository had no activity for 60 days. What the rule covers, how to confirm it, how to re-enable the workflow, and the options for keeping it running: real activity, a private repository, an external trigger, keepalive actions and their risks, or an alert when it happens.
- GitHub Actions cron not triggering on a branch or a forkA GitHub Actions schedule that never fires: the default-branch rule, edits to the cron line on a branch, a changed default branch, forks with scheduled workflows disabled, testing with workflow_dispatch and gh workflow run, and the cron syntax GitHub accepts.
- How to get an alert when a GitHub Actions scheduled workflow doesn't runGitHub's notifications cover runs that happen. Three ways to be told when a scheduled workflow does not run: a watchdog workflow in the same repository and where it falls short, polling the API from elsewhere, and a dead man's switch, with a grace period sized from your own run history.
- Windows Task Scheduler task didn't runA scheduled task did not run on Windows. Turning on history, reading the last run result codes, the stored-password trap, and how to know when a task goes quiet.
- Kubernetes CronJob missed its scheduleA Kubernetes CronJob did not create a Job. startingDeadlineSeconds, the 100-missed-schedules rule, concurrencyPolicy, suspended CronJobs, and how to alert on the run rather than the pod.
- How to monitor a Python script that runs on a scheduleMonitoring a scheduled Python script: reporting success and failure with requests, catching exceptions with a decorator, capturing tracebacks, and alerting when a run never happens.
- How to know if your backup actually ranBackups fail quietly. How to verify a backup ran, why exit code zero is not proof, what to check about size and restore, and how to be told the night it does not happen.
- A dead man's switch for your scriptsWhat a dead man's switch is, why it catches failures that error-based alerting cannot, how to build one with cron and curl, and the timing rules that stop it crying wolf.
- Catching up a missed cron job without getting the dates wrongWhich schedulers run a missed job later and which skip it, why a late run so often covers the wrong day, and how to key scheduled work by window so catch-up runs, retries and overlapping triggers are safe.
- n8n Google credential expires every 7 days: why, and the fixYour n8n Gmail, Sheets or Drive credential stops working every week. Why Google expires the refresh token after seven days while the app is in Testing, how to publish it, when verification applies, service accounts, and how to hear about it before the workflows that depend on it go quiet.
- n8n workflow succeeded but did nothing: catching runs with 0 itemsAn n8n execution says Success but handled no items: an empty API response, a Filter that dropped everything, a renamed field. Why n8n counts it as success, how to make it fail with Always Output Data, an If node and Stop and Error, and how a heartbeat can alert on a run that handled 0 items.
- How to get an alert when an n8n workflow doesn't runn8n tells you when a workflow fails, not when it does not run: an unpublished workflow, a schedule lost to a restart, a webhook nobody calls, an instance that is down. What n8n offers on its own, where each part stops, and the dead man's switch that covers the rest.