---
title: "Schedule or reschedule post"
method: POST
path: "/posts/{id}/schedule"
tags: ["Posts"]
---

# Schedule or reschedule post

`POST /posts/{id}/schedule`

Schedule a post for publishing, or reschedule an already scheduled post to a new time. The post must have at least one channel with a connected profile. Archived posts cannot be scheduled; unarchive them first.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `publishAt` string, date-time — When to publish the post (UTC). Required for new schedules, optional for rescheduling (uses existing publishAt if not provided).

## Response `200`

Post scheduled successfully

- object
  - `id` string, uuid
  - `url` string, uri
  - `title` string
  - `channels` string[]
  - `status` 'Tentative' | 'ToDo' | 'InProgress' | 'ForReview' | 'Blocked' | 'Finalized' | 'Scheduled' | 'Posted'
  - `publishDate` string — Scheduled publish date (YYYY-MM-DD) in workspace timezone
  - `publishAt` string, date-time — Scheduled publish datetime UTC
  - `updatedAt` string, date-time

## Other responses

- `400` — Bad Request - Invalid input parameters
- `401` — Unauthorized - Missing or invalid API key
- `404` — Not Found - Resource does not exist

---

[API](https://skmtc.net/tryordinal/apis/ordinal-api.md) · [All operations](https://skmtc.net/tryordinal/apis/ordinal-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tryordinal/ordinal-api/versions/1d0792ff454f/schema)
