Recruiting is one of the highest-volume scheduling problems in business software. A single open role can generate dozens of interviews, each one needing a candidate, an interviewer or full panel, a room or video link, and a time that survives the next round of calendar churn. Availability shifts hourly, panels span time zones, and a hiring manager who declines one slot can unravel a chain of four. The work that an Applicant Tracking System (ATS) calls “schedule interview” is, underneath, a calendar coordination engine.
The Nylas Scheduler, Calendar, and Notetaker APIs give you the primitives for that engine without you building one provider integration per email host. What follows maps each part of the hiring funnel to the products that cover it, the provider differences that cost you reliability, and the terminal commands to prototype with. The deep tutorials live in the linked pages below; start here to decide what to wire together.
How do you schedule interviews across panels and candidates?
Section titled “How do you schedule interviews across panels and candidates?”Interview scheduling means finding a time that works for a candidate and one or more interviewers, then writing a confirmed event onto every calendar involved. The platform handles this through two layers: an availability query that reads real-time calendars, and an event write that books the slot. The availability endpoint covers 4 providers (Google, Microsoft, iCloud, and Exchange), so a panel mixing Google Workspace and Microsoft 365 calendars resolves in one request.
The first decision is whether a human picks the time or the system proposes it. For recruiter-driven scheduling, read availability for the panel and present the recruiter a ranked list. For candidate-driven scheduling, hand off to a booking page (covered below). Either way, the confirmed slot becomes a calendar event through POST /v3/grants/{grant_id}/events, which sends invites and writes the hold. The tutorials below show both layers stitched into a working pipeline, including the calendar holds and the recording step.
The reason one query can resolve a mixed panel is that the platform normalizes every provider into one schema. A Google Workspace interviewer, a Microsoft 365 hiring manager, and an Exchange recruiter all read through the same request and response shape, so your scheduling code never branches on provider for the common path. That single point of integration is what makes a panel of four feasible to coordinate in software instead of by hand. You query once, you get one merged view of who’s free, and you write one event that lands on all four calendars with the candidate attached.
| Tutorial | Products | What you’ll build |
|---|---|---|
| Build an interview scheduling pipeline | Scheduler, Calendar, Notetaker | A multi-step hiring workflow with scheduling, calendar holds, and automatic transcription |
| Add a scheduling page with automatic notetaking | Scheduler, Notetaker | A booking experience that automatically records and transcribes every meeting it produces |
To list the recruiter calendars connected to a grant before you query availability, the CLI prints them in one line. This is the fastest way to confirm which interviewer mailboxes are wired up and which provider each one uses, so you know whether Free/Busy applies (it covers the same providers as availability except iCloud).
nylas calendar listHow can candidates self-book interview slots?
Section titled “How can candidates self-book interview slots?”Candidate self-booking means the applicant chooses a time from interviewer availability without a recruiter in the loop. The Scheduler API powers this through booking pages and configurations: a configuration defines the meeting rules (duration, buffer, which calendars to check) and a booking page renders the public picker. A scheduling session, created with POST /v3/scheduling/sessions, scopes a short-lived booking flow for a specific candidate. The Nylas CLI mirrors the Scheduler API, and the scheduler group covers the full booking lifecycle across all 4 providers.
Self-booking removes the single biggest source of recruiting back-and-forth, which is the email thread that asks “does Tuesday at 3 work for you?” Instead the candidate sees only times the panel can actually take. Below, the first command lists your existing scheduler configurations, and the second creates a new one. Use configurations list to find the configuration tied to a role before you generate candidate links.
nylas scheduler configurations listnylas scheduler configurations createWhen a candidate books, that booking lands in your queue. The CLI shows a booking and reschedules one by ID, which matters because candidates change plans more than any other meeting participant. A reschedule rewrites the event and reissues invites rather than canceling and rebooking.
nylas scheduler bookings show <booking-id>nylas scheduler bookings reschedule <booking-id> --start-time <unix> --end-time <unix>How do you find times that work across interviewers?
Section titled “How do you find times that work across interviewers?”Cross-interviewer time-finding is the panel problem: given three or four people and a duration, return the slots where everyone is free, ranked so the best option surfaces first. The multi-attendee endpoint POST /v3/calendars/availability does the Free/Busy intersection across the 4 supported providers. On top of that, nylas calendar find-time ranks the results with a 100-point model so you propose a good time, not just any open one.
The ranking is what separates a usable proposal from a raw list of gaps. The model scores each slot on working hours (40 points), time quality (25), cultural norms (15), weekday (10), and holiday avoidance (10). It defaults to a 1 hour meeting over the next 7 days, which matches a typical interview length and booking horizon. Tune the participants, duration, and window per round.
nylas calendar availability checkFor a single interviewer, you can skip the multi-attendee path and read one person’s Free/Busy with POST /v3/grants/{grant_id}/calendars/free-busy. That endpoint covers Google, Microsoft, and Exchange but not iCloud, so for an iCloud interviewer you fall back to the availability endpoint. The reference page has the full request and response shape for availability.
How do you record and transcribe interviews automatically?
Section titled “How do you record and transcribe interviews automatically?”Automatic interview recording means a bot joins the video call, captures audio and video, and returns a transcript when the meeting ends. The Notetaker API invites that bot with POST /v3/grants/{grant_id}/notetakers, then exposes the recording and transcript URLs through GET /v3/grants/{grant_id}/notetakers/{notetaker_id}/media after the call. The media endpoint only returns assets once the meeting is over, so poll or wait on a webhook rather than calling it mid-interview. A bot you invite through a grant runs against that grant’s OAuth token, which expires after 3,600 seconds and refreshes automatically, so a back-to-back interview day records every round without any re-authentication in between.
The bot is provider-agnostic at the meeting layer. You hand it the meeting link from the booked event, and it joins whatever video service that link points to, so a Google Meet first round and a Microsoft Teams panel both produce the same media shape. That uniformity is what lets your ATS treat every interview transcript identically regardless of which calendar generated the invite. Plan storage on your side too, because a high-volume role can produce a dozen recordings, and you’ll want a retention rule that attaches each transcript to the candidate record and clears the raw media on a schedule you control.
Transcripts turn interviews into structured, searchable hiring signal. Instead of a panel reconstructing what a candidate said from memory, every interviewer reads the same record, and your ATS can attach it to the candidate profile. Below, the first command sends a Notetaker bot to a meeting link, and the second pulls the media once it’s ready. Pass the meeting URL from the booked event.
nylas notetaker create --meeting-link https://meet.google.com/abc-defg-hijnylas notetaker media <notetaker-id>When you book through the Scheduler, you can chain the Notetaker invite so every interview the page produces is recorded without a manual step. The “scheduling page with automatic notetaking” tutorial above wires that chain end to end, and the Notetaker overview covers states, retention, and the standalone POST /v3/notetakers path for meetings outside a grant.
How do AI agents run recruiting workflows autonomously?
Section titled “How do AI agents run recruiting workflows autonomously?”An autonomous scheduling agent is a service with its own mailbox and calendar that books interviews on behalf of recruiters, reading candidate replies and proposing slots without a human coordinator. Agent accounts give that service a real identity: nylas agent account create <email> provisions a grant the agent owns, so invites and confirmations come from the agent rather than a shared inbox. Because OAuth access tokens expire after 3,600 seconds and the platform refreshes them automatically, the agent keeps working through long-running scheduling chains without re-authentication.
A dedicated identity matters for trust and deliverability. Candidates reply to a named sender, replies route back to the agent, and you can audit exactly what the agent scheduled. The tutorials below show an agent with its own mailbox booking interviews, and a recruiter assistant built on the email and calendar tools that reads candidate replies and proposes times.
| Tutorial | Products | What you’ll build |
|---|---|---|
| Scheduling agent with a dedicated identity | Agent Accounts, Scheduler | An agent with its own mailbox that books interviews on behalf of recruiters |
| Build an LLM agent with email & calendar tools | Email, Calendar | A recruiter assistant that reads candidate replies and proposes interview slots |
To create an agent identity and confirm it’s live, the CLI runs both in two lines. Use agent status to verify the account is provisioned before you point a workflow at it.
nylas agent statusRun recruiting workflows from the terminal with the Nylas CLI
Section titled “Run recruiting workflows from the terminal with the Nylas CLI”The Nylas CLI exposes the same scheduling, calendar, and Notetaker primitives as the API, which makes it the fastest way to script recruiting operations or debug a booking before you ship it. Mirroring the Scheduler, Calendar, and Notetaker APIs, you can authenticate, query availability across all 4 providers, create scheduler configurations, and invite recording bots without writing a single line of integration code. This is where a recruiting ops engineer prototypes a workflow.
A typical session starts with auth, then walks the funnel. Authenticate once, confirm the active grant, find a panel time, check a booking that came in, and send a Notetaker to the confirmed call. Every command below is a real CLI command; chain them in a shell script to model a full round.
nylas init --api-key <your-api-key>nylas auth whoaminylas scheduler bookings show <booking-id>nylas notetaker create --meeting-link https://meet.google.com/abc-defg-hijFor day-to-day candidate communication, the email group reads and sends from the recruiter’s connected mailbox. Inspecting a booking and reading the latest candidate reply often happen in the same flow, so keep the email and scheduler commands close together in your scripts. The full command reference lives at cli.nylas.com/docs/commands.
nylas email listnylas email search "interview confirmation"Things to know about recruiting integrations
Section titled “Things to know about recruiting integrations”Recruiting integrations live or die on calendar accuracy, so the provider matrix is the constraint that shapes your design. The multi-attendee availability endpoint covers 4 providers: Google, Microsoft, iCloud, and Exchange. The single-person Free/Busy endpoint covers the same set except iCloud, and both exclude standard IMAP because IMAP carries no calendar. In practice this means an iCloud interviewer is readable through availability but not through Free/Busy, and a mailbox connected over plain IMAP can send and receive interview email but can’t contribute calendar data. Detect the provider per grant and route accordingly rather than assuming one path works everywhere.
Token lifecycle is the second thing to plan for. OAuth access tokens expire after 3,600 seconds, and the platform refreshes them for you, so a scheduling agent that runs a multi-hour booking chain doesn’t stall on auth. You don’t manage the refresh, but you should design retries around the boundary so a token rotation mid-flow doesn’t surface as a hard failure to a candidate.
Panel and time zone coordination is where recruiting differs from one-on-one scheduling. A panel of four can have four different working-hour windows, which is exactly what the find-time 100-point model is built to weigh: working hours score 40 of the 100 points, and cultural norms and holiday avoidance add another 25 between them. Lean on that ranking instead of hand-rolling time zone math. When a candidate sits three time zones from the panel, the top-ranked slot is usually the one that respects everyone’s working hours, not the first open gap.
Recording has its own timing rule. The Notetaker media endpoint returns the recording and transcript only after the meeting ends, so build the consumer to respond to completion rather than poll an interview in progress. Pair the Notetaker invite with the booked event’s meeting link so every interview the funnel produces carries a transcript into the candidate record. For high-volume hiring, that one decision turns interview notes from a manual chore into a byproduct of the schedule.
What’s next
Section titled “What’s next”- Scheduler overview: embeddable scheduling UI and API
- Calendar availability: check real-time availability
- Notetaker API overview: meeting recording and transcription
- Meeting types: configure meeting durations and types
- Calendar API overview: events, availability, and Free/Busy
- Email API overview: read and send candidate communication
- Availability endpoint reference: full request and response shape
- Nylas CLI command reference: every scheduling and calendar command