Evalgent
Back to Blog
Voice AI Testing

AI Interview Scheduling Calls: Candidate and Manager Mix-Ups

Deepesh Jayal
13 min read
AI Interview Scheduling Calls: Candidate and Manager Mix-Ups
On this page

Facts and rules in this post were checked on October 22, 2026, against the sources linked inline. Volumes for the keywords behind it are unverified estimates. Nothing here is legal advice.

Your team built a voice agent that runs AI interview scheduling calls for a recruiting product or an internal talent team. Vendors call this interview scheduling automation or an AI recruiting scheduler. It is really a voice agent interview scheduling flow with write access to your calendars. A candidate calls back. A hiring manager's calendar changes. The agent has to turn a messy sentence into a calendar event and a pipeline update. Most of the risk sits in that last step.

This post covers AI interview scheduling calls in professional recruiting: candidates, recruiters and hiring managers with real calendars. Hourly hiring across many store locations has different failure modes. Those are in AI interview scheduling errors across many locations. Scoring and screening are covered in the phone screening QA guide. Here we test only the scheduling.

84%
of employers have had candidates not show up for interviews (Indeed survey, nearly 900 employers polled, 2019)
50%
default minimum attendee confidence in Microsoft Graph findMeetingTimes (Microsoft docs)
0.35 vs 0.19
average word error rate, Black vs white speakers across five ASR systems (Koenecke et al., PNAS 2020)
~1%
of Whisper transcriptions held whole hallucinated phrases (Koenecke et al., 2024)

What an interview scheduling call really does

A scheduling call looks like a short chat. Underneath, it is a chain of writes. Each write lands in a system that a human trusts without listening to the call.

1. Capture. Who is calling, which role, which round, and which slots work.

2. Resolve. Turn "Thursday afternoon, my time" into an absolute start, end and zone.

3. Check. Read the hiring manager's and panel's free/busy data.

4. Write. Create or move the calendar event. Move the candidate's stage in the ATS.

5. Confirm. Speak the details back, then send a calendar invite by email or text.

An AI scheduling assistant for recruiters is only as good as these writes. A wrong word at step 1 or 2 does not sound wrong on the call. The agent reads back a clean sentence. The calendar holds a different fact. That is why a transcript-only review misses these bugs. The sentence the agent said and the record it wrote are two separate artifacts.

Map of six spoken scheduling phrases to the stored calendar or ATS field each becomes, with the silent failure that can corrupt each field

The picture above is the test target. Every phrase has a field. Every field has a way to be wrong with no audible clue.

Seven failure modes in AI interview scheduling calls

1. Time zone and daylight saving errors

Calendars store instants, not sentences. Google's Calendar API documentation says that setting `timeZone` "attaches a time zone to the event." It also says that for recurring events "you must always specify a single time zone to expand the recurrences." Microsoft Graph's findMeetingTimes returns meeting suggestions in UTC by default unless you send a `Prefer: outlook.timezone` header.

Each default is a trap. An agent that forgets the header shows the manager UTC times. An agent that picks the zone from the caller's area code puts a remote candidate in the wrong zone.

Abbreviations are worse. The IANA time zone theory file warns that abbreviations are ambiguous: "CST means one thing in China and something else in North America." A candidate who says "4 PM Central" is fine. A candidate who says "CST" from Shanghai is not. Store IANA names such as `America/Chicago`, never abbreviations. In iCalendar, RFC 5545 says a fixed time needs either UTC or local time with a zone reference. A local time with no zone is "floating" and "not bound to any time zone in particular."

Daylight saving time adds a second trap. Under 15 U.S.C. § 260a, US clocks fall back at 2 a.m. on the first Sunday of November. In 2026 that is November 1. The statute lets states exempt themselves, so not every US caller shifts. The `Asia/Kolkata` zone stays at +05:30 all year.

Worked example. Today is October 22. A candidate in Bengaluru books "Monday, November 2 at 10 AM Eastern." The agent computes the offset from today's date (-04:00) and stores 14:00 UTC. Eastern time on that Monday is -05:00, so the true instant is 15:00 UTC.

