schedule.kitList
The kit list for one worker and one day (tomorrow by default, shop time): each visit they are on with the address, map link, the work from the quote, materials on the job, open checklist items, pinned notes and the latest photos. Cancelled visits are left out. Quote prices show only to people who can see prices. A field worker gets only their own list.
| |
|---|
| Who | Agents can call this |
| REST | GET /v1/schedule/kit-list |
| MCP tool | schedule_kitList |
| Writes | no |
| Area | Scheduling and visits |
When to use it
Lead rules (requests.setLeadSettings, owner or office) decide what happens to a new request. With auto_reply on, Doing Work sends one first reply within a minute: a text only where the customer already agreed to texts or texted the shop, and the shop's own number is approved for business texting; otherwise an email; otherwise nothing.
What to tell the owner
Tell them what you found in plain words. Don't read back raw fields.
| Field | Type | Required |
|---|
shop_id | string (uuid) | yes |
date | string (date) | no |
person_id | string (uuid) | no |
Example
GET https://doingwork.work/v1/schedule/kit-list?shop_id=00000000-0000-4000-8000-000000000000
Output
| Field | Type | Always there |
|---|
date | string (date) | yes |
time_zone | string | yes |
person_id | string (uuid) | yes |
visits | array | yes |
visits[].visit_id | string (uuid) | yes |
visits[].job_id | string (uuid) | yes |
visits[].starts_at | string (date-time) | yes |
visits[].ends_at | string (date-time) | yes |
visits[].title | ['string', 'null'] | yes |
visits[].job_summary | ['string', 'null'] | yes |
visits[].customer_name | ['string', 'null'] | yes |
visits[].customer_phone | ['string', 'null'] | yes |
visits[].address | ['string', 'null'] | yes |
visits[].maps_url | ['string', 'null'] | yes |
visits[].crew_mates | array | yes |
visits[].scope | array | yes |
visits[].scope[].description | string | yes |
visits[].scope[].quantity | number | yes |
visits[].scope[].unit_price_minor | ['integer', 'null'] | yes |
visits[].materials | array | yes |
visits[].materials[].name | string | yes |
visits[].materials[].quantity | number | yes |
visits[].materials[].unit | ['string', 'null'] | yes |
visits[].checklist | array | yes |
visits[].checklist[].checklist | string | yes |
visits[].checklist[].label | string | yes |
visits[].checklist[].required | boolean | yes |
visits[].pinned_notes | array | yes |
visits[].pinned_notes[].note_id | string (uuid) | yes |
visits[].pinned_notes[].body | string | yes |
visits[].photos | array | yes |
visits[].photos[].media_id | string (uuid) | yes |
visits[].photos[].stage | string | yes |
visits[].photos[].uploaded_at | string (date-time) | yes |
email_hour | ['integer', 'null'] | yes |
{
"date": "...",
"time_zone": "...",
"person_id": "00000000-0000-4000-8000-000000000000",
"visits": [
{
"visit_id": "00000000-0000-4000-8000-000000000000",
"job_id": "00000000-0000-4000-8000-000000000000",
"starts_at": "...",
"ends_at": "...",
"title": "...",
"job_summary": "...",
"customer_name": "...",
"customer_phone": "...",
"address": "...",
"maps_url": "...",
"crew_mates": [
"..."
],
"scope": [
{
"description": "40 gallon gas heater, installed",
"quantity": "...",
"unit_price_minor": "..."
}
],
"materials": [
{
"name": "Ruiz Plumbing",
"quantity": "...",
"unit": "..."
}
],
"checklist": [
{
"checklist": "...",
"label": "...",
"required": true
}
],
"pinned_notes": [
{
"note_id": "00000000-0000-4000-8000-000000000000",
"body": "..."
}
],
"photos": [
{
"media_id": "00000000-0000-4000-8000-000000000000",
"stage": "...",
"uploaded_at": "..."
}
]
}
],
"email_hour": "..."
}
Errors
| Code | Status | What to do |
|---|
invalid_input, invalid_token, rate_limited | | Can happen on any call. See errors. |