publ betaReference (MCP guide)
Open publ console

publ Reference

content_schedule_apply

Create, replace or cancel one future publication schedule.

Read the shared content contract for authorization, app identity, result interpretation and recovery.

Inputs and actions

Require channelCode, supported pAppCode, target {model:POST|SERIES,id}, requestId and expectedRevision from content_schedule_get. dryRun defaults to false.

action.kind Fields and prerequisites
create scheduledAt; target unpublished, with no active publication schedule.
replace Opaque taskId from the matching schedule read and scheduledAt; select an active publication task, and keep the target unpublished.
cancel Opaque taskId for an active publication task of this target.

scheduledAt must be a future ISO8601 instant with Z or an explicit UTC offset and whole-second precision. The bridge converts it to source UTC without a suffix. No user/agent timezone is inferred. A post's publishedAt metadata does not replace this workflow. Fired, completed, deactivated or non-publication tasks cannot be used as an active publication selection.

Save and interpretation

Create uses the appropriate source publication manifest; replace/cancel dispatch REPLACE/DEACTIVATE for the selected task. The result CONTENT_SCHEDULE_SAVED includes the observed schedule, revision and bridge taskId. Verification checks the schedule registry, target detail's active schedule list, unrelated schedules and retained pipeline/recipient fields. A replacement can preserve its ID or return a new one only when the original is observed deactivated and required fields survive. Cancellation must be observed before execution. Target content and visibility must remain unchanged.

Saving or cancelling registry state does not prove future execution, notification delivery or removal of already delivered effects. One request affects one target; no notification preferences or pricing are edited.

Recovery

Use taskType content-schedule with the bridge taskId, distinct from action.taskId. Sent requests are never resubmitted. Identical retry/resume reads back only; a create without a trusted returned schedule ID cannot be adopted from a matching timestamp. Preserve pending work on SCHEDULE_OUTCOME_UNVERIFIED or preservation errors. A completed replay is historical, and no automatic rollback or source atomic compare-and-swap is promised.

Input example

This is an input illustration, not a recorded call. Replace the channel, app, observed IDs and all-zero revision with values from the matching authorized read. A dry run does not save changes.

{
  "channelCode": "selected-channel",
  "pAppCode": "B00001",
  "requestId": "example-request-001",
  "expectedRevision": "0000000000000000000000000000000000000000000000000000000000000000",
  "dryRun": true,
  "target": {
    "model": "POST",
    "id": 1
  },
  "action": {
    "kind": "create",
    "scheduledAt": "2030-12-01T10:00:00+09:00"
  }
}