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

> Create scheduling templates so candidates can book interview times with you directly in HeyMilo after they finish asynchronous screening flows.

# Candidate Self-Scheduling

<video src="https://storage.googleapis.com/heymilo-pub-docs/videos/Scheduling.mp4" controls />

## Before you start

**Sidebar → Scheduling**

Setup order:

1. Sidebar → Scheduling → **Your Calendar**
2. Sidebar → Scheduling → **Availability**
3. Sidebar → Scheduling → **Templates**
4. Assign a template when creating an interview agent

Scheduling runs at the end of the agent workflow. The candidate finishes their interview and is taken to a scheduling page with available times (in their timezone).

## Your Calendar

<Frame>
  <img src="https://mintcdn.com/heymilo/SpZVzfGR2kKN3NPe/images/scheduling-your-calendar.png?fit=max&auto=format&n=SpZVzfGR2kKN3NPe&q=85&s=190cb8a8305036160fc041c314ae38ae" alt="Scheduling Calendar page showing connection status and a connected Google Calendar" width="1024" height="493" data-path="images/scheduling-your-calendar.png" />
</Frame>

**Personal**: only affects your own calendar and availability.

* Connect your calendar to sync availability and receive interview bookings
* Supported providers: Google, iCloud, Office 365, Exchange, Outlook.com
* Connection status shows at the top of the page once connected

<Note>
  You must connect a calendar before you can set availability or be added to interviews.
</Note>

## Availability

<Frame>
  <img src="https://mintcdn.com/heymilo/SpZVzfGR2kKN3NPe/images/scheduling-availability.png?fit=max&auto=format&n=SpZVzfGR2kKN3NPe&q=85&s=58e7e9555d2713f5b23d81c9d2ca880a" alt="Interview Availability page with timezone, weekly schedule toggles, and buffer time settings" width="1024" height="727" data-path="images/scheduling-availability.png" />
</Frame>

**Personal**: only affects your own calendar and availability.

