Schedule notes
schedule_notesSchedule up to 50 notes in one call, each exactly as schedule_note would (same platforms, limits, account defaults and Substack profile rules). Every note is checked first, and each gets its own result: scheduled (scheduleIds), duplicate (already scheduled with the same text, platform and time, so existingScheduleIds are returned and nothing is copied), or failed (reason says what to fix). When items have code SUBSTACK_NOTE_DRAFT_REVIEW, tell the writer how many were saved. Share their common connectionUrl to connect and review those same drafts together; connecting alone does not schedule them. One bad note does not stop the others. A note can quote a Substack Note or post with quoteUrl, as in schedule_note. Give every note its own clientRequestId and reuse the same ids when retrying the batch, so notes that already went through are returned rather than scheduled again. workspace, writer and publication apply to every note. For media, platformVersions, first replies or account choices, use schedule_note for that note.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"notes": "<notes>"
},
"name": "schedule_notes"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | ||
| writer | No | Authorized team writer name, handle, or id for every note. Required when a team workspace has multiple writers. | |
| workspace | No | Authorized team workspace name or id for every note. Absence selects the authenticated user’s personal account. | |
| publication | No | Substack publication name, handle, or URL for every note that includes SUBSTACK. Optional when schedule_note would not ask for one. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| results | Yes | ||
| summary | Yes | ||
| connectedAccount | No | ||
| connectionWarnings | Yes |