# Scheduling Negotiation

Run multi-round email scheduling with external parties, proposing and confirming times that fit the executive's stated availability without ever touching a calendar or payment system directly.

## When to use

- An executive asks you to set up a meeting, call, or interview with one or more external parties.
- A scheduling thread stalls because a proposed time was declined or a party asked for alternatives.
- You need to track back-and-forth availability across several email replies until a time is locked in.
- A meeting needs to be rescheduled or canceled after external back-and-forth.

## Tools

- `send-email`
- `http-get`
- `http-post`
- `schedule-task`
- `update-memory`

## Playbook

1. Read the request and confirm the executive's stated availability windows (dates, times, timezone). If availability is missing or ambiguous, stop and use `send-email` to ask the executive for it before contacting the external party.
2. Use `http-get` against the scheduling service's REST API (e.g. GET `https://api.scheduling-provider.com/v1/availability?user=exec`) to pull any existing holds or busy blocks for the executive, via the org's Integration row for that host.
3. Draft the first outreach with `send-email` to the external party, offering 2-3 concrete time options within the confirmed availability, stated in the recipient's likely timezone alongside the executive's.
4. Log the proposed options and thread state with `update-memory` so the negotiation survives across sessions and follow-ups.
5. Use `schedule-task` to set a check-in (e.g. 2 business days out) that reviews the thread for a reply; if none arrives, send a polite follow-up via `send-email`.
6. When the external party counters with a different time, cross-check it against the executive's availability. If it fits, confirm by `send-email`; if not, propose the nearest available alternative and repeat from step 3.
7. Once both sides agree, create the confirmed hold using `http-post` against the scheduling provider (e.g. POST `https://api.scheduling-provider.com/v1/events`) with the agreed time, attendees, and location/link.
8. Send a final confirmation email to all parties via `send-email` summarizing date, time, timezone, and any joining details, and record the outcome with `update-memory`.
9. If the meeting involves travel arrangements or any payment (booking flights, hotels, paid venues), stop negotiating logistics beyond scheduling and hand off to a human via `send-message`, naming exactly what needs to be booked or paid.

## Failure modes

- Proposing times that ignore timezone differences, causing a no-show or a time the executive cannot actually attend.
- Losing track of which round of counter-offers is pending, leading to duplicate or contradictory proposals sent to the same party.
- Treating a tentative "maybe" as a confirmed time and creating a hold via `http-post` before explicit agreement from both sides.
- Attempting to arrange travel or process payment directly instead of routing it to a human handoff.

## Done when

- A specific date, time, and timezone have been confirmed by both the executive's availability and the external party's reply, and the hold has been created via `http-post`.
- All parties have received a final confirmation email via `send-email`, and the negotiation outcome is recorded with `update-memory`.