forge
Clone forge-starter
plane: bothresource: ScheduledJobC2rendered from forge v1.56.0 platform-model.json

schedule-job

Register a durable job. The sidecar's ticker calls your app back on schedule with the service token; jobs due while the plane was down fire on boot; ticks never overlap.

ScheduleJobPOST /capabilities/schedule-job
ScheduledJobthe Resource it produces
2 eventsJobScheduled · JobUnscheduled

Ask your agent forge → schedule-job

you
Schedule a nightly digest job for hello that POSTs to /api/cron/nightly-digest every 24h.
claude
forge → schedule-job Done — ScheduledJob created; I recorded JobUnscheduled.

From the terminal

$ forge schedule --app hello --name nightly-digest --target /api/cron/nightly-digest --every 24h

HTTP either plane

POST /capabilities/schedule-job
Content-Type: application/json
x-forge-actor-type: builder
x-forge-actor-id: cli

{
  "app": "hello",
  "name": "nightly-digest",
  "target_path": "/api/cron/nightly-digest",
  "method": "POST",
  "every": "24h"
}

Input fields 9

app
name
target_path
method
every
cron
at
disabled
remove

Events ForgeEvent

JobScheduled   resource_type: ScheduledJob
JobUnscheduled   resource_type: ScheduledJob

Resource GET /resources/ScheduledJob/:id

{
  "type": "ScheduledJob",
  "id": "res_01J…",
  "app_id": "app_hello",
  "status": "succeeded",
  "created_at": "2026-09-03T14:00:00Z"
}

Errors: see Reference → Errors. Find it in the playground