Use case

A webhook API that fires at random times

Every cron service fires at the time you told it to. Untimely fires inside the window you told it to — a different time on every run. One authenticated POST creates the event; the webhook action then calls your endpoint with your chosen method, headers, and body.

What the API gives you

Events are created, read, updated, and deleted over a REST API documented in the OpenAPI spec at untimely.app/openapi.json. Webhook actions support GET, POST, PUT, PATCH, and DELETE, up to 25 custom headers, and a body up to 64 KB (GET requests reject bodies).

Windows, intervals, frequency

interval sets the cycle length in days (1–365), frequency sets how many random triggers land per cycle (1–5), and betweenTimeStart/betweenTimeEnd bound the window in UTC. daysOfWeek restricts which weekdays are eligible.

Reliability details worth knowing

Creation is idempotent with an Idempotency-Key header: retrying the same key and body returns the original response instead of a duplicate event. Every delivery is recorded in run history.

Try it

Create it with one API call (create an API key in dashboard settings first):

curl -sS "https://untimely.app/api/events" \
  -H "authorization: Bearer $UNTIMELY_API_KEY" \
  -H "content-type: application/json" \
  -H "idempotency-key: random-webhook-001" \
  -d '{
    "name": "Random webhook ping",
    "interval": 7,
    "frequency": 3,
    "betweenTimeStart": "09:00",
    "betweenTimeEnd": "17:00",
    "daysOfWeek": [1, 2, 3, 4, 5],
    "actionType": "WEBHOOK",
    "webhook": {
      "method": "POST",
      "url": "https://example.com/hooks/ping"
    }
  }'

FAQ

Questions about this use case

Is there a fixed-time option too?

Yes — set scheduleType to "deterministic" with a fixedTime and an IANA timezone.

Are windows timezone-aware?

Random windows are specified in UTC today. Deterministic schedules take an IANA timezone.

How do I authenticate?

Create an API key in dashboard settings and send it as a Bearer token.