Schedule a post
Give it a scheduledFor and a timezone instead of publishNow.
The scheduling window
scheduledFor must land between 10 minutes and 75 days from now. Outside
that range the API returns 400 immediately, rather than uploading your media
and letting the platform reject it afterwards.
timezone is an IANA name (America/New_York, Europe/Berlin). It does not
shift scheduledFor — that instant is absolute. It records the timezone the
post was authored in so the calendar renders the time a human meant.
STORIES cannot be scheduled. Stories must go out with publishNow: true.
List the calendar
Edit a scheduled post
Editable fields are caption, scheduledFor, timezone and status (between
draft and scheduled). Media is changed through the
media endpoints, not here.
A post can be edited while its status is draft, scheduled, queued or
failed. queued still counts — the publish queue re-reads the row at delivery
and drops a message whose time no longer matches, so moving a queued post is
safe. Once it is uploading or publishing, the platform owns it and edits are
rejected.
Drafts
Create a post with neither publishNow nor scheduledFor and it lands as a
draft — on the calendar, not going anywhere. Promote it later by setting a
time:
Cancel
Deleting removes the post and its staged media. It does not retract anything
already published — for that, use
Delete published Facebook post.