Use this skill to pick the correct TimeZest appointment type for a scheduling request — listing the appointment types configured for the tenant, reading each type's duration, and matching the type to the work described on a ConnectWise / Autotask / Halo ticket.
Scanned 5/27/2026
Install via CLI
openskills install wyre-technology/msp-claude-plugins---
name: "TimeZest Appointment Types"
when_to_use: "When choosing which TimeZest appointment type to use for a booking — listing the configured types, reading their durations, and matching the type to the kind of work on a PSA ticket"
description: >
Use this skill to pick the correct TimeZest appointment type for a
scheduling request — listing the appointment types configured for
the tenant, reading each type's duration, and matching the type to
the work described on a ConnectWise / Autotask / Halo ticket.
triggers:
- timezest appointment type
- which appointment type
- timezest onsite vs remote
- appointment duration
- list appointment types
- timezest service type
---
# TimeZest Appointment Types
An appointment type defines what kind of meeting a TimeZest booking is
— its name, its duration, and the availability rules behind it.
Picking the wrong type produces a customer-facing mistake: a 15-minute
"Quick Call" type used for a half-day onsite books a slot that is far
too short.
## Domain & Tools
Enter the domain with `timezest_navigate` to `appointment_types`.
| Tool | Purpose |
|------|---------|
| `timezest_appointment_types_list` | List all appointment types available for scheduling |
| `timezest_appointment_types_get` | Get full detail for one type by `appointmentTypeId` |
`timezest_appointment_types_list` accepts `pageSize` (1–100, default
50) and a `filter` TQL string (e.g. `active:true`).
Each appointment type carries at least:
- `id` — the `appointmentTypeId` used in a scheduling request
- `name` — e.g. "Onsite Visit", "Remote Session", "Discovery Call"
- `duration` — slot length in minutes
- `description` — optional free-text detail
## Matching a Type to the Work
| Ticket / intent | Typical appointment type |
|-----------------|--------------------------|
| Remote support session | "Remote Session" |
| Field dispatch to the customer site | "Onsite Visit" |
| Scoping or pre-sales conversation | "Discovery Call" |
| Short follow-up | "Quick Call" |
These names are tenant-configured — always read the actual list
rather than assuming a naming convention.
## Common Workflows
### Pick the type for a booking
1. `timezest_navigate` to `appointment_types`.
2. Call `timezest_appointment_types_list` with `active:true`.
3. Match the type whose `name` and `duration` fit the ticket's work.
4. If the customer-facing description matters, call
`timezest_appointment_types_get` to read the full `description`.
5. Carry the resolved `appointmentTypeId` into
`timezest_scheduling_create_request`.
### Audit available types
1. List all types with `pageSize: 100`.
2. Report each type's name, duration, and active status so a
dispatcher knows the menu before booking.
## Edge Cases
- **No clear match** — If no configured type fits the work, surface
the full list to the dispatcher rather than booking a mismatched
type. A wrong duration is visible to the customer.
- **Duration mismatch** — Always confirm `duration` matches the
expected work length; type names can be misleading.
- **Inactive types** — Filter `active:true`; deactivated types still
appear in an unfiltered list but cannot be booked.
## Best Practices
- Resolve the appointment type by name and duration through a `list`
call every session — do not cache the ID.
- When `timezest_scheduling_create_request` is called without an
appointment type, the MCP server elicits a choice; pre-resolving it
here avoids that round-trip and keeps the booking deterministic.
- Never substitute a similarly named type — confirm name and
duration both fit.
## Related Skills
- [scheduling](../scheduling/SKILL.md) — Booking technicians against PSA tickets
- [agents-and-teams](../agents-and-teams/SKILL.md) — Resolving the technician or team
No comments yet. Be the first to comment!