Cron scheduling & endpoint monitoring

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

Slack
PagerDuty
Opsgenie
Email
Webhooks
HTTP / REST
iOS / Android
REST API
Slack
PagerDuty
Opsgenie
Email
Webhooks
HTTP / REST
iOS / Android
REST API
0s

Minimum schedule interval

0+

Built-in alert channels

0d

Days of metrics & history

0

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.

every15 seconds
window09:00 – 18:00
daysMon–Fri
tzEurope/Istanbul
next runT-15s
:00:15:30:45:60

Smart alerting

Dynamic rules on status codes, duration, and failure streaks. Incidents are deduplicated, so one outage means one alert — not fifty.

  1. Run failed (HTTP 503)
  2. Incident opened
  3. Slack notified
  4. Recovered

Dependency chains

Wire jobs into a DAG. Trigger downstream jobs when upstreams finish, with all-of or any-of fan-in semantics.

extracttransformload

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.

STRIPE_KEY••••••••
DB_URL••••••••
API_TOKEN••••••••

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.

All systems operational99.98%

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.

skipqueuekill + restart

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.

/healthz
api.acme.comeu.acme.comus.acme.com

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.

01

Connect an endpoint

Point cronctl at any URL, with headers, auth, query params, and response assertions.

02

Set a schedule

Cron or interval down to 15 seconds — timezone-aware, with execution windows and day filters.

03

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
Read the API docs
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.

*/15 * * * * *

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