Call your endpoint on a cron schedule or at an exact time

Relay Scheduler calls your HTTP endpoint on a cron schedule or at one exact time, in a timezone of your choice. Scheduler adds every call to an execution history that you can query for 30 days.

Scheduled HTTP calls to your own endpoints

Create a schedule with the URL of your endpoint, a payload, and either a cron expression or a single timestamp. At each scheduled time, Scheduler sends the payload to that URL, so a daily report or a renewal reminder can be an ordinary HTTP handler in your application.

How Scheduler times each call and records the response

Cron scheduling

Write a recurring schedule as a standard cron expression. With 15 2 * * *, Scheduler calls your endpoint at 02:15 every day; with 0 17 * * 1-5, Scheduler calls it at 17:00 from Monday to Friday.

One-time scheduling

For a one-time call, give the schedule a runAt timestamp. Scheduler calls your endpoint once at that time and then closes the schedule.

Timezone support

Scheduler evaluates each schedule in the timezone that you set on it, such as Europe/London or Africa/Nairobi, so it calls the endpoint of a 09:00 schedule at 09:00 local time in that zone.

Schedule management

Update the cron expression, the payload, or the target URL of a schedule through the API, or pause, resume, or cancel the schedule. Scheduler applies each change from the next scheduled time onward.

Execution history

For every call, Scheduler records the HTTP status, the duration, and the response from your endpoint. You can filter that history by status and by start time to list the calls that end in an error.

Manual triggers

When you trigger a schedule manually, Scheduler calls its endpoint at once with the same payload as a scheduled call. You can test a new endpoint this way before the first scheduled call.

< 1s
Schedule accuracy

Gap between the scheduled time and the call to your endpoint

30 days
History retention

How long Scheduler keeps each execution record

Custom
Schedules

Your plan sets how many schedules you can create

Build faster with solutions designed for real-world needs

Start a nightly reconciliation in London time

Create a schedule with a cron expression, a timezone, and the URL of your reconciliation endpoint. Scheduler converts each scheduled time from that timezone, including across daylight saving changes, and calls the endpoint with the payload that you set.

Impact

In the sample, Scheduler calls the Coalspark Trading reconciliation endpoint at 02:15 London time every night, on GMT in winter and on BST in summer. You will have no overnight server to keep up for the job.

Prompt for a coding agent: Run the reconciliation every night at 02:15 London time.

Conjoin IDE

Select a file to view its contents

Send a renewal reminder once, at an exact time

Create the reminder as a schedule with a runAt timestamp and a payload with the account and the plan. At that timestamp, Scheduler sends the payload to your renewals endpoint, which notifies the customer.

Impact

The sample schedules one Wickridge Health renewal notice for Naa Ayele's family plan, with the account ID in the schedule name so that you can find the schedule later. Scheduler stores each pending reminder until it is due, so you will have no reminder table or polling job to maintain.

Prompt for a coding agent: Send one renewal reminder at an exact time, and name the schedule after the customer's account.

Conjoin IDE

Select a file to view its contents

Pause every crew-rota schedule during an incident

List your schedules through the API or the console, filtered by a name prefix or a status. Each schedule in the list includes the time that it is next due. From the same list, you can update a cron expression, or pause a schedule and resume it later.

Impact

In the sample, an incident script lists up to 50 active Slatewing Air crew-rota schedules by their name prefix and pauses each one. Scheduler keeps the cron expression of each paused schedule, so you can resume the schedules through the same API once the incident ends.

Prompt for a coding agent: Pause every active crew-rota schedule during the incident.

Conjoin IDE

Select a file to view its contents

Debug a schedule now by triggering it on demand

Fetch the execution history of a schedule with a status filter of failed and a start time. Once you fix the endpoint, trigger the schedule to call the endpoint straight away.

Impact

The sample fetches up to 20 failed calls of the Glasshart Brewery inventory sync from a given start time and then triggers the sync once. Scheduler adds the triggered call to the same history, so you can check its status code to confirm the fix.

Prompt for a coding agent: Show the failed runs of the inventory sync, then trigger the sync once now.

Conjoin IDE

Select a file to view its contents

Build your next app on Conjoin

Conjoin will open with a free Build tier, while the pricing page already lists the launch prices for Pro and Business. If you tell us what you're building, we'll talk you through early access.