Cron for serverless and edge functions

Schedule HTTP calls to your Vercel, Netlify, Lambda, or Cloudflare functions — without cloud lock-in.

The problem

Serverless is great until you need something to run on a schedule. Each platform has its own half-baked cron: Vercel and Netlify cron are tied to deploys, Lambda needs EventBridge wiring, and none of them retry sensibly or tell you when a run fails. Worse, your scheduling is now locked to whichever cloud you happen to be on.

How SteadyCron solves it

  1. 1 Create an HTTP job pointing at your function's URL, with the method, headers, and body it expects.
  2. 2 Pick a schedule and timezone. SteadyCron calls the endpoint on time, with correct DST handling.
  3. 3 Configure retries with backoff and a timeout, so a transient cold-start or 502 doesn't drop the run.
  4. 4 Every invocation is logged with status code, response body, and duration — and you're alerted on failure.
# SteadyCron calls your function on schedule:
POST https://my-app.vercel.app/api/cron/rebuild-search-index
Authorization: Bearer ${SEARCH_CRON_TOKEN}
app.steadycron.com/jobs

Jobs

New job
Search jobs…
All HTTP Heartbeat
Status Group: env
env:prod 5 jobs 1 failing
weekly-digest-email HTTP 0 9 * * 1 in 2 days 3 days ago
nightly-db-backup Heartbeat 0 2 * * * in 19 h 5 h ago
stripe-reconciliation HTTP 0 */4 * * * in 38 min 3 h ago
cache-warmup HTTP */15 * * * * in 11 min now
search-index-sync Heartbeat */30 * * * * in 6 min 24 min ago
env:dev 3 jobs
seed-test-data HTTP 0 4 * * * in 14 h 10 h ago
preview-env-cleanup Heartbeat 0 */6 * * * in 2 h 4 h ago
trial-expiry-sweep HTTP 0 6 * * * yesterday

Every job's status, schedule, and last run — at a glance.

Portable by design

Because SteadyCron just calls an HTTPS endpoint, your schedule isn’t tied to a single vendor. Move your function from Vercel to Cloudflare to your own server and the job keeps firing — only the URL changes.

A real audit trail

Platform cron logs are thin and ephemeral. SteadyCron keeps a per-run record of the status code, response, and timing, so “did the 3am reindex run, and what did it return?” has an answer.

Related documentation

Stop finding out the hard way

Start on the free tier — no credit card required.

Start free