Documentation menu ▾

Schedules & the queue

How weekly time slots turn into queue positions — the heart of the Buffer scheduling system.

Each channel owns weekly time slots. Creating an update without scheduled_at drops it into the channel's next open slot — the classic “Add to Queue”.

GET/2/channels/:id/schedulesRead time slots
Response
{ "data": [ { "days": ["mon","wed","fri"], "times": ["09:30","17:30"] } ] }
PUT/2/channels/:id/schedulesReplace time slots
ParameterTypeDescription
schedules*{days[], times[]}[]Days are mon…sun; times are 24h HH:MM in the channel timezone
Request
{ "schedules": [
  { "days": ["tue","thu"], "times": ["08:00","13:00","19:00"] }
] }
Response
{ "data": [ { "days": ["tue","thu"], "times": ["08:00","13:00","19:00"] } ], "message": "Schedule updated" }

Queue operations

  • POST /2/updates with no scheduled_at → next slot
  • POST /2/updates/:id/top → jump the queue
  • POST /2/updates/:id/publish_now → skip the queue entirely
  • GET /2/channels/:id/updates/scheduled → read the queue
Deterministic reslotting
Edits and top preserve relative order and never collide with existing slots — the engine spaces updates at least one minute apart.