Tool reference

get_next_available_slots

Get Next Available Slots. Get the next N available posting slots based on your schedule template and already-scheduled notes.

GroupAccessMCP name
ScheduleRead-onlyget_next_available_slots

Description

The description the MCP server sends to the model, word for word. Its rules apply to every call.

Get the next N available posting slots based on your schedule template and already-scheduled notes. Pass tagNames to preview as if scheduling a note with those tags (first open or matching reserved lane; tagged previews skip untagged-only times). Omit tagNames to list the next free times in chronological order, including reserved and untagged-only times that are currently empty — do not assume an untagged note can use reserved times, or that a tagged note can use untagged-only times. Each result includes source (lane | open | any), the slot's tags, and untaggedNotesOnly. Call this before schedule_notes to preview when notes would be scheduled. Queue routing: each weekly time can reserve tags, accept only untagged notes, or stay open for any note, and may also set default Buffer channels. A time with tags is a reserved lane — it stays empty until a note shares ANY of those tags (OR). A time marked untaggedNotesOnly (and with no tags) accepts only notes with no tags; tagged notes never take those times, including Add to Queue leftovers. Untagged notes never take reserved lanes. When filling the next template times (schedule_notes), a tagged note takes the first open (any-note) time or matching reserved lane, whichever comes first. An untagged note takes the first open or untagged-only time. If a time has Buffer channels, those replace the note's channels when the note lands there (apply-on-schedule only). Substack still always posts. Call get_schedule to see each slot's tags, untaggedNotesOnly, and bufferChannels.

Arguments

ArgumentTypeRequiredDescription
countnumberYesNumber of available slots to return (1–100) Min 1. Max 100.
tagNamesstring[]NoOptional tag names to preview as if scheduling a note with those tags. Uses the first open (any-note) time or matching reserved lane, whichever comes first. Tagged previews skip untagged-only times. Several slot tags are OR — one shared tag is enough. Omit to list the next free times in chronological order, including reserved and untagged-only times that are currently empty — do not assume an untagged note can use reserved times, or that a tagged note can use untagged-only times. Call list_tags first if you need valid names.

Example call

The smallest valid request: required arguments only, with placeholder values.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_next_available_slots",
    "arguments": {
      "count": 1
    }
  }
}

Result

The result has structuredContent that matches this schema. The same data is also in content as JSON text.

FieldTypeRequiredDescription
countnumberYes
slotsobject[]Yes
slots[].datestringYes
slots[].formattedstringYes
slots[].sourcestringNoOne of: "lane", "open", "any".
slots[].tagsstring[]No
slots[].untaggedNotesOnlybooleanNo
timezonestringYes

Annotations

HintValue
readOnlyHinttrue
destructiveHintfalse
openWorldHintfalse

The full input and output JSON Schemas for every tool are in /mcp-tools.json.

On this page