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 slotsResponse
{ "data": [ { "days": ["mon","wed","fri"], "times": ["09:30","17:30"] } ] }PUT
/2/channels/:id/schedulesReplace time slots| Parameter | Type | Description |
|---|---|---|
| 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/updateswith noscheduled_at→ next slotPOST /2/updates/:id/top→ jump the queuePOST /2/updates/:id/publish_now→ skip the queue entirelyGET /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.