Back to Guides & Cookbooks
Guide

Schedules: run blueprints automatically on a timer

A schedule attaches to a blueprint and runs it automatically — daily, weekly, or on a cron expression. No custom scheduler, no cron jobs on your server.

1

How it works

You need a blueprint first. Then you attach a schedule to it. The schedule tells Cadreen when to run the blueprint and with what parameters.

BlueprintTemplateScheduleTimerRunExecutionTraceResultWebhook events:run.createdrun.completedrun.failed

Each run creates its own trace — inspect every execution in the dashboard

Each run creates a new execution with its own trace. If a run fails, Cadreen retries automatically (up to 3 attempts). If it needs human input, it pauses and sends a webhook.

2

Create a schedule

Two trigger types: recurring (simple: daily at 9am) and cron (flexible: any cron expression).

SDK — daily at 9am
const schedule = await cadreen.schedules.create({
blueprint_id: "bp_01JX",
name: "Daily morning report",
trigger: { type: "recurring", frequency: "daily", time: "09:00" },
timezone: "America/New_York",
params: { recipients: ["team@example.com"] },
});
// schedule.id = "sc_01JX"
// schedule.next_run_at = "2026-06-23T09:00:00-04:00"
SDK — cron (weekdays at 9am)
const schedule = await cadreen.schedules.create({
blueprint_id: "bp_01JX",
name: "Weekday reports",
trigger: { type: "cron", expression: "0 9 * * 1-5" },
timezone: "America/New_York",
});
cURL
curl -X POST https://accomplishanything.today/api/v1/cadreen/schedules \
-H "Authorization: Bearer sk_cadreen_..." \
-H "Content-Type: application/json" \
-d '{
"blueprint_id": "bp_01JX",
"name": "Daily morning report",
"trigger": { "type": "recurring", "frequency": "daily", "time": "09:00" },
"timezone": "America/New_York"
}'
3

Pause and resume

Pause a schedule when you don't need it running — vacations, maintenance, or just taking a break. Resume when you're ready.

SDK
// Pause
await cadreen.schedules.pause("sc_01JX", { reason: "Vacation — back Monday" });

// Resume
await cadreen.schedules.resume("sc_01JX");
CLI
cadreen schedules pause sc_01JX --reason "Vacation"
cadreen schedules resume sc_01JX
4

Webhook events

Every schedule run produces webhook events. Subscribe to them to know when runs start, complete, fail, or need human input.

EventWhen
schedule.run.createdA new run is queued
schedule.run.startedExecution begins
schedule.run.completedRun finished successfully
schedule.run.failedRun failed after all retries
schedule.run.needs_humanRun paused — waiting for human input
schedule.run.retry_scheduledRun failed, retry scheduled
schedule.pausedSchedule was paused
schedule.resumedSchedule was resumed
Note
Set up webhooks in Settings to receive these events at your endpoint.
5

List and manage schedules

SDK
const { schedules } = await cadreen.schedules.list();
for (const s of schedules) {
console.log(s.name, s.status, s.next_run_at); // "active", "2026-06-23T09:00:00Z"
}
CLI
cadreen schedules                    # list all
cadreen schedules show sc_01JX # view details
cadreen schedules pause sc_01JX # pause
cadreen schedules resume sc_01JX # resume
Note
Prerequisite: you need a blueprint before you can schedule it. Create one from a trace or from scratch.