Skip to content

Releases and scheduling

Publish many entries as one unit, schedule a publish or unpublish for later, and run agents on a schedule.

A release is a named set of entries and assets that should change together: a product launch, a campaign, a rebrand. Each item says whether the release will publish or unpublish it. Publishing the release applies every item in one step, so readers never see half of a launch.

  1. Create a release with a title (Releases → New, or POST …/releases).
  2. Add entries and assets to it from the entry editor or the release (POST …/releases/{id}/items with { "entityId": …, "action": "publish" }).
  3. Review the list, then Publish release (POST …/releases/{id}/published, needs content:publish), or schedule it.

Publishing a release emits one entry.published event per entry, plus a release.published event that names them all, which is the one to subscribe to if a deploy hook should run once per launch.

Schedule an entry or a release to publish or unpublish at a time:

curl -s "$API/spaces/$SPACE/environments/main/scheduled-actions" \
-H "Authorization: Bearer $CMA" -H 'content-type: application/json' \
-d '{
"action": "publish",
"entityType": "entry",
"entityId": "'"$ENTRY_ID"'",
"scheduledFor": "2026-12-01T09:00:00Z"
}'

Scheduled actions are listed under GET …/scheduled-actions and can be cancelled until they run. Scheduling needs content:publish, because it is a publish that happens later.

A scheduled publish validates the entry when it runs, not when it was scheduled, so a draft that has since gone invalid fails rather than going live.

An agent schedule runs one of the AI agents on a cadence over the entries published since its last run: for example, enrich new articles every night, or moderate everything hourly. A schedule has a five-field cron expression in UTC, an optional content type, and whether its results apply directly or wait for review:

{ "workflow": "enrich", "cron": "0 2 * * *", "contentTypeApiId": "article", "autoApply": false }

The first run only records where to start; it doesn’t reprocess everything already published. Each run is capped in entries and tokens, and a run that stops early picks up where it left off. See AI features.