Stored by buggy agentCorrect
UTC instant14:0015:00
Manager's calendar (Eastern)9:00 AM10:00 AM
Candidate (Bengaluru)7:30 PM8:30 PM

The manager shows up an hour early. The candidate is told 8:30 PM and sees 7:30 PM on the invite.

Timeline of November 1, 2026 clock change showing the Eastern to India offset moving from 9.5 to 10.5 hours and the one-hour error a fixed offset creates

2. Relative dates and vague times

"Next Friday." "End of day." "After the holiday." People use these with confidence and mean different things. Said on a Thursday, "next Friday" can mean tomorrow or eight days away. "Morning" may end at 11 or at noon.

The fix is a read-back rule, not a smarter parser. The agent must speak the absolute date and zone: "Friday, October 30, at 10 AM Eastern. Is that right?" Then it must wait for an explicit yes. Test that a "yeah, sure" said over background noise does not count as a yes to a different time.

3. Wrong candidate, wrong role

Recruiters juggle many open requisitions. A candidate may be in process for two roles at one company. Two candidates may share a first name, a household phone or a recruiter's mobile number. The agent matches the caller to a record by phone number and name. If that match is wrong, it reschedules a stranger's interview.

Test these cases:

  • A caller with two active applications who says "my interview."
  • A spouse calling from a shared number for a different candidate.
  • A recruiter who calls from a personal phone to move a candidate.
  • Two candidates with similar names, such as Priya Nair and Priya Nayar. Names are exactly where speech recognition struggles.

Require a second identifier before any change. Make it something the caller knows, such as the role title or the recruiter's name.

4. Hiring manager and panel calendars

Hiring manager calendar availability is rarely one clean fact. A panel interview needs several people free at once. Microsoft's `findMeetingTimes` (see the Graph reference) shows how the logic can mislead. Its confidence figure is "the chance that all the attendees attend the meeting." Per attendee, free counts 100%, unknown counts 49% and busy counts 0%. Confidence averages across attendees. If you do not set `minimumAttendeePercentage`, it defaults to 50%.

Take a three-person panel. Two are free and one is busy. Confidence is (100 + 100 + 0) / 3, or 66.7%. That clears the 50% default. The suggestion still has a busy panelist.

So an agent that picks the top suggestion risks a double booking. It can offer a candidate a slot that one interviewer cannot attend. Set the threshold to 100 for required attendees. Treat "unknown" as busy.

Other calendar traps:

  • Tentative holds that the agent treats as free or as hard busy, inconsistently.
  • An interviewer in a different zone with working hours that differ from the recruiter's.
  • A hiring manager who has booked a "focus block" over the only open slot.

5. Reschedule chains

Interview reschedule calls rarely happen once. Candidates move interviews more than once. Each move must cancel the old event, create the new one, update the ATS and notify everyone. Break one step and a ghost invite survives.

The common chain bug is a stale invite. The agent creates a new event but does not delete the old one. The manager now holds two events. The candidate has two links. Someone joins the wrong one.

Test chains of three moves, not one. Check that exactly one live event exists after each move. Check that interrupted calls ("actually, wait, Thursday") do not leave a half-written state.

6. ATS and calendar write-back

The calendar is one record. The applicant tracking system is another. Stage, interview round, interviewer list and notes may all need updates. A tool call can succeed on one and fail on the other. The agent then tells the candidate "you are all set."

This is a tool-call failure with a happy voice on top. Your logs need both results per call. Alert when the calendar write succeeded and the ATS write did not. Alert on the reverse too. Check your own ATS's API for what it supports. Do not assume that every system accepts a stage change from an external caller.

7. Accommodation requests

Some candidates will say, "I need extra time," "I'm deaf and need a video relay interpreter," or "I can't do a phone interview." These requests are legally meaningful. The EEOC's guidance on job applicants says requests can be made orally or in writing, and an employer may need advance notice to arrange an accessible location. Under 42 U.S.C. § 12112(b)(5), an employer must make a reasonable accommodation to the known limitations of an otherwise qualified applicant, unless that would cause undue hardship.

