# cronpad > Open-source job scheduler: webhooks and commands on cron, Quartz, RRULE or plain-English schedules, with retries, alerts and measured start lag. Full documentation in one file: https://cronpad.com/llms-full.txt ## Introduction - [cronpad documentation](https://cronpad.com/docs.md): cronpad is an open-source job scheduler that fires webhooks and commands on time, retries failures, alerts you, and measures how late every run was. ## Get started - [Get started](https://cronpad.com/docs/get-started.md): Choose between cronpad Cloud and self-hosting, then schedule your first job. - [Get started on cronpad Cloud](https://cronpad.com/docs/get-started/cloud.md): Sign in, create a job that calls a webhook every five minutes, and watch its runs. - [Self-host cronpad](https://cronpad.com/docs/get-started/self-hosted.md): Run cronpad with Docker Compose, sign in, and schedule your first job on your own server. ## Concepts - [Concepts](https://cronpad.com/docs/concepts.md): The ideas behind cronpad — architecture, the job/run/attempt model, delivery guarantees, the scheduling engine and storage. - [How cronpad works](https://cronpad.com/docs/concepts/how-cronpad-works.md): The components inside the cronpad binary, how a schedule becomes a delivered webhook, and what each dependency is for. - [Jobs, runs and attempts](https://cronpad.com/docs/concepts/jobs-runs-attempts.md): The cronpad data model — workspaces, jobs, occurrences, runs and attempts — and every state each can be in. - [Delivery guarantees](https://cronpad.com/docs/concepts/delivery-guarantees.md): cronpad delivers every run at least once, never silently drops a scheduled run, and measures how late each one started. This page defines exactly what that means. - [Scheduling engine](https://cronpad.com/docs/concepts/scheduling-engine.md): How cronpad uses a SQLite queue file, atomic transactions, a dispatcher lock and a single claim loop to fire jobs on time without losing them. - [Storage](https://cronpad.com/docs/concepts/storage.md): Why cronpad stores data in three SQLite files, how it is backed up, and how far a single node scales. ## Schedules - [Schedules](https://cronpad.com/docs/schedules.md): The five ways to tell cronpad when to run a job — natural language, cron, Quartz, RRULE and one-off times — and how cronpad detects which one you used. - [Natural language schedules](https://cronpad.com/docs/schedules/natural-language.md): Write cronpad schedules in plain English, such as "every weekday at 6:30pm" or "last friday of the month" — the full grammar and examples. - [Cron and Quartz expressions](https://cronpad.com/docs/schedules/cron-and-quartz.md): Standard cron (5 or 6 fields, with descriptors like @daily) and Quartz cron (with L, W, - [RRULE and one-off schedules](https://cronpad.com/docs/schedules/rrule-and-one-off.md): Use iCalendar RRULE (RFC 5545) recurrence rules for calendar-style schedules, or schedule a job to run exactly once. - [Timezones and daylight saving time](https://cronpad.com/docs/schedules/timezones-and-dst.md): How cronpad evaluates schedules in a job's timezone and exactly what happens when clocks jump forward or back. - [Misfires and overlap](https://cronpad.com/docs/schedules/misfires-and-overlap.md): What cronpad does with runs it missed during downtime (misfire policy) and with runs that would start while the previous one is still going (overlap policy). ## Sinks - [Sinks](https://cronpad.com/docs/sinks.md): A sink is what cronpad does when a job fires — send an HTTP webhook, or run a shell command on self-hosted installs. - [Webhooks](https://cronpad.com/docs/sinks/webhooks.md): Configure webhook jobs, understand the request cronpad sends, classify responses, and verify Standard Webhooks signatures in Go, Node.js and Python. - [Commands](https://cronpad.com/docs/sinks/commands.md): Run a program or shell command on a self-hosted cronpad server when a job fires, with timeouts, exit-code handling and output capture. ## Retries and failures - [Retries and failures](https://cronpad.com/docs/retries-and-failures.md): How cronpad retries failed attempts, when it gives up on a run, and when it stops a job that keeps failing. - [Retries](https://cronpad.com/docs/retries-and-failures/retries.md): Configure how many times cronpad retries a failed attempt and how long it waits between tries, with exponential backoff and jitter. - [Auto-disable](https://cronpad.com/docs/retries-and-failures/auto-disable.md): cronpad disables a job after too many consecutive failed runs, to protect your endpoint and the service; how the threshold works and how to re-enable. ## Alerts - [Alerts](https://cronpad.com/docs/alerts.md): Get notified by email, Slack, Discord or webhook when runs fail, retry, breach their SLA, or when a job is disabled or recovers. - [Alert channels](https://cronpad.com/docs/alerts/channels.md): Configure email, Slack, Discord and generic webhook channels for cronpad alerts, including payload format and signature verification. - [Alert rules](https://cronpad.com/docs/alerts/rules.md): Decide which events for which jobs reach which channels, with conditions like "only after 3 consecutive failures" and cooldowns. ## Secrets - [Secrets](https://cronpad.com/docs/secrets.md): Store API tokens and passwords once per workspace, encrypted, and reference them in job configs as {{secret.NAME}} so they never appear in plain text. ## AI integration - [AI integration](https://cronpad.com/docs/ai.md): Let AI assistants create, inspect and debug cronpad jobs through the built-in MCP server, the agent skill, and machine-readable docs. - [MCP server](https://cronpad.com/docs/ai/mcp-server.md): Connect AI assistants to cronpad through its Model Context Protocol server over HTTP or stdio, and see every tool, resource and prompt it exposes. - [Agent skill](https://cronpad.com/docs/ai/agent-skill.md): The cronpad skill gives coding agents and AI assistants a ready-made playbook for scheduling, testing and debugging jobs. ## API reference - [API reference](https://cronpad.com/docs/api.md): The cronpad REST API — base URL, authentication, errors, pagination, idempotency and rate limits — with links to every endpoint. - [Jobs API](https://cronpad.com/docs/api/jobs.md): Create, read, update, delete, pause, resume, trigger and test cronpad jobs over the REST API. - [Runs API](https://cronpad.com/docs/api/runs.md): List a job's runs, read a run with all of its attempts, and retry failed runs over the REST API. - [Schedules API](https://cronpad.com/docs/api/schedules.md): Validate a schedule expression and preview its next fire times; both endpoints work without authentication. - [Workspace API](https://cronpad.com/docs/api/workspace.md): Manage API keys, secrets, alert channels and alert rules, and read stats, the audit log and health endpoints. ## CLI - [CLI](https://cronpad.com/docs/cli.md): The cronpad command-line tool runs the server, checks schedules offline, manages jobs over the API, and bridges MCP over stdio. ## Self-hosting - [Self-hosting](https://cronpad.com/docs/self-hosting.md): Everything you need to run cronpad on your own infrastructure — install, configure, authenticate, back up, monitor and upgrade. - [Installation](https://cronpad.com/docs/self-hosting/installation.md): Install cronpad with Docker Compose, Docker, Kubernetes or as a standalone binary. - [Configuration reference](https://cronpad.com/docs/self-hosting/configuration.md): Every cronpad setting, its default, and the environment variable that overrides it. - [Authentication](https://cronpad.com/docs/self-hosting/authentication.md): Configure Google, GitHub and generic OIDC sign-in for a self-hosted cronpad, restrict who can sign in, and bootstrap API keys. - [Backups with Litestream](https://cronpad.com/docs/self-hosting/backups.md): Continuously replicate cronpad's SQLite databases to S3-compatible storage with Litestream, and restore after a disaster or to a point in time. - [Production checklist](https://cronpad.com/docs/self-hosting/production-checklist.md): The settings and practices to verify before relying on a self-hosted cronpad in production. - [Upgrading](https://cronpad.com/docs/self-hosting/upgrading.md): How to upgrade a self-hosted cronpad safely, and what to expect from versioning and migrations. ## Observability - [Observability](https://cronpad.com/docs/observability.md): Monitor cronpad with OpenTelemetry metrics and traces, Prometheus, and structured logs in JSON or logfmt. - [Metrics](https://cronpad.com/docs/observability/metrics.md): Every metric cronpad emits, with type, labels and what it tells you. - [Logging](https://cronpad.com/docs/observability/logging.md): cronpad's structured logs in JSON or logfmt, the standard fields on every line, run context propagation, and redaction. ## Platform - [Platform](https://cronpad.com/docs/platform.md): Limits, data retention, security and editions — the rules cronpad runs by. - [Limits](https://cronpad.com/docs/platform/limits.md): Monthly run quota, concurrency caps, workspace suspension and the other limits cronpad applies, and how self-hosted operators configure them. - [Data retention](https://cronpad.com/docs/platform/data-retention.md): How long cronpad keeps runs, attempts, response bodies, audit logs and alerts, and how old data is pruned without affecting scheduling. - [Security](https://cronpad.com/docs/platform/security.md): How cronpad protects accounts, secrets and third parties — authentication, workspace isolation, SSRF protection, signing, and the hosted-mode safety defaults. - [Editions](https://cronpad.com/docs/platform/editions.md): Compare cronpad OSS, self-hosted Enterprise and the Cloud Free, Pro and Enterprise plans. - [Licensing](https://cronpad.com/docs/platform/licensing.md): AGPL-3.0 for cronpad OSS, commercial licensing for Enterprise, and the contributor agreement. ## Troubleshooting - [Troubleshooting](https://cronpad.com/docs/troubleshooting.md): Diagnose and fix common cronpad problems — jobs not firing, late runs, failing webhooks, duplicates, disabled jobs and server startup errors. ## reference - [Glossary](https://cronpad.com/docs/reference/glossary.md): Definitions of the terms used throughout the cronpad documentation.