Using Alwaysbeat
Schedules & grace
A check's schedule says when a ping is expected; its grace period says how late a ping may be before the check is considered down.
Two kinds of schedule
Interval
Use an interval when the job runs roughly every N minutes/hours, regardless of
wall-clock time. The value is a duration like 30s, 15m, 1h,
or 24h. The next deadline is measured from the last ping.
kind: interval
interval: 1h # a ping is expected within an hour of the last one
Cron
Use a cron expression when the job runs at specific clock times — "3 AM every day", "every Monday at 9". Alwaysbeat uses the standard 5-field cron syntax:
# ┌───── minute (0–59)
# │ ┌─── hour (0–23)
# │ │ ┌─ day of month (1–31)
# │ │ │ ┌ month (1–12)
# │ │ │ │ ┌ day of week (0–6, Sun=0)
0 3 * * * # every day at 03:00
*/15 * * * * # every 15 minutes
0 9 * * 1 # Mondays at 09:00
The named descriptors @hourly, @daily, @weekly,
@monthly, and @yearly are also accepted. There is no seconds field.
Timezones
Every cron check stores an explicit IANA timezone (e.g.
Australia/Melbourne, America/New_York, UTC). Cron times
are evaluated in that zone, and Daylight Saving Time transitions are handled correctly — a
0 3 * * * job fires at 3 AM local time on both sides of a DST change, never
skipped or doubled.
Grace period
Real jobs don't finish at the same instant every time — they queue, they vary with load, the
machine is busy. The grace period is the slack you allow after the scheduled deadline before
the check is marked down. It's a duration like 5m or 1h.
Concretely, the deadline is:
deadline = next_scheduled_time + grace
A check flips to down only once the current time passes that deadline. For an
interval check that last pinged at T, the deadline is
T + interval + grace. For a cron check, it's the next cron fire time plus grace.
Choosing a grace period
- Base it on how much your job's start time and run time actually vary, plus a margin.
- Too short → false alarms when the job is merely a little slow. Too long → you learn about a real outage later than you'd like.
- A backup that starts at 3 AM and usually finishes by 3:10 but occasionally takes 25 minutes wants a grace of ~30 min, not 5.
Pausing
Pausing a check stops all deadline evaluation and alerting until you resume it — useful during planned maintenance. A paused check is never marked down. The next ping after resuming (or the Resume button) puts it back into normal operation.