[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Schedule unscheduled ServiceTrade jobs with AI

> Turn ServiceTrade jobs with status Unscheduled into draft appointments with a free technician, then release them when you are ready.

Source: https://cotlet.dev/integrations/servicetrade-api-mcp-server/schedule-unscheduled-jobs

Every morning a ServiceTrade dispatcher has a queue of jobs with no appointment, and each one needs a technician, a time window and a check that nobody is double-booked.

Cotlet does it in your own ServiceTrade account with list\_jobs, list\_technicians, list\_appointments, get\_job and create\_appointment, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=servicetrade) [All ServiceTrade tools](https://cotlet.dev/integrations/servicetrade-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can ServiceTrade do this on its own?

ServiceTrade schedules in its own dispatch and schedule screens, and its Smart Assistants can recommend technicians and times for a scheduler to consider (checked 23 Oct 2026). Its REST API has an appointment endpoint and Zapier has Create Appointment, but ServiceTrade has no MCP server, so an agent cannot read the queue and book the appointments without code you write.

## How you do it in ServiceTrade today

1. Customer requests, from the service portal or by phone, land in the ServiceTrade account as work that still needs an appointment.
2. The dispatcher opens Dispatching, where the map-based scheduler shows technician schedules and the unscheduled work.
3. For each job the dispatcher picks a technician and a time window, working on a draft of the schedule.
4. When the draft looks right, the dispatcher releases it to field technicians, who see it in the technician mobile app.

## How to schedule unscheduled ServiceTrade jobs with AI

Prompt

```
List ServiceTrade jobs with status Unscheduled, find a free technician for each on Monday morning, and create an appointment for them as a draft I can release later.
```

1. 01  
### Read the queue  
The agent calls list\_jobs with status new, which ServiceTrade shows as Unscheduled, and follows next\_cursor to the end. It keeps jobs due soonest first, using the due date the tool returns.
2. 02  
### See who is free  
list\_technicians gives names and ids, and list\_appointments for the target window shows who already has an appointment then. Technicians with an overlapping appointment are skipped. The tools return no skills or certifications, so your prompt says who may take which job type.
3. 03  
### Check the job again  
Right before booking, get\_job reads the job again. If another dispatcher has added an appointment in the meantime, the agent logs the job as already handled and leaves it alone.
4. 04  
### Create a draft appointment  
create\_appointment sets the technician and the window with released set to false, so no technician is notified yet. Each call waits for your OK by default.
5. 05  
### Report what is left  
Jobs that no technician can take in the window stay unscheduled, each with the reason, so you can decide by hand.

### What you get back

Example data

```
Unscheduled jobs: 9
Booked 6 as drafts for Monday (not released):
- Fire pump test, Harbor Point Mall: Marcus Hill 8:00-10:00
- Sprinkler inspection, Delta Plaza: Dana Ruiz 8:00-11:00
Left for you 3:
- No technician free before Wednesday: 2
- Another dispatcher booked it: 1
```

### Other ways to ask

- Book every unscheduled emergency\_service\_call for today with the nearest free technician and tell me which ones had nobody.
- Spread this week's planned\_maintenance jobs across Marcus and Dana, no more than 3 appointments a day each.
- Show me which technician has no appointment on Thursday, and book nothing.
- Every evening, list jobs due within 3 days that still have no appointment.

## What ServiceTrade allows, and what to know first

- ServiceTrade jobs have the statuses new, scheduled, canceled, bidding, completed, pending\_invoice, sending\_invoice, invoiced and closed, and a job with status new is shown as Unscheduled.
- A ServiceTrade appointment has the statuses scheduled, unscheduled, canceled\_by\_vendor, canceled\_by\_customer, completed and no\_show.
- An appointment carries the services of its job that you choose; with none chosen it is created without services.
- ServiceTrade lets a scheduler work on a draft of the schedule and release it to field technicians when it is final.

create\_appointment asks for your OK by default. To run it daily without you, switch confirmation off for that tool in your dashboard.

Sources: [ServiceTrade API documentation](https://api.servicetrade.com/api/docs) · [ServiceTrade: Field service scheduling software](https://servicetrade.com/products/servicetrade-platform/features/scheduling/) · [ServiceTrade: Client portal software](https://servicetrade.com/products/servicetrade-platform/features/service-portal/)

## Call create\_appointment from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/servicetrade/jobs/48213/appointments \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"technician_ids":[3301],"window_start":"2026-10-26T08:00:00-04:00","window_end":"2026-10-26T10:00:00-04:00","released":false}'
```

Example response

```
{
"appointment_id": 90417,
"job_id": 48213,
"status": "scheduled",
"window_start": "2026-10-26T08:00:00-04:00",
"window_end": "2026-10-26T10:00:00-04:00",
"technicians": [
{
"id": 3301,
"name": "Marcus Hill"
}
],
"released": false
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is servicetrade\_write → create\_appointment. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/servicetrade-api-mcp-server.md#automations)

## ServiceTrade tools this automation uses

__Cotlet ServiceTrade tools used to schedule unscheduled ServiceTrade jobs with AI__
| Tool | Parameters |
| ------------------- | ------------------------------------------------------------------------------------- |
| list\_jobs | status, location\_id, customer\_id, technician\_id, due\_by\_before, cursor |
| list\_technicians | search |
| list\_appointments | status, job\_id, technician\_id, window\_from, window\_to, released, cursor |
| get\_job | job\_id |
| create\_appointment | job\_id, technician\_ids, window\_start, window\_end, service\_request\_ids, released |

[All 14 ServiceTrade tools with descriptions](https://cotlet.dev/integrations/servicetrade-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect ServiceTrade to Cotlet?

Yes. You sign in to ServiceTrade yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get ServiceTrade once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More ServiceTrade automations

- [Draft ServiceTrade repair quotes from deficiencies](https://cotlet.dev/integrations/servicetrade-api-mcp-server/draft-repair-quotes-from-deficiencies.md)
- [Release ServiceTrade appointments to technicians](https://cotlet.dev/integrations/servicetrade-api-mcp-server/release-appointments-to-technicians.md)
- [ServiceTrade API and MCP server: every tool](https://cotlet.dev/integrations/servicetrade-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to ServiceTrade.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with ServiceTrade.

[Sign up free](https://cotlet.dev/app/signup?app=servicetrade)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. [About us](https://cotlet.dev/about.md)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.
