Docs

Scheduled job check-ins

Each run of a job pings Pagerless. If a run is late, missed or fails, you hear about it, at the level you choose.

From your code

Node
import { monitor } from "pagerless";

await monitor("nightly-backup", { cron: "30 3 * * *", tz: "America/New_York" }, () => backup());
Go
err := pagerless.Monitor(ctx, "nightly-backup", pagerless.Schedule{Cron: "30 3 * * *"}, func(ctx context.Context) error {
	return backup(ctx)
})
Any language
curl -X POST https://events.pagerless.dev/v1/checkins/nightly-backup -H "Authorization: Bearer $PAGERLESS_KEY"

monitor reports ok with the duration, or failed with the error message and rethrows. An empty POST counts as ok; send {"status":"failed","message":"..."} for a failure.

Schedules

Schedule fields
FieldMeaning
cron5 fields (30 3 * * *), ranges, steps, lists, names, or @hourly @daily @weekly @monthly @yearly. Daylight-saving aware.
expectEverySecondsInstead of cron: an interval from 60 seconds to 400 days.
tzIANA zone, such as Europe/Berlin. Default: your account's zone, else UTC.
graceSecondsHow late a run may be. Default: a tenth of the gap, between 5 minutes and 1 hour.
leveltell (default) or wake. Never log: a job nobody hears about isn't watched.

Job names are 1 to 64 lowercase letters, digits, dots, dashes or underscores. Up to 200 per app. A job is watched from its first ping; editing it in the app overrides what the code sends.

Converting an AWS cron(...) or rate(...) expression? Use the cron to check-in tool.

Updated .

Free for you and one backup · 3 apps · no card

Sleep through the small stuff.

Run one command in your repo. Pagerless shows every change before it makes it.

npx pagerless connect