Private preview of the new site. Not live.

schedule.list

A shop's visits that overlap a time window, earliest first. Filter by worker, job, or only mine. Field workers only ever see their own.

WhoAgents can call this
RESTGET /v1/schedule
MCP toolschedule_list
Writesno
AreaScheduling and visits

When to use it

Read schedule.settings first: it has the shop's time zone, working hours, arrival window and buffer. Use schedule.findTime to get open times that fit the shop's hours, each worker's hours and time off, and visits already booked with the buffer around them, then book with visits.create.

What to tell the owner

Tell them what you found in plain words. Don't read back raw fields.

Input

FieldTypeRequired
shop_idstring (uuid)yes
fromstring (date-time)yes
tostring (date-time)yes
person_idstring (uuid)no
job_idstring (uuid)no
minebooleanno
unassignedbooleanno
include_cancelledbooleanno

Example

GET https://doingwork.work/v1/schedule?shop_id=00000000-0000-4000-8000-000000000000&from=...&to=...

Output

FieldTypeAlways there
itemsarrayyes
items[].visit_idstring (uuid)yes
items[].shop_idstring (uuid)yes
items[].job_idstring (uuid)yes
items[].job_summary['string', 'null']yes
items[].starts_atstring (date-time)yes
items[].ends_atstring (date-time)yes
items[].title['string', 'null']yes
items[].notes['string', 'null']yes
items[].statusstringyes
items[].cancel_reason['string', 'null']yes
items[].series_id['string', 'null', ' ', '(', 'u', 'u', 'i', 'd', ')']yes
items[].started_at['string', 'null', ' ', '(', 'd', 'a', 't', 'e', '-', 't', 'i', 'm', 'e', ')']yes
items[].done_at['string', 'null', ' ', '(', 'd', 'a', 't', 'e', '-', 't', 'i', 'm', 'e', ')']yes
items[].done_note['string', 'null']yes
items[].arrival_window_minutes['integer', 'null']yes
items[].arrive_bystring (date-time)yes
items[].on_the_way_at['string', 'null', ' ', '(', 'd', 'a', 't', 'e', '-', 't', 'i', 'm', 'e', ')']yes
items[].eta_at['string', 'null', ' ', '(', 'd', 'a', 't', 'e', '-', 't', 'i', 'm', 'e', ')']yes
items[].arrived_at['string', 'null', ' ', '(', 'd', 'a', 't', 'e', '-', 't', 'i', 'm', 'e', ')']yes
items[].assignee_idsarrayyes
truncatedbooleanyes
{
  "items": [
    {
      "visit_id": "00000000-0000-4000-8000-000000000000",
      "shop_id": "00000000-0000-4000-8000-000000000000",
      "job_id": "00000000-0000-4000-8000-000000000000",
      "job_summary": "...",
      "starts_at": "...",
      "ends_at": "...",
      "title": "...",
      "notes": "...",
      "status": "...",
      "cancel_reason": "...",
      "series_id": "00000000-0000-4000-8000-000000000000",
      "started_at": "...",
      "done_at": "...",
      "done_note": "...",
      "arrival_window_minutes": "...",
      "arrive_by": "...",
      "on_the_way_at": "...",
      "eta_at": "...",
      "arrived_at": "...",
      "assignee_ids": [
        "00000000-0000-4000-8000-000000000000"
      ]
    }
  ],
  "truncated": true
}

Errors

CodeStatusWhat to do
invalid_input, invalid_token, rate_limitedCan happen on any call. See errors.