schedule_post
Use this when the user wants to schedule or reschedule an existing Pin draft or queued Pin in Tailwind: takes the postId of an existing Pin (from create_post or list_posts) plus exactly ONE of useNextOpenSlot: true or an ISO 8601 sendAt. Prefer useNextOpenSlot whenever the user has not named a specific time — it places the Pin in the account's next open smart schedule slot and applies the account's Pin Spacing rules for the Pin's destination url, which a timestamp you compute yourself cannot. Reserve sendAt for a time the user actually asked for. The Pin must already have title, description, and url set; a draft without a board also needs boardId (numeric ID from list_boards). Pass boardSectionId to schedule it into a Board section — and note that passing boardId on its own clears any section the Pin already had, since a section is only valid on its own Board. Does not work on published Pins. A draft exists only in Tailwind, not on Pinterest, until this step: scheduling is what puts it into Tailwind's publishing flow. Moving a draft onto the schedule is the charged step: one Pin credit on modular billing with Publishing access, whether subscribed or granted, though winback plans schedule without charge and modular accounts without Publishing draw on a free-trial allowance; legacy and Shopify accounts spend no credits and count it against the plan's post limit instead. Rescheduling a Pin that is already queued costs nothing on any of them. To create and schedule a new Pin in one step, use create_post instead. To take a queued Pin off the schedule and back to draft, use unschedule_post. If the user did not say which Pinterest account to use and list_accounts returns more than one, ask the user which account to use before calling this — do not choose for them.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | Post ID of the draft or queued Pin to schedule, from create_post or list_posts | |
| sendAt | No | Explicit publish time (ISO 8601, e.g. 2025-01-15T10:00:00Z), in the future. Use only when the user named a specific time. Provide exactly one of sendAt or useNextOpenSlot. It sets only the initial time and is not an exemption from Pin Spacing: a later respace or schedule shuffle can still move the Pin. | |
| boardId | No | Target Pinterest board ID. Must be the numeric board ID (e.g. "1106196864631757445") from list_boards — not a board name or URL. Required when scheduling a draft post that doesn't already have a board assigned. | |
| accountId | Yes | Numeric Tailwind account ID returned by list_accounts | |
| boardSectionId | No | Section to publish into, validated against the board this Pin ends up on. Send "" to publish to the board root. Sending boardId WITHOUT this field clears any section the Pin already had, because a section is only valid on its own board. Use list_board_sections to look up section IDs. | |
| useNextOpenSlot | No | Schedule into the account's next open smart schedule slot, honoring its Pin Spacing rules for this Pin's url. Use this instead of computing a time yourself whenever the user has not named one. Provide exactly one of sendAt or useNextOpenSlot. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| post | Yes |