# Show calendar

> Shows the visitor a calendar of free times for a meeting type.

Exits: Booked, Not booked (closed it or walked away), Cancelled (booked, then cancelled later). A rep must be assigned before it, unless it shows every free rep in the queue.

| | |
|---|---|
| Type | `calendar` |
| Group | Lead sees |
| The visitor sees it | Yes |
| Waits | Yes. The flow stops here until something happens |

## Exits

| Exit | Name |
|---|---|
| `booked` | Booked |
| `notBooked` | Not booked |
| `cancelled` | Cancelled |

## Settings

| Key | Label | Takes | Default | Notes |
|---|---|---|---|---|
| `meetingTypeId` | Meeting type | A string: a meeting type's id, from list_meeting_types. |  |  |
| `slots` | Slots shown | `(blank)` The workspace's default, `rep` The assigned rep only, `repThenQueue` The assigned rep, then the whole queue, `pool` Every free rep in the queue |  | With the whole queue the rep is not known until a time is picked. |
| `tieBreak` | When several reps are free | `share` The rep furthest behind their share, `order` The first in queue order | `share` |  |
| `display` | Shown | `overlay` Over the page, `inline` In place of the form's thank-you | `overlay` |  |
| `timeoutMinutes` | Take "Not booked" after (minutes) | A number. | `30` | A visitor who closes the calendar takes it at once. One who walks away takes it after this long. |

## In a flow document

```json
{
  "id": "calendar1",
  "type": "calendar",
  "settings": {
    "tieBreak": "share",
    "display": "overlay",
    "timeoutMinutes": 30
  }
}
```
