POST /v1/scheduled-posts/:scheduledPostId/reschedule
Change the scheduled time of a queued post.
/v1/scheduled-posts/:scheduledPostId/reschedule- Auth
- Bearer
- Scope
- publish:write
Move a queued post to a different time. Only posts in status: queued are reschedulable - once a post is publishing or terminal, reschedule returns 409 CONFLICT.
Captions and targets are immutable after scheduling. To change those, cancel and re-schedule from the container.
scheduledPostIdstringrequiredId returned by schedule or publish.
scheduledForstring (ISO 8601, UTC Z)requiredNew publish time. **Must be in the future** — a ~30s clock-skew tolerance applies, but anything further in the past returns `422 VALIDATION` with `details.issues[0].path = "scheduledFor"`. To publish a queued post immediately, [cancel](/docs/api/reference/publishing/cancel-post) it and re-issue via [`POST /v1/content/:id/publish`](/docs/api/reference/publishing/publish-content) instead — the `/reschedule` endpoint is for moving the time of a pre-publish row, not for converting it to publish-now.
Time zones. scheduledFor is interpreted as a literal UTC instant, regardless of the project's timezone field. The project's timezone controls cron-driven managed-distribution slot generation; it does NOT shift partner-supplied scheduledFor values. To reschedule to "9am next Monday in the user's local timezone," convert in your application code first (e.g. new Date("2026-05-25T09:00:00-04:00").toISOString() → "2026-05-25T13:00:00Z"). Response timestamps (scheduledFor, updatedAt) are likewise always UTC with the Z suffix.
Example request
curl -X POST https://api.layers.com/v1/scheduled-posts/sp_4c8e7d2f-9a1b-4c3d-8e7f-2a1b3c4d5e60/reschedule \
-H "Authorization: Bearer lp_..." \
-H "Content-Type: application/json" \
-d '{ "scheduledFor": "2026-04-19T18:00:00Z" }'const post = await layers.publishing.reschedule({
id: "sp_4c8e7d2f-9a1b-4c3d-8e7f-2a1b3c4d5e60",
scheduledFor: "2026-04-19T18:00:00Z",
});post = layers.publishing.reschedule(
id="sp_4c8e7d2f-9a1b-4c3d-8e7f-2a1b3c4d5e60",
scheduled_for="2026-04-19T18:00:00Z",
)Response
{
"id": "sp_4c8e7d2f-9a1b-4c3d-8e7f-2a1b3c4d5e60",
"status": "queued",
"scheduledFor": "2026-04-19T18:00:00Z",
"updatedAt": "2026-04-18T19:21:08Z"
}Errors
| Status | Code | When |
|---|---|---|
| 422 | VALIDATION | scheduledFor is malformed or in the past (~30s clock-skew tolerance applies). details.issues[0].path is "scheduledFor". |
| 401 | UNAUTHENTICATED | Missing or invalid key. |
| 403 | FORBIDDEN_SCOPE | Key lacks publish:write. |
| 404 | NOT_FOUND | Post not in your organization. |
| 409 | CONFLICT | Post is publishing or terminal - not reschedulable. |
See also
DELETE /v1/scheduled-posts/:id- cancel insteadPOST /v1/content/:id/schedule- re-schedule from the container if you need to change captions or targets