Reschedule Post
Change the publish time of a scheduled post.
Change the publish time of a scheduled post.
/api/v1/post/{postId}Update the scheduled publish time of a PENDING post.
{
"publishAt": "2027-01-21T15:00:00Z"
}{
"publishAt": "2027-01-21T15:00:00Z"
}| Field | Type | Required | Description |
|---|---|---|---|
publishAt | string | Yes | New publish time as a future ISO 8601 date |
timezone | string | No | Optional IANA override. Defaults to the workspace timezone. |
curl --request PATCH \
--url https://dopost.co/api/v1/post/<postId> \
--header 'x-api-key: <apiKey>' \
--header 'Content-Type: application/json' \
--data '{ "publishAt": "2027-01-21T15:00:00Z" }'curl --request PATCH \
--url https://dopost.co/api/v1/post/<postId> \
--header 'x-api-key: <apiKey>' \
--header 'Content-Type: application/json' \
--data '{ "publishAt": "2027-01-21T15:00:00Z" }'{
"id": "cm3abc123def456",
"scheduledFor": "2027-01-21T15:00:00.000Z"
}{
"id": "cm3abc123def456",
"scheduledFor": "2027-01-21T15:00:00.000Z"
}Only PENDING posts (scheduled but not yet published) can be rescheduled. Use List Posts with ?status=PENDING to find reschedulable posts.
| Status | Error | Cause |
|---|---|---|
400 | publishAt is required | Missing publishAt field |
400 | publishAt must be a valid ISO 8601 date | Unparseable date string |
400 | publishAt must be a future date | Date is in the past |
400 | Only PENDING posts can be rescheduled | Post has already been published, failed, or is a draft |
401 | Invalid or missing API key | Bad or missing x-api-key header |
403 | API key does not have permission for this action | API key lacks the required scope for this endpoint |
404 | Post not found | The postId doesn't exist in your workspace |
500 | Failed to reschedule with QStash | Scheduling service error. The DB was rolled back |
429 | Rate limit exceeded | Too many requests. Check X-RateLimit-* response headers and retry after the indicated time |
Unzoned dates and times (2027-01-20T10:00:00) use the workspace IANA timezone automatically. Dates with Z or an explicit offset retain their instant; dopost converts and stores UTC. Nonexistent local times during a daylight-saving transition are rejected. Include an explicit offset to distinguish repeated local times.
Publish and reschedule requests accept an optional IANA timezone override, such as Europe/Madrid. For recurring posts, timezone selects the series and initial-date timezone and defaults to the workspace timezone. Updating a series retains its existing timezone. recurrence.endDate is the series' final calendar date.