Know the moment your cron job dies.
One HTTP ping per run. Miss a beat and we email, Telegram, Slack, or
webhook you within seconds. Built for PHP shops, but every language
that can curl works the same.
Drop-in HTTP API
One POST /ping/<uuid> per run, with optional
/start and /fail for duration and error
tracking. Captures up to 10KB of stdout per run.
Cron, interval, simple
Validate any cron expression with a live "next 5 runs" preview. Or use plain intervals — "every 6 hours" — when you don't need the full cron grammar.
Multi-channel alerts
Email, Telegram bot, Slack, Discord, signed webhooks. Anti-flap dedupe so a bad run doesn't page you ten times before the recovery ping clears it.
Status badges
Drop a shields.io-style SVG into your README to show the world
your nightly-rollup hasn't flatlined since 2024.
UTC + timezones, done right
Schedules stored in UTC, displayed in your timezone, DST-safe. We've put the corner cases through unit tests so you don't have to.
Composer SDK on the way
Symfony Scheduler bundle and Laravel package with auto-discovery —
one composer require and your schedule:list
shows up as monitors.
30-second integration
After signing up you get a UUID per monitor. Wrap any cron job:
0 * * * * /usr/bin/php /app/bin/console hourly:rollup && \
curl -fsS -m 10 --retry 5 https://cron-monitor.example.com/ping/<uuid>
That's it. If the script crashes, the curl is skipped, no ping
arrives, and we alert you. The /start + /success
variant gives you per-run duration history.
Pricing in one sentence
Free for 5 monitors, $5/mo for 25, $19/mo for 100, $49/mo for 500. No card on the free tier. Full plan comparison →