[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)

# Release ServiceTrade appointments to technicians

> Check tomorrow's ServiceTrade appointments for a technician and a time window, then release them to the field in one pass.

Source: https://cotlet.dev/integrations/servicetrade-api-mcp-server/release-appointments-to-technicians

ServiceTrade schedulers hold a draft of the schedule until it is right, and someone has to check it and release it before the technicians start tomorrow.

Cotlet does it in your own ServiceTrade account with list\_appointments, get\_job and update\_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 releases appointments from its own scheduling screens (checked 23 Oct 2026). The REST API has a released field on appointments and Zapier has Update Appointment with a Released field, but ServiceTrade has no MCP server, and neither checks the day before releasing it.

## How you do it in ServiceTrade today

1. The scheduler builds the day on a draft of the schedule in Dispatching.
2. Before release the scheduler checks that every appointment has a technician and a window, and that the right services are on it.
3. The scheduler then releases the schedule to the field technicians.
4. Technicians see the updated schedule in the technician mobile app, so a release that is forgotten means a technician without a day.

## How to release ServiceTrade appointments to technicians

Prompt

```
List tomorrow's ServiceTrade appointments that are scheduled but not released, check each has a technician, and release the ones that do.
```

1. 01  
### Read the day  
list\_appointments runs with status scheduled, released set to false and the window of tomorrow, and follows next\_cursor.
2. 02  
### Check each appointment  
An appointment with no technician, or without a window, is not released and goes on your list. For the rest, get\_job reads the job so the agent can see its status first; a canceled job is skipped.
3. 03  
### Catch double bookings  
The agent compares the windows of each technician and holds back any pair that overlap, naming both appointments.
4. 04  
### Release  
update\_appointment sets released to true, one call per appointment. The technician list is not sent, because ServiceTrade replaces the whole list on an update. Each call waits for your OK by default.
5. 05  
### Report  
You get the appointments released and the ones held back with the reason.

### What you get back

Example data

```
Tomorrow's unreleased appointments: 14
Released 11
Held back 3:
- Fire pump test, Harbor Point Mall: no technician
- Sprinkler inspection, Delta Plaza: Dana Ruiz overlaps with another appointment
- Backflow test, Pier 9 Warehouse: job canceled
```

### Other ways to ask

- Release only the appointments of Marcus Hill for the whole week.
- Every afternoon at 4, release tomorrow's appointments that have a technician and tell me about the rest.
- List unreleased appointments for today and release nothing.

## What ServiceTrade allows, and what to know first

- A ServiceTrade appointment has a released flag, and an unreleased appointment is still a draft that field technicians have not been given.
- When you update the technicians or services of a ServiceTrade appointment, the list you send replaces the existing one, so release calls leave them out.
- An appointment moves through scheduled, completed, no\_show, canceled\_by\_vendor and canceled\_by\_customer, and an unscheduled appointment has no window.
- ServiceTrade shows technicians their schedule changes immediately in the technician mobile app once they are released.

update\_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: Service dispatch software](https://servicetrade.com/products/servicetrade-platform/features/dispatch/) · [ServiceTrade triggers and actions on Zapier](https://zapier.com/apps/servicetrade/integrations)

## Call update\_appointment from a script

curl

```
curl -X PATCH https://cotlet.dev/api/v1/servicetrade/appointments/90417 \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"released":true}'
```

Example response

```
{
"appointment_id": 90417,
"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": true
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is servicetrade\_write → update\_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 release ServiceTrade appointments to technicians__
| Tool | Parameters |
| ------------------- | ------------------------------------------------------------------------------ |
| list\_appointments | status, job\_id, technician\_id, window\_from, window\_to, released, cursor |
| get\_job | job\_id |
| update\_appointment | appointment\_id, status, window\_start, window\_end, technician\_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

- [Schedule unscheduled ServiceTrade jobs with AI](https://cotlet.dev/integrations/servicetrade-api-mcp-server/schedule-unscheduled-jobs.md)
- [Draft ServiceTrade repair quotes from deficiencies](https://cotlet.dev/integrations/servicetrade-api-mcp-server/draft-repair-quotes-from-deficiencies.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.
