Receiver-idempotent
Automatic retries favor delivery. Deduplicate on the supplied Idempotency-Key.
Durable scheduled event delivery
Create a one-time, interval, or cron schedule. jscheduler holds the state, fires on the minute, and keeps delivering your HTTP webhook until it has a real answer.
Scheduling and sending are separate jobs. PostgreSQL leases make workers safe to scale horizontally; a durable outbox keeps a slow or failing receiver from blocking the clock.
Send JSON with a name, payload, and schedule. The API validates minute precision before storing it.
A worker atomically leases due work with SKIP LOCKED, so more workers add capacity without double-claiming.
The occurrence enters an HTTP outbox, then routes to your default or tag-specific endpoint.
Inspect attempts and errors, rely on the occurrence id for deduplication, and redrive uncertain delivery.
Access gives you an organization and an API key. The same key works in the CLI and plain HTTP—there is no proprietary runtime to install.
Open the complete quickstart →curl -fsSL https://cli.jscheduler.com/install.sh | bashjscheduler auth login --api-key jsk_••••••jscheduler endpoints create --url https://example.com/hooksjscheduler events create --name wake-up --kind ONE_TIME \\--fire-at 2030-07-13T09:00:00Z --payload '{"ready":true}'The hot path is database-backed and lease-coordinated. Every delivery gets history, attempt state, and an idempotency key—useful evidence when a receiver has a bad day.
Automatic retries favor delivery. Deduplicate on the supplied Idempotency-Key.
Ambiguous network outcomes stop as UNCERTAIN and wait for your explicit redrive.
2030-07-13T09:00:00ZReminders, trial endings, delayed workflows.
intervalMinutes: 15Polling, refreshes, recurring maintenance.
0 9 * * MON-FRIReports, billing cycles, business routines.