* Set your **timezone** (used to convert slots to the candidate's timezone)
* Set your **weekly schedule** (recurring windows when candidates can book, e.g. Mon to Fri, 9:00 AM to 5:00 PM). Use **Apply first times to all** to fill the week quickly
* Mark days unavailable (e.g. weekends)
* Add **buffer time** before and after each interview slot
* Click **Save Availability**

Candidates only see slots within these windows, checked against your live calendar.

## Team Calendars

<Frame>
  <img src="https://mintcdn.com/heymilo/SpZVzfGR2kKN3NPe/images/scheduling-team-calendars.png?fit=max&auto=format&n=SpZVzfGR2kKN3NPe&q=85&s=71a3e41c3e7a88a28f8f387a9b2890d3" alt="Team Calendars page listing all connected recruiter calendars in the workspace" width="1024" height="355" data-path="images/scheduling-team-calendars.png" />
</Frame>

**Workspace**: shared, affects everyone in this workspace.

* Shows all connected recruiter calendars in the workspace
* Use this to confirm who on the team has connected before adding them to a scheduling template

## Templates

<Frame>
  <img src="https://mintcdn.com/heymilo/SpZVzfGR2kKN3NPe/images/scheduling-templates.png?fit=max&auto=format&n=SpZVzfGR2kKN3NPe&q=85&s=73e418fd3a42ba0c553f7b116a10c060" alt="Scheduling Templates page with the Default template and New Template button" width="1024" height="397" data-path="images/scheduling-templates.png" />
</Frame>

**Workspace**: shared, affects everyone in this workspace.

Reusable scheduling templates that define **meeting duration + attendees**.

* **Default template:** 30 min, all connected recruiters. Applied to postings with no specific template
* **New Template:** opens a side drawer. Set a name, meeting duration (15 / 30 / 45 / 60 min), and who joins the call
* The person creating the template is selected by default. Everyone else is optional
* Only recruiters with the right permissions can add others to a template
* One scheduling template per interview agent
* Templates are reusable across multiple postings

If multiple recruiters are on a template, HeyMilo checks availability across all of them and only shows slots where everyone required is free.

## Candidate experience

<Frame>
  <img src="https://mintcdn.com/heymilo/SpZVzfGR2kKN3NPe/images/scheduling-candidate-booking.png?fit=max&auto=format&n=SpZVzfGR2kKN3NPe&q=85&s=a4489490b50cee094129804f814d1e23" alt="Schedule Your Interview page candidates see, with a calendar and available time slots in their timezone" width="1024" height="800" data-path="images/scheduling-candidate-booking.png" />
</Frame>

1. Candidate finishes their interview and sees a **scheduling page** with available times (in their timezone)
2. They pick a time and confirm
3. They get a **confirmation email** where they can manage, reschedule, or cancel the booking
4. The booking lands on the recruiter's calendar

## Recruiter experience

When creating a new interviewer agent, scroll down to **Managed Scheduling** and enable it:

<Frame>
  <img src="https://mintcdn.com/heymilo/SpZVzfGR2kKN3NPe/images/scheduling-managed-scheduling.png?fit=max&auto=format&n=SpZVzfGR2kKN3NPe&q=85&s=8cbac604d167c2fce16aaf6fbd345649" alt="Managed Scheduling section in agent creation with the enable toggle and scheduling template picker" width="1024" height="407" data-path="images/scheduling-managed-scheduling.png" />
</Frame>

### Notifications and emails

When a candidate books, reschedules, or cancels:

* **In-app notification:** recruiters on the interview see it in their HeyMilo notifications
* **Email:** the same recruiters get an email with the booking details
* Only the people invited to that meeting are notified, not the whole workspace
* **Calendar:** the booking is automatically added, updated, or removed on your connected calendar

Candidates get their own emails too: a confirmation email when they book (with manage, reschedule, and cancel options) and an email to pick a new time if you request a reschedule. Candidate emails use your workspace brand color and logo if set, otherwise HeyMilo branding.

### Scheduling tab on the candidate profile

Every candidate with a booking has a **Scheduling tab** on their profile:

<Frame>
  <img src="https://mintcdn.com/heymilo/SpZVzfGR2kKN3NPe/images/scheduling-scheduler-tab.png?fit=max&auto=format&n=SpZVzfGR2kKN3NPe&q=85&s=d8b5b8c8b181846859308b81be314f5a" alt="Scheduling tab on a candidate profile showing a confirmed booking with meeting details and Request reschedule" width="1024" height="530" data-path="images/scheduling-scheduler-tab.png" />
</Frame>

* See the booked time and its status (confirmed, rescheduled, cancelled)
* See who on the team is on the interview

### Request a reschedule

If the booked time does not work for you:

1. Open the candidate profile → **Scheduling tab**
2. Click **Request reschedule**
3. The candidate gets an email to pick a new time
4. The original booking stays until they confirm the new time

## FAQs

<AccordionGroup>
  <Accordion title="Can each recruiter connect their own calendar?">
    Yes. Calendars and availability are personal. Templates and team calendars are workspace level.
  </Accordion>

  <Accordion title="Can different recruiters use different providers?">
    Yes. One recruiter can use Google while another uses Office 365.
  </Accordion>

  <Accordion title="Can a manager set up scheduling for their team without being booked themselves?">
    Yes. When creating a template, choose who joins the call. You do not need to include your own calendar.
  </Accordion>

  <Accordion title="What if a recruiter's calendar is always busy?">
    Candidates only see slots where all required attendees are free. Keep calendars up to date so slots appear.
  </Accordion>

  <Accordion title="Who gets notified when a candidate books or reschedules?">
    Only the recruiters invited to that meeting.
  </Accordion>

  <Accordion title="Can candidates reschedule on their own?">
    Yes. Their confirmation email includes manage, reschedule, and cancel options.
  </Accordion>

  <Accordion title="Can recruiters reschedule?">
    Yes. Use **Request reschedule** on the candidate profile. The old time holds until the candidate confirms a new one.
  </Accordion>

  <Accordion title="Where does scheduling happen in the workflow?">
    At the end, after all interview steps are complete.
  </Accordion>
</AccordionGroup>
