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

# Scheduling Assistant

> Let your agent negotiate times, send invites, and keep your calendar tidy.

<div style={{ display: 'flex', justifyContent: 'center', margin: '2rem 0' }}>
  <div className="video-card">
    <video src="https://mintcdn.com/lindyai/QWdJNkViLsD1veyH/lindy-brand-assets/pw_scheduling_assistant.mp4?fit=max&auto=format&n=QWdJNkViLsD1veyH&q=85&s=7b48660a252b02cad71484893f8c1aae" width="600" autoPlay muted loop playsInline style={{ display: 'block', width: '100%', borderRadius: '16px' }} data-path="lindy-brand-assets/pw_scheduling_assistant.mp4" />
  </div>
</div>

## Quick Overview

Scheduling links can feel impersonal and coordinating meeting times manually is time-consuming. Let your agent handle the back-and-forth for you!

CC your agent on any thread and it will:

* **Detect** whether a specific time was suggested
* **Propose** three slots if none was given
* **Book** the meeting on your calendar with full context
* **Confirm** with all parties once the invite is sent
* **Reschedule** gracefully if plans change

You can use the [meeting scheduler template](https://chat.lindy.ai/home/?templateId=68755951168421e8baec59fd) to get started.

## Setting Up Your Meeting Scheduler

### Step 1: Configure Lindy Mail

<Frame>
  <img src="https://mintcdn.com/lindyai/L8EbTq29UAhLQUCl/lindy-brand-assets/meeting-scheduler-trigger.png?fit=max&auto=format&n=L8EbTq29UAhLQUCl&q=85&s=3ec092067a8ad7aee9a0dfc035b1af26" alt="Lindy Mail address" width="2012" height="998" data-path="lindy-brand-assets/meeting-scheduler-trigger.png" />
</Frame>

1. Open the `Email Received` trigger.
2. Copy your unique **Lindy Mail Address—this is the address you'll CC.**

### Step 2: Understand the Initial Condition

<Frame>
  <img src="https://mintcdn.com/lindyai/L8EbTq29UAhLQUCl/lindy-brand-assets/meeting-scheduler-condition.png?fit=max&auto=format&n=L8EbTq29UAhLQUCl&q=85&s=0e1c81744dcc6a82f7520333001a73f9" alt="Condition for time detection" width="2556" height="1774" data-path="lindy-brand-assets/meeting-scheduler-condition.png" />
</Frame>

The `Condition` step "Time given or requires a search?" determines what type of scheduling request this is:

**Two paths:**

1. **"CC'ing my agent to find time:"** When the sender asks the agent to find available times
   * Example: "CC'ing my agent to find time for us to meet on Tuesday"

2. **"User request to book directly":** When a specific date/time is already agreed upon
   * Example: "Agent, please book time for us at Thursday the 10th, at 4:00pm PST"

This smart branching ensures your agent either proposes available times (if none given) OR books the meeting immediately (if time already agreed). The condition prevents the agent from suggesting times when people have already decided when to meet, making the flow more natural.

### Step 3: List Best Times

<Frame>
  <img src="https://mintcdn.com/lindyai/L8EbTq29UAhLQUCl/lindy-brand-assets/meeting-scheduler-user-preferences.png?fit=max&auto=format&n=L8EbTq29UAhLQUCl&q=85&s=46aeea9f37d209edeea9d76b84b7d701" alt="List best times" width="2302" height="1548" data-path="lindy-brand-assets/meeting-scheduler-user-preferences.png" />
</Frame>

* Action: `Google Calendar – Find available time`
* In the `Find available time` step, configure your scheduling preferences such as time of day, days of week, working hours, earliest/latest start times, max meetings per day, and which calendars to check for conflicts.

### Step 4: Respond With Times

<Frame>
  <img src="https://mintcdn.com/lindyai/L8EbTq29UAhLQUCl/lindy-brand-assets/meeting-scheduler-reply.png?fit=max&auto=format&n=L8EbTq29UAhLQUCl&q=85&s=8e612527de8f55d8324651901f4ef9b0" alt="Send times email" width="2064" height="1304" data-path="lindy-brand-assets/meeting-scheduler-reply.png" />
</Frame>

`Lindy Mail – Send Reply` with body:

```
Hi {{FIRSTNAME}},

Happy to help schedule! Do any of these work for you? (all times in {{TIMEZONE}})

* Monday, June 21 at 3 PM
* Tuesday, June 22 at 11 AM
* Wednesday, June 23 at 1 PM

Best,
Lindy
```

### Step 5: Create the Event

<Frame>
  <img src="https://mintcdn.com/lindyai/L8EbTq29UAhLQUCl/lindy-brand-assets/meeting-scheduler-create-event.png?fit=max&auto=format&n=L8EbTq29UAhLQUCl&q=85&s=55c1f3bfb473738a16935de53cfdfdb5" alt="Create calendar event" width="2304" height="1514" data-path="lindy-brand-assets/meeting-scheduler-create-event.png" />
</Frame>

* Action: `Google Calendar – Create Event`
* Leave most fields on *Auto*; prompt the name/description using email context.
* Add a meeting link only if the thread agreed to virtual.

### Step 6: Confirm or Reschedule

<Frame>
  <img src="https://mintcdn.com/lindyai/L8EbTq29UAhLQUCl/lindy-brand-assets/meeting-scheduler-confirm-event.png?fit=max&auto=format&n=L8EbTq29UAhLQUCl&q=85&s=9d47359934f2f6ec15bb6ebf4c7a97fc" alt="Confirmation email" width="1850" height="1104" data-path="lindy-brand-assets/meeting-scheduler-confirm-event.png" />
</Frame>

1. `Lindy Mail – Send Reply` to confirm booking:

```
Reply with a confirmation that the invite has been sent, the reply should look like this:

“Sounds great, I just sent the invite! Let me know if there is any other way I can be helpful.

--Lindy”

Personalize the email where you see fit based on the general context, but do not vary the response far from the suggested response.
```

2. Final `Condition` watches for reschedule requests; if true, delete the old event and loop back to Step 3.

## Advanced Customizations

| Trick                 | What it does                                                               |
| --------------------- | -------------------------------------------------------------------------- |
| Multi-time-zone Logic | Detect the recipient's locale and convert proposed times automatically.    |
| Round-Robin Calendars | Cycle availability across a team for shared demo inboxes.                  |
| Buffer Windows        | Add min/max gaps between meetings to avoid calendar pile-ups.              |
| Meeting Type Routing  | Use subject keywords (Demo, Interview, Support) → route to right calendar. |

## Best Practices

<AccordionGroup>
  <Accordion title="Keep Replies Human">
    Tailor your agent's email prompts so they match your personal style and brand.
  </Accordion>

  <Accordion title="Limit Calendar Scope">
    Check only relevant calendars to avoid false conflicts or double-booking.
  </Accordion>

  <Accordion title="Test First Week">
    Run in confirmation-only mode until you trust the flow end-to-end.
  </Accordion>

  <Accordion title="Respect Time Zones">
    Always include a clear time-zone label in proposed times and confirmations.
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Calendar Prep" href="/use-cases/popular-workflows/calendar-prep" icon="calendar-plus">
    Research attendees before meetings
  </Card>

  <Card title="Meeting Assistant" href="/use-cases/popular-workflows/meeting-assistant" icon="video">
    Record and summarize every call
  </Card>

  <Card title="Google Calendar" href="/skills/popular-integrations/google-calendar" icon="calendar-range">
    Advanced calendar management features
  </Card>

  <Card title="Triggers" href="/fundamentals/lindy-101/triggers" icon="bolt">
    Set up calendar-based automation triggers
  </Card>
</CardGroup>
