> ## Documentation Index
> Fetch the complete documentation index at: https://docs.3i.life/llms.txt
> Use this file to discover all available pages before exploring further.

# Scheduled Appointments

> Comprehensive guide for delivering booked appointments with or without Calendly.

The 3i CRM natively supports booked appointment delivery from **any scheduling channel**: human phone setter teams, dialer call centers (Five9, Convox, Vicidial, Ringba), CRM calendars (GoHighLevel, Acuity), custom web booking forms, or Calendly.

When an appointment is delivered, the lead automatically enters the CRM with `status = 'Scheduled'` and is placed on the receiving agent's calendar agenda.

***

## Scheduling Fields Reference

<ParamField body="status" type="string">
  Set to `"Scheduled"` to route the lead directly to the agent's active Appointments queue deck.
</ParamField>

<ParamField body="scheduled_at" type="string">
  **The Canonical Timestamp.** UTC ISO-8601 string (e.g. `"2026-09-28T18:00:00.000Z"`). This timestamp powers calendar agenda views, appointment countdowns, and automated reminders.
</ParamField>

<ParamField body="appointment_date + appointment_time" type="string">
  **Alternative Split Format.** If your system outputs date and time separately (e.g. `"2026-09-28"` and `"02:00 PM"`), 3i automatically combines them into UTC.
</ParamField>

<ParamField body="appointment_timezone" type="string">
  **(Optional)** IANA timezone name (e.g. `"America/New_York"`, `"America/Chicago"`).

  <Tip>
    **Zero Timezone Friction:** You do **not** need to calculate timezone offsets. If `appointment_timezone` is omitted, 3i CRM automatically infers and assigns the correct timezone based on the contact's state or telephone area code.
  </Tip>
</ParamField>

<ParamField body="schedule_type" type="string" default="appointment">
  Set to `"appointment"` for formal consultations, or `"follow_up"` for casual callbacks.
</ParamField>

<ParamField body="setter_dialer_name" type="string">
  Name or badge ID of the human setter, dialer agent, or booking widget that scheduled the consultation (e.g. `"Alexander Hayes (Setter Team Alpha)"`).
</ParamField>

<ParamField body="scheduled_call" type="string">
  (Optional) Pre-formatted human-readable display string for quick reading in queue tables (e.g. `"09/28/2026 02:00 PM EDT"`).
</ParamField>

<ParamField body="tags" type="array">
  Array of strings attached to the lead (e.g. `["Scheduled", "Setter Appointment", "Mortgage Protection"]`). 3i's tag engine preserves vendor tags during status updates.
</ParamField>

<ParamField body="notes" type="string">
  Comprehensive briefing covering prospect goals, qualification details, decision-maker verification, and health notes.
</ParamField>

***

## Supported Delivery Channels

<Tabs>
  <Tab title="Call Center Phone Setters">
    ### Delivering Setter-Booked Appointments

    When a human phone setter or live transfer desk books a consultation, format your payload with the confirmed UTC timestamp (or split date/time) and include setter attribution:

    ```json theme={null}
    {
      "first_name": "Patricia",
      "last_name": "Gomez",
      "phone": "3055550143",
      "email": "patricia.g@example.com",
      "address": "844 Ocean View Dr",
      "city": "Miami",
      "state": "FL",
      "zipcode": "33139",
      "age": 58,
      "coverage_type": "Mortgage Protection",
      "coverage_amount": "150000",
      "status": "Scheduled",
      "schedule_type": "appointment",
      "scheduled_at": "2026-09-28T18:00:00.000Z",
      "setter_dialer_name": "Alexander Hayes (Setter Team Alpha)",
      "notes": "APPOINTMENT CONFIRMED: 09/28/2026 at 2:00 PM EDT\nSetter: Alexander Hayes\nMeeting Type: Phone Consultation\n------------------------------\nRequested Coverage: $150,000 Mortgage Protection\nSpouse Present: Yes (Spouse Carlos will be on call)\nHealth: Clean, non-smoker\nNotes: Homeowner since 2020. Looking to ensure home is paid off if anything happens to her.",
      "tags": ["Scheduled", "Setter Appointment", "Mortgage Protection"],
      "custom_fields": {
        "setter_id": "SETTER-442",
        "call_recording_url": "https://recordings.partner.com/rec_99214.mp3",
        "call_duration_seconds": 384
      }
    }
    ```
  </Tab>

  <Tab title="Web Form Calendar Pickers">
    ### Delivering from Online Date/Time Pickers

    If your landing page has an embedded calendar picker that returns separate date and time values, send them as `appointment_date` and `appointment_time`. 3i will calculate the timezone offset automatically:

    ```json theme={null}
    {
      "name": "Raymond Chen",
      "phone": "4155550182",
      "email": "raymond.chen@example.com",
      "city": "San Francisco",
      "state": "CA",
      "zipcode": "94107",
      "coverage_type": "Term Life",
      "coverage_amount": "250000",
      "status": "Scheduled",
      "schedule_type": "appointment",
      "appointment_date": "2026-09-29",
      "appointment_time": "10:30 AM",
      "setter_dialer_name": "Web Form Self-Scheduler",
      "tags": ["Scheduled", "Web Scheduled"],
      "notes": "Appointment selected on website form: 09/29/2026 at 10:30 AM PDT. Selected coverage: $250k 20-year term."
    }
    ```
  </Tab>

  <Tab title="Video / Calendly Consultations">
    ### Delivering with Meeting Join Links

    If the appointment includes a video consultation link (Zoom, Google Meet, Teams) or Calendly management links, pass them inside `custom_fields`. The CRM provides one-click meeting launch buttons directly on the agent's lead card:

    ```json theme={null}
    {
      "name": "Gerald Guilbeau",
      "phone": "3375550199",
      "email": "gguilbeau@example.com",
      "address": "412 Bayou Rd",
      "city": "Lafayette",
      "state": "LA",
      "zipcode": "70501",
      "status": "Scheduled",
      "schedule_type": "appointment",
      "scheduled_at": "2026-09-29T19:30:00.000Z",
      "setter_dialer_name": "Online Video Scheduler",
      "tags": ["Scheduled", "Video Consultation", "Final Expense"],
      "coverage_type": "Final Expense",
      "coverage_amount": "30000",
      "notes": "Appointment: 09/29/2026 02:30 PM (CDT)\nMeeting Room: https://zoom.us/j/91827364510\n------------------------------\nExisting Coverage: No\nCoverage Goal: $25,000 to $35,000\nBeneficiary: Spouse (Marie)",
      "custom_fields": {
        "join_url": "https://zoom.us/j/91827364510",
        "event_duration_minutes": 15,
        "reschedule_url": "https://schedule.partner.com/reschedule/ABC123",
        "cancel_url": "https://schedule.partner.com/cancel/ABC123"
      }
    }
    ```
  </Tab>
</Tabs>

***

## Structuring Appointment Briefings in Notes

Agents review the `notes` field prior to dialing. To ensure high-quality conversations, structure your briefing text using clear headers:

```
APPOINTMENT CONFIRMED: 09/28/2026 at 2:00 PM EDT
Setter: Sarah Jenkins (Team Alpha)
Meeting Type: Phone Consultation
------------------------------
Requested Coverage: $35,000 Final Expense
Spouse Present: Yes (Husband Harold will be on call)
Current Health: High Blood Pressure (takes Lisinopril)
Existing Coverage: None
Notes from Setter: Very polite. Eager to lock down rate before 65th birthday next month.
```
