cronpad
cronpad is an open-source job scheduler built for reliability. You describe when (a cron expression, a Quartz expression, or plain English like second tuesday of every month at 9am) and what (an HTTP webhook, or a shell command on self-hosted installs). cronpad fires it on time, retries it when it fails, alerts you when something is wrong, and records how late every single run started.
It ships as one Go binary with no other services to run: SQLite files on a local volume hold everything. Use the hosted service for free, or run it yourself.
What makes it different
- Measured, not promised. Every run records when it was scheduled, claimed, started and finished. “How late was my 09:00 job?” has an exact answer, and the SLA definition is public: Delivery guarantees.
- Schedules people can read. Cron, Quartz (
L,W,#), RFC 5545 RRULE, or natural language, all with a live preview of the next fire times. See Schedules. - Built to survive failure. Two SQLite databases are the source of truth, the queue is a rebuildable SQLite index, and every failure mode has a documented recovery path. See How cronpad works.
- AI-native. A built-in MCP server and an agent skill let AI assistants create, inspect and debug jobs. See AI integration.
- Free and open source. No feature gates. The hosted service charges (later) only for larger workloads.
Start here
| I want to… | Go to |
|---|---|
| Schedule my first webhook in two minutes | Get started on cronpad Cloud |
| Run cronpad on my own server | Self-host cronpad |
| Understand the architecture | How cronpad works |
| Write a schedule | Schedules |
| Receive and verify webhooks | Webhooks |
| Automate with code | API reference · CLI |
| Let an AI assistant manage jobs | MCP server |
| Configure every knob | Configuration reference |
For AI agents
These docs are written to be read by people and by agents. Every page has a one-paragraph summary at the top. Machine-friendly versions:
/llms.txt: index of every page with a one-line description./llms-full.txt: all documentation as a single Markdown file.- Append
.mdto any docs URL to get that page as raw Markdown.