The agent's job is narrow. It should recognize the request, never judge it and never ask about the medical condition. Under § 12112(d)(2), covered employers may not make inquiries as to whether an applicant has a disability before employment. The agent should capture the words the caller used, stop scheduling and hand the call to a named human. It must not say "we can't accommodate that," and it must not pick a slot as if nothing was said.

The agent must also not penalize or mishear the caller because of how they speak. Which brings us to speech recognition.

Where speech recognition hurts scheduling

Koenecke et al. (PNAS, 2020) tested five commercial systems on matched interviews. Average word error rate was 0.35 for Black speakers and 0.19 for white speakers. The authors point to acoustic models trained on too little audio from Black speakers. Names, numbers and times are short, so one wrong word flips the whole fact.

A second study, "Careless Whisper" (Koenecke et al., 2024), found roughly 1% of Whisper transcriptions held entire hallucinated phrases. It found hallucinations were more likely for speakers with longer shares of non-vocal time, a symptom of aphasia. For a scheduler, a hallucinated phrase is a request the caller never made.

Test the same scheduling script across accents, speaking pace, long pauses and noisy lines. Our bias testing guide covers fairness measurement. For scheduling, the question is simpler. Does the stored slot match what this caller said?

Worked math: why one error rate hides the problem

Say each stored field is correct 97% of the time. Six fields matter: candidate, role, date, time, zone and attendee list. If errors are independent, the call is fully right 0.97^6, or 83%. This is an illustrative assumption, not a measurement.

Now add repetition. The τ-bench paper introduced pass^k, the chance that all k trials of a task succeed, and reported that state-of-the-art agents were "quite inconsistent (pass^8 <25% in retail)." A scenario that passes 90% of the time passes eight runs in a row about 43% of the time (0.9^8). Run each scheduling scenario several times before you trust it.

ScenarioWhy repeat it
DST week bookingOffset logic is deterministic. It should pass every run.
Name collisionSpeech recognition varies by run.
Three-move rescheduleState errors appear on the second or third move.

A copyable assertion: compare the call to the record

Check the stored instant, not the spoken sentence. This simplified Python uses the standard library only.

from datetime import datetime
from zoneinfo import ZoneInfo

def to_utc(local_iso: str, tz_name: str) -> datetime:
    """Wall-clock time in an IANA zone -> UTC. Simplified."""
    local = datetime.fromisoformat(local_iso).replace(tzinfo=ZoneInfo(tz_name))
    return local.astimezone(ZoneInfo("UTC"))

def audit_booking(expected, event, ats):
    errors = []
    want = to_utc(expected["local"], expected["tz"])
    got = datetime.fromisoformat(event["start_utc"])
    if got != want:
        errors.append(f"start off by {(got - want).total_seconds() / 3600:+.1f}h")
    if event["candidate_id"] != expected["candidate_id"]:
        errors.append("wrong candidate")
    if set(event["attendees"]) != set(expected["panel"]):
        errors.append("panel mismatch")
    if ats["stage"] != expected["stage"] or ats["event_id"] != event["id"]:
        errors.append("ATS out of sync")
    return errors

# DST case: 10:00 America/New_York on 2026-11-02 must be 15:00 UTC, not 14:00.

Run it against the stored records after every simulated call, not only against the transcript.

How to test interview scheduling calls before launch

1. List your write targets. For each call outcome, name every record it touches: calendar event, ATS stage, candidate message, manager notification and call log.

2. Build the scenario matrix. Cross intents (book, move, cancel, confirm, accommodation) with conditions (DST week, cross-zone, shared phone, panel of three, interrupted call).

3. Add caller profiles. Vary accent, speech pace, interruption level, response delay and background noise. Include non-English callers if you serve them.

4. Run real calls. Place calls to the agent over the same phone, SIP or WebRTC path candidates use. Text prompts will not expose audio faults.

5. Assert on records. After each call, run an audit like `audit_booking` against the calendar and ATS, not only the spoken confirmation.

6. Repeat each scenario. Run at least five times and report pass^k, not one pass rate.

7. Set gates. Block a release if any DST, wrong-candidate or accommodation case fails.

8. Monitor production. Sample real calls weekly and re-check written records against recordings.

Evalgent generates test scenarios from your agent's prompt and flows, including the states, branches and policies your scheduling logic follows. Its call simulator reaches your agent over PSTN, SIP or WebRTC with caller profiles for accent, pace, interruption and noise. It judges from the audio, not only the transcript. Custom metrics, such as "stored start time equals the confirmed start time," can run on every call, and humans review the verdicts. For live traffic, Evalgent's production monitoring takes pushed recordings, maps them to scenarios and flags tool-call failures and policy failures with fix recommendations.

Scorecard of six interview scheduling checks with starting pass thresholds: stored start time, candidate identity, panel availability, reschedule chain, ATS sync and accommodation hand-off

Starting thresholds are assumptions to tune, not standards. Start strict for anything that touches a stranger's record or an accommodation.

Confirmations, no-shows and outbound calls

Indeed's survey found that 84% of employers have had candidates miss interviews. Every candidate no-show wastes a panel's hour. A confirmation call is the cheapest guard. It is also a new place to err. Do not let the agent reschedule on a confirmation call unless it re-runs the full read-back.

Outbound calls carry legal weight too. In a February 8, 2024 declaratory ruling, the FCC recognized that calls made with AI-generated voices are "artificial" under the TCPA. Have counsel review your consent flow for outbound candidate calls and texts. This post does not cover that.

For vendor selection, see how to evaluate a recruiting screening voice agent vendor. For generic scheduling logic, see voice agent testing for appointment scheduling and metrics for scheduling agents. If your agent also places contractors, see staffing assignment and timesheet calls and staffing agency AI screens.

Frequently asked questions

How does AI schedule interviews over the phone?

It captures the caller's identity and preferred times, resolves them to an absolute date and zone, checks the interviewers' calendars, then writes the event and updates the ATS. Last, it reads the details back and sends an invite. Every step is a place where a wrong value can be stored.

Can AI interview scheduling handle time zones?

Only if it stores IANA zone names, converts through a tested library and reads back the absolute date and zone. Fixed offsets break on daylight saving changes, and abbreviations like CST are ambiguous. Test cross-zone callers in the week US clocks change.

What happens when AI double books an interview?

Usually one calendar shows a conflict and the other does not. The agent read free/busy data late, trusted an "unknown" status or created a duplicate on a reschedule. Candidates then arrive for an interviewer who is elsewhere. Test with soft holds, stale invites and a busy panelist.

How to test an AI interview scheduling agent?

Build scenarios across intents and conditions, call the agent over a real phone path with varied caller profiles, then assert on the stored calendar and ATS records. Repeat each scenario several times. Gate releases on time zone, identity and accommodation cases.

How should AI handle accommodation requests during interview scheduling?

It should recognize the request, avoid asking about any medical condition, record the caller's words and transfer to a named human. It should not refuse, grant or reschedule on its own. The EEOC says requests can be oral or written.

Does AI interview scheduling update the ATS?

Only if you build that write and test it. Calendar and ATS writes are separate calls and can fail independently. Log both results for every call and alert when only one succeeded. Confirm what your ATS API allows before promising candidates a stage change.

How to reduce candidate no-shows with AI calls?

Use confirmation calls with a clear read-back of the date, time and zone, and send the same details by invite. Make rescheduling easy so candidates move instead of vanishing. Then check that every move leaves exactly one live event.

Are AI interview scheduling calls covered by the TCPA?

Probably, for outbound calls. The FCC's February 8, 2024 ruling treats AI-generated voices as artificial under the TCPA. Consent rules then apply to your calls and texts. Ask counsel to review your flow. This is not legal advice.

The bottom line

AI interview scheduling calls break where speech becomes a record: the zone, the date, the person and the panel. Test the stored calendar and ATS entries against what each caller said, and hand every accommodation request to a human.

Related Articles