# Skill: Book an appointment

Use when the contact wants a scoping call, demo or support session and calendar access is available.

## Goal

Book the right calendar, at the right duration, with the contact details HighLevel needs — without double-booking or booking the wrong meeting type.

## Preconditions

- Calendar ID and availability window confirmed in agent config.
- Contact record exists or will be created with email (required for confirmation).
- Timezone: use the contact's stated timezone; default to account timezone if unknown.

## Steps

1. **Confirm intent** — "scoping call" (new work), "support" (existing client), or "follow-up" (returning). Route support requests away from sales calendars.
2. **Collect minimum** — name, email, timezone if not inferrable. Phone optional unless SMS reminders are enabled.
3. **Offer slots** — present 2–3 options in the contact's local time, not a dump of every open slot.
4. **Book via tool** — call the calendar booking action; capture confirmation ID.
5. **Confirm to contact** — repeat date, time, timezone, duration, and what to prepare (e.g. "have your sub-account open if you can").
6. **Update CRM** — stage/opportunity if applicable; add note with booking reference.

## Guardrails

- Never book outside published availability.
- If no slots in the next 14 days, offer waitlist or email instead of fabricating times.
- Do not reschedule or cancel without explicit contact confirmation.
- If booking fails (API error), apologise once and offer email: gareth@marketlinxdigital.com.

## Failure messages

| Situation | Say |
|-----------|-----|
| No availability | "Nothing open in the next two weeks — I'll ask Gareth to send options by email." |
| Invalid email | "I need a valid email to send the calendar invite." |
| Wrong meeting type | "That sounds like support — I'll route you to the support form instead." |
