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

# Troubleshooting

> The things that actually go wrong on the calendar, and what to do about each

## Booking

<AccordionGroup>
  <Accordion title="A professional doesn't appear when booking" icon="user-slash">
    They're not a member of that service, or they don't serve that appointment type. **Assign to Staff** is *filtered by the selected service and appointment type*.

    **Fix:** service form → **Team Members**; then make sure at least one of their availability blocks carries that service and type.
  </Accordion>

  <Accordion title="No available times, on any day" icon="calendar-xmark">
    Almost always availability. Check, in order: the profile is in the service; the **Availability** tab has blocks for that service; the blocks aren't cancelled by a date override; the service's **Booking Window** and **Minimum Notice** aren't excluding everything.
  </Accordion>

  <Accordion title="The agent says there are no slots but the agenda has gaps" icon="robot">
    Gaps aren't slots. A slot needs a block for that service and type, room for the full duration plus **Buffer Between Events**, and no Google busy span. Also check the tool's **Days ahead** — the agent doesn't look past it.
  </Accordion>

  <Accordion title="This member already has an appointment in that time slot" icon="ban">
    Two bookings raced for the same time. Pick the next slot; the list refreshes.
  </Accordion>
</AccordionGroup>

## The agenda

<AccordionGroup>
  <Accordion title="I can't drag a card" icon="hand">
    You're not an Admin and it's not your appointment: *You can only manage your own appointments.* Or you're in Month view, which only moves the date.
  </Accordion>

  <Accordion title="A card snapped back after I moved it" icon="rotate-left">
    The backend refused the new time — taken, outside the professional's hours, or inside a Google busy span. The toast tells you which.
  </Accordion>

  <Accordion title="A cancellation was recorded as late" icon="clock">
    It was inside the service's **Late Cancellation Notice** (or the professional's override). Working as designed; it appears in the late-cancellation report.
  </Accordion>
</AccordionGroup>

## Reminders

<AccordionGroup>
  <Accordion title="No reminder went out" icon="bell-slash">
    Check, in order: the **Reminder** switch is on; at least one **Send before appointment** time is chosen; the template is **Approved**; the client has a WhatsApp-capable phone; the reminder time hadn't already passed when the appointment was booked (*skipped, not sent late*).
  </Accordion>

  <Accordion title="The template shows Pending Meta review" icon="hourglass">
    Meta hasn't approved it yet. Reminders using it are skipped until it reads **Approved**. Use the **Dialtu default** meanwhile.
  </Accordion>
</AccordionGroup>

## Google Calendar

<AccordionGroup>
  <Accordion title="Google Calendar sync stopped" icon="google">
    The token expired or was revoked. **Reconnect Google Calendar** on the profile's **Calendar Sync** tab, then **Sync now** to push anything booked meanwhile.
  </Accordion>

  <Accordion title="The Calendar Sync tab is disabled" icon="lock">
    The profile has no Dialtu user (*No user* badge) or hasn't been saved yet. Only a user can connect their own Google account.
  </Accordion>

  <Accordion title="A Google event shows as Busy but I want it as an appointment" icon="calendar">
    Not possible — the inbound direction is busy-time only. Book it in Dialtu; it will be mirrored to Google.
  </Accordion>
</AccordionGroup>

## Waiting lists

<AccordionGroup>
  <Accordion title="The list says Broken or Needs setup" icon="triangle-exclamation">
    Open **Configure** and read the **Readiness** findings — usually a missing **Destination** pipeline, no services, or an agent without a calendar tool.
  </Accordion>

  <Accordion title="Nobody is being contacted" icon="user-clock">
    Either there's no free capacity inside the **Horizon**, you're outside **Contact hours**, or every client is in **Contact cooldown**. **Push batch now** forces a sweep and reports why nothing moved.
  </Accordion>
</AccordionGroup>

## Still stuck

<Card title="Contact support" icon="life-ring" href="mailto:support@dialtu.com">
  Include the appointment ID (bottom-left of the detail window) and the professional's name.
</Card>
