How to Build Interview Scheduling Across Greenhouse, Outlook, and Google Calendar with ATS and Calendar APIs
March 4, 2026
Recruiting platforms often need to coordinate interviews between candidates, recruiters, and hiring managers. Many SaaS products build scheduling features so their customers can automatically schedule interviews using their existing ATS and calendar systems.
For example, a recruiting platform may allow hiring teams to schedule interviews for candidates in Greenhouse while automatically creating calendar events in Outlook or Google Calendar.
The challenge is that interview data and calendar scheduling live in different systems. Applicant tracking systems store candidate and application data, while calendars manage meeting availability and scheduling. Each platform exposes different APIs and schemas.
Unified simplifies this process by providing normalized APIs across ATS and calendar platforms. Developers can retrieve candidates, applications, and interview stages from an ATS and create interview events in calendar systems using a consistent API.
Why SaaS Products Build Interview Scheduling Features
Many recruiting and hiring platforms provide interview scheduling capabilities for their customers.
Examples include:
- Recruiting workflow platforms
- Interview coordination tools
- Candidate scheduling assistants
- Hiring analytics platforms
- AI recruiting assistants
These products allow customers to connect their ATS and calendars so interviews can be scheduled automatically.
Typical scheduling workflows include:
- Recruiter scheduling interviews with candidates
- Candidate self-scheduling links
- Panel interviews with multiple interviewers
- Automated rescheduling and cancellations
Connecting ATS and calendar data enables these workflows to operate automatically.
Unified Categories Used in Interview Scheduling
Interview scheduling combines two Unified API categories.
| Category | Description | Key Objects |
|---|---|---|
| ATS | Candidate, application, and interview workflow data from platforms like Greenhouse or Lever | candidate, application, interview |
| Calendar & Meetings | Calendar events used to schedule interviews | calendar_event |
By normalizing these objects across providers, Unified allows SaaS platforms to coordinate interview workflows without building separate integrations.
Unified ATS Objects and Key Fields
Interview scheduling relies on several ATS objects.
Candidate
The candidate object represents the person being interviewed.
Important fields include:
| Field | Purpose |
|---|---|
| id | Unique identifier for the candidate |
| first_name / last_name | Candidate name |
| emails | Used for calendar invitations |
| telephones | Contact information |
| created_at / updated_at | Record timestamps |
These fields allow scheduling systems to identify the candidate and send interview invitations.
Application
The application object connects a candidate to a specific job.
Important fields include:
| Field | Purpose |
|---|---|
| id | Unique identifier for the application |
| candidate_id | Candidate associated with the application |
| job_id | Job being applied for |
| status | Current stage in the hiring pipeline |
| original_status | Raw stage label from the ATS |
| applied_at | Date the candidate applied |
Application stages often determine when interviews should be scheduled.
For example, interviews may be scheduled when a candidate reaches a stage such as INTERVIEW_SCHEDULED or FINAL_INTERVIEW.
Interview
The interview object contains scheduling information.
Important fields include:
| Field | Purpose |
|---|---|
| id | Unique interview identifier |
| candidate_id | Candidate being interviewed |
| job_id | Job associated with the interview |
| application_id | Application context |
| user_ids | Interviewers participating in the meeting |
| status | Interview state (SCHEDULED, COMPLETE, CANCELED, etc.) |
| start_at / end_at | Interview time window |
| location | Meeting location or remote link |
| external_event_xref | Reference to the calendar event |
| created_at / updated_at | Interview timestamps |
These fields define when the interview occurs and who participates.
Job (Context)
The job object provides context for the interview.
Important fields include:
- job title
- department
- location
- hiring manager
These details can be included in calendar invitations and candidate communications.
Connecting Customer ATS and Calendar Systems
Customers authorize their ATS and calendar integrations using Unified Connect.
Typical process:
- Your application launches the Unified Connect authorization flow.
- The user selects integrations such as Greenhouse, Outlook, or Google Calendar.
- The user authorizes access to their systems.
- Unified redirects back with a connection_id.
Your application stores the mapping:
user_id → connection_id
All subsequent API requests reference this identifier.
Retrieving Candidate and Application Data
Interview scheduling begins by retrieving candidate and application information from the ATS.
Example ATS endpoints:
GET /ats/{connection_id}/candidate
GET /ats/{connection_id}/application
GET /ats/{connection_id}/interview
GET /ats/{connection_id}/job
This allows scheduling tools to:
- retrieve candidate contact details
- identify the job associated with the interview
- determine the current application stage
- list existing interview schedules
Scheduling Interviews in Calendars
Once candidate and interview details are known, the scheduling system creates a calendar event.
Unified supports creating events using:
POST /calendar/{connection_id}/event
Important fields used when scheduling interviews include:
| Field | Purpose |
|---|---|
| title | Descriptive subject for the interview |
| start_at | Interview start time |
| end_at | Interview end time |
| attendees | Candidate and interviewers |
| conference | Video meeting details |
| location | Physical location if in-person |
| description | Interview agenda or instructions |
Example title:
Frontend Engineer Interview – Round 2
The attendees field ensures both interviewers and candidates receive calendar invitations.
The conference field can include links for Zoom, Google Meet, or Teams meetings.
Handling Rescheduling and Cancellations
Scheduling systems must handle calendar changes automatically.
Unified calendar webhooks notify applications when meetings change.
Important events include:
event.createdevent.updatedevent.deleted
These events allow scheduling systems to:
- update interview times
- notify participants
- cancel interviews when necessary
Supported Platforms
Unified provides extensive coverage across hiring and scheduling platforms.
ATS platforms (73 integrations)
Examples include:
- Greenhouse
- Lever
- Ashby
- SmartRecruiters
- iCIMS
- Workday
- Jobvite
- BambooHR
- Workable
Calendar platforms (27 integrations)
Examples include:
- Google Calendar
- Microsoft Outlook
- Zoom Calendar
- Calendly
- Apple iCloud
- Webex
This allows scheduling tools to support a wide range of customer environments.
Why Product Teams Choose Unified
Building interview scheduling features normally requires integrating with multiple ATS platforms and calendar systems.
Unified simplifies this by providing:
- normalized ATS objects for candidates, applications, and interviews
- unified calendar APIs for scheduling events
- consistent authentication via Unified Connect
- webhook events for real-time updates
Instead of maintaining dozens of integrations, product teams can focus on building better recruiting workflows for their customers.
Start building interview scheduling across Greenhouse, Outlook, Google Calendar, and dozens of other platforms today.