# Calendar

> Let your agents book appointments on any channel, with team availability and external calendar sync.

Source: https://docs.getlinkai.com/products/calendar

Calendar is where you schedule appointments, manage team availability, and sync external calendars, while your agents handle the booking end to end. Use it when customers book time with you on Instagram, Facebook, WhatsApp, phone, or your website, without visiting a separate page.

## Features

Version 1.5 added services and resources, Google Calendar integration, iCal sync, a rebuilt availability engine, and a redesigned booking experience for customers and agents.

### Services

Define multiple services per calendar. Instead of one generic appointment, offer Consultations, Follow-ups, Strategy Sessions, or Demos, each with its own rules.

| Setting | What it does |
|---|---|
| **Duration** | 15 minutes, 30 minutes, 2 hours, whatever fits |
| **Price** | Display pricing for paid services |
| **Buffer time** | Time between back-to-back bookings |
| **Minimum advance notice** | Prevent last-minute bookings |
| **Max bookings per slot** | Allow group sessions or limit to 1:1 |
| **Booking prompt** | Tailor how your agent handles bookings for this service |
| **Confirmation message** | A confirmation per service type |
| **Google Meet** | Generate a Meet link when this service is booked |
| **Location** | A default location per service |
| **Notes and duration questions** | Optionally ask attendees for notes or preferred duration |

### Resources

Resources represent who or what is being booked: people, rooms, equipment, or vehicles. This enables team scheduling and asset management.

| Type | Use case |
|------|----------|
| **Person** | Team members, consultants, therapists |
| **Room** | Meeting rooms, studios, offices |
| **Equipment** | Cameras, projectors, tools |
| **Vehicle** | Cars, vans, delivery vehicles |

Each resource can have its own weekly schedule, break times, an avatar, service associations, and individual time blocks for vacations or maintenance windows.

### Resource modes

| Mode | How it works |
|------|-------------|
| **Single** | One calendar, one schedule. Classic setup, with no resources needed. |
| **Pool** | Multiple resources share availability. The system picks whoever is free. Use it for "next available" scheduling. |
| **Team** | Each resource has their own schedule. Customers choose who they want. Use it when customers pick a specific team member. |

### Google Calendar

