Use case
Give your nightly jobs a window instead of the same start time.
When every job starts at 03:00, they can all reach for the same database or API at once. Give each HTTP job an allowed window, such as 02:00–04:00, and let Untimely select its start time. You get recurring triggers without adding random-delay code to each handler.
Move the schedule out of the job
Untimely calls your existing HTTP endpoint at a chosen time inside the window. Change the hours or frequency from the dashboard or API without editing a crontab on the machine that runs the work.
For a local script on a machine you already manage, a Bash delay may be all you need. The linked cron guide covers that approach and the differences between cron implementations.
Try it with one nightly job
Create a Webhook event with one trigger per one-day interval and a 02:00–04:00 window. Add your endpoint and authentication header. The API example below uses UTC; supply an IANA timezone if the window should follow local hours.
After the first run, check delivery history and your job’s own logs. A successful HTTP response confirms the request completed, while your handler tracks any background work it started.
Keep the controls that protect your job
Random start times reduce the chance of simultaneous starts, but jobs can still overlap. Keep a lock or concurrency limit where overlap matters, along with retries and monitoring. Untimely supplies the trigger; your existing job keeps control of execution.
API example
Create an API key in dashboard settings, then adapt this request to your endpoint:
curl -sS "https://untimely.app/api/events" \
-H "authorization: Bearer $UNTIMELY_API_KEY" \
-H "content-type: application/json" \
-H "idempotency-key: nightly-maintenance-jitter-001" \
-d '{
"name": "Nightly maintenance with jitter",
"interval": 1,
"frequency": 1,
"betweenTimeStart": "02:00",
"betweenTimeEnd": "04:00",
"actionType": "WEBHOOK",
"webhook": {
"method": "POST",
"url": "https://example.com/jobs/nightly-maintenance"
}
}'FAQ
Before you set it up
What granularity is the jitter?
The trigger time is chosen inside your window; make the window as wide or narrow as your tolerance allows — from minutes to the whole day.
Can I jitter multiple runs per day?
Yes — frequency up to 5 triggers per interval, each independently placed in the window.
What about jobs that must not overlap?
Untimely schedules and delivers the trigger; concurrency control belongs in your job. Widen the window to reduce collision odds.