Schedule pins in n8n
A schedule is a pin queued to publish at a future time. Use the Schedule → Create operation when you want a pin to go live later instead of now.
Prerequisites
- The PinBridge credential set up. See Set up your PinBridge credential.
- A connected Pinterest account and a target board.
Create a schedule
- Add a PinBridge node set to Resource = Schedule, Operation = Create.
- Select your Connection and Board.
- Set Run At to a future time. This is a dateTime field and it must be ISO 8601 with an explicit timezone offset, for example
2026-10-01T14:30:00+00:00. A value without an offset is rejected, and a time in the past is rejected. - Set Media Source to Public Image URL (then Image URL) or Uploaded Asset (then Asset ID, default
={{$json["id"]}}). - Set a Title (max 100).
- Execute. The node calls
POST /v1/schedulesand returns the created schedule.
Optional fields on a schedule: Description (max 800), Link URL (max 2048), and the video cover fields (Video Cover Source, then Cover Image URL or Cover Image Asset ID).
What schedules do not support
Schedules carry title, description, link, media, and cover only. They do not accept Alt Text, Related Terms, or Dominant Color. Those three fields exist only on Pin → Publish, not on Schedule → Create. If you need alt text, related terms, or a dominant color on a scheduled pin, use a bulk import row with a run_at value instead, which is a full pin definition. See Bulk import pins.
Schedule states
A schedule moves through scheduled → queued → running → done, or failed. Retryable failures pass through deferred, and a schedule can be canceled. When the schedule fires, it produces a pin that follows the normal pin lifecycle.
Manage schedules
The Schedule resource also supports:
- List —
GET /v1/schedules(use Return All, or Limit when Return All is off). - Get —
GET /v1/schedules/{scheduleId}; set Schedule ID to={{$json["id"]}}. - Cancel —
POST /v1/schedules/{scheduleId}/cancel.
curl equivalent
curl -sS -X POST "https://api.pinbridge.io/v1/schedules" \
-H "X-API-Key: $PINBRIDGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"account_id": "6f1c2e4a-3b7d-4c9e-8a21-5d0f9b3e7c41",
"board_id": "987654321098765432",
"title": "Scheduled pin",
"image_url": "https://placehold.co/1000x1500.png",
"run_at": "2026-10-01T14:30:00+00:00"
}'
Note: the schedule endpoint does not take an idempotency_key. That field is a Pin → Publish concern.
Verify it worked
Run Schedule → Get with Schedule ID = ={{$json["id"]}}. A status of scheduled and a run_at matching what you sent confirm it is queued. After the run time passes, the linked pin appears with its own status; check it with Publish your first pin‘s verify step.
Next steps
- Bulk import pins — schedule many pins at once with per-row
run_at. - Node reference — every Schedule parameter and endpoint.
- Troubleshooting — timezone and past-time errors.