Connect Google Calendar from **Integrations**. See [Google Calendar](https://docs.getlinkai.com/integrations/google-calendar) for setup.

- **Export to Google Calendar**: New bookings appear in your Google Calendar automatically
- **Google Meet links**: Enable per-service to auto-generate video call links
- **Conflict detection**: Your Google Calendar events are respected when calculating availability
- **Calendar selection**: Choose which Google Calendar to sync with

### Outlook Calendar

Connect Outlook Calendar from **Integrations** when your team lives in Microsoft 365. See [Outlook Calendar](https://docs.getlinkai.com/integrations/outlook-calendar) for setup.

- **Export to Outlook**: Bookings and Ally-scheduled events land on the connected calendar
- **Teams links**: Add a Microsoft Teams join URL when you create the event
- **Workflows**: Create, update, or cancel Outlook events, or trigger when an event changes

Google Calendar and Outlook Calendar are separate connections. You can use one or both.

### iCal Sync

Import external calendars from any platform that supports iCal: Apple Calendar, Calendly, and more.

- Add iCal URLs at the calendar level or per resource
- Configurable sync intervals (default: every 30 minutes)
- Imported events block availability automatically
- Supports multiple iCal feeds per calendar

### Availability engine

The availability engine works like this:

- **Timezone-aware**: All availability is computed in your calendar's timezone
- **Unified computation**: One engine handles Single, Pool, and Team modes consistently
- **Upcoming days**: Returns upcoming days with slot counts so your agent can suggest alternatives
- **Conflict layering**: Checks appointments, time blocks, buffer times, iCal events, and advance notice all at once
- **Stay support**: Date-range availability for stay-type bookings (hotels, rentals) with check-in/check-out handling
- **AM/PM preference**: Filter slots by morning or afternoon preference

### Booking types

- **Appointment bookings**: Time-based slots (consultations, meetings)
- **Stay bookings**: Date-range bookings with check-in and check-out (rentals, hotels)
- **Source tracking**: Every booking records how it was created: manually, by an AI agent, via a public booking page, or imported from iCal

### Calendar views

- **Day, Week, and Month views** for appointment calendars
- **Stay calendar view** for date-range bookings with resource visualization
- **Appointment list sidebar** with status filters and quick actions
- **Drag-and-drop** event management
- **Time block management** directly from the calendar view

## How agents use the calendar

Your agents follow a step-by-step booking flow:

| Step | What the agent does |
|---|---|
| **1. List services** | If your calendar has multiple services, the agent presents them and waits for the customer to choose. |
| **2. Select resource** | In Team mode, the agent shows available team members. In Pool mode, it picks automatically. |
| **3. Check availability** | The agent finds open slots based on the customer's preferences (date, time of day, specific day). |
| **4. Present options** | Available slots are shown with formatted times in your business timezone. |
| **5. Collect info** | The agent gathers the attendee's name, email, phone number, and any custom fields, one at a time. |
| **6. Book it** | The appointment is created and confirmation is sent immediately. |

The agent understands phrases like "next available," "tomorrow afternoon," "next Monday," or specific dates and times.

## Notifications and reminders

### Confirmation notifications

When an appointment is booked, a confirmation is sent via your chosen channel:

- **SMS**: text message with appointment details
- **Email**: formatted email with an **Add to Calendar** button (Google Calendar, Outlook, Apple Calendar)

### Automated reminders

- Sent automatically before the appointment (default: 30 minutes before)
- Same channel as confirmations (SMS or email)
- Duplicate reminders are prevented automatically

### Confirmation workflow

If confirmation is required:

1. The appointment is created with **Pending** status.
2. A confirmation notification is sent to the attendee.
3. The attendee confirms via the link in the notification.
4. The status changes to **Confirmed**.
5. If not confirmed within the timeout (default: 24 hours), the appointment is auto-cancelled.

You can turn off the confirmation requirement to auto-confirm all bookings.

## Calendar settings

### Schedule

Set your availability per day of the week:

- Enable or disable specific days
- Custom start and end times per day
- Break times (lunch, etc.) per day

### Booking rules

| Setting | Default | Description |
|---------|---------|-------------|
| Default duration | 30 min | Default appointment length |
| Buffer between appointments | 15 min | Time between bookings |
| Minimum advance notice | 60 min | How far in advance bookings must be made |
| Max bookings per slot | 1 | Allow overlapping bookings for group sessions |
| Require phone number | Yes | Whether phone is required during booking |

### Stay settings

| Setting | Default |
|---|---|
| **Check-in time** | 3:00 PM |
| **Check-out time** | 11:00 AM |

### Notification settings

- Choose SMS or email as your notification channel
- Enable or disable confirmations and reminders
- Set reminder time (minutes before appointment)
- Custom confirmation messages per service

### Timezone

Your calendar's timezone determines how all times are displayed and computed. Set it once and availability, booking times, and notifications all use it.

## Set up services

### Open Services
Open your calendar, go to **Settings**, and open the **Services** section.

### Add a service
Click **Add Service**.

### Configure it
Set the service name, duration, price, and booking rules. Optionally enable Google Meet for video call links.

## Set up resources

### Add a resource
In calendar **Settings**, go to the **Resources** section and click **Add Resource**.

### Choose a type
Pick **Person**, **Room**, **Equipment**, or **Vehicle**.

### Set the schedule
Set the resource's schedule and associate it with services.

### Pick a mode
Set your calendar's resource mode (**Pool** or **Team**).

## Connect Google Calendar

### Start the connection
In calendar **Settings**, find the **Google Calendar** section and click **Connect Google Account**.

### Authorize
Authorize Link AI to access your Google Calendar.

### Choose the calendar
Select which calendar to sync with.

### Turn on export
Toggle export on.

You should see new bookings appear in Google Calendar.

## Add iCal feeds

### Paste the URL
In calendar **Settings**, find the **iCal Sync** section and paste an iCal URL from your external calendar.

### Assign it (optional)
Assign the feed to a specific resource.

### Set the interval
Set the sync interval.

Events from the feed block availability automatically.

## FAQ

**Can I have multiple services with different durations?**
Yes. Each service has its own duration, buffer time, and booking rules. A 15-minute check-in and a 2-hour strategy session can coexist on the same calendar.

**What happens if all resources are busy?**
In Pool mode, if no resources are available for a time slot, that slot won't appear as available. In Team mode, only the selected resource's availability matters.

**Does Google Calendar sync work both ways?**
Exported appointments appear in Google Calendar. Google Calendar events are considered when computing availability to prevent conflicts.

**Can my agent handle the entire booking process?**
Yes. The agent can list services, show resources, check availability, collect attendee information, and complete the booking in the conversation, without the customer visiting a separate page.

**What calendars can I import via iCal?**
Any platform that provides an iCal URL: Outlook, Apple Calendar, Calendly, Google Calendar (external accounts), and most scheduling tools.

**Can I set different schedules for different resources?**
Yes. In Team mode, each resource has its own weekly schedule with custom hours and break times. In Pool mode, the system takes the union of all resource schedules.

**Can I move an appointment to a different calendar?**
Not currently. Appointments are tied to the calendar they were created in.

**Do calendar configurations carry over across workspaces?**
No. Calendar configurations are workspace-scoped. Each workspace has its own calendars, services, resources, and integrations. See [Workspaces](https://docs.getlinkai.com/account/workspaces).

## Next steps

**[Google Calendar](https://docs.getlinkai.com/integrations/google-calendar)**:
Export bookings and add Google Meet links.

**[Outlook Calendar](https://docs.getlinkai.com/integrations/outlook-calendar)**:
Sync bookings with Microsoft 365 and Teams.

**[Actions](https://docs.getlinkai.com/agents/actions)**:
Give your agent the booking action.

**[Contacts](https://docs.getlinkai.com/products/contacts)**:
See every attendee's booking history.
