Use the Google Calendar API with OAuth 2.0 service account credentials or user-delegated credentials to read interviewer calendars and check free/busy status across the panel.
Query the freebusy endpoint for each interviewer's calendar for the desired date range, passing their calendar IDs and the time window; parse the response to identify slots where all required interviewers are free.
Propose the available slots to the recruiter or send a self-scheduling link to the candidate via your recruiting workflow, presenting only slots that satisfy panel availability.
Once a slot is confirmed, create a Calendar event via the events.insert endpoint specifying the summary (interview title), start/end times, location or video conference details, attendees (candidate and interviewers), and a conferencing data request if using Google Meet.
Capture the created event ID and store it against the ATS interview record so the event can be updated or deleted via the API if the interview is rescheduled.
Send confirmation emails through your ATS or email API rather than relying solely on Google Calendar invitation emails to ensure consistent branding and to include preparation materials.
Known gotchas
Service account access to interviewer calendars requires domain-wide delegation to be explicitly configured by the Google Workspace admin for each calendar scope; missing delegation causes 403 errors that appear as auth failures rather than permission errors.
Freebusy queries return busy blocks but do not reveal event details — calendar events marked as Free rather than Busy will show as available even if the interviewer is at another commitment; coordinate with interviewers to mark all commitments correctly.
Created calendar events are not automatically updated if an interviewer subsequently blocks the time — implement a pre-interview confirmation check and a rescheduling workflow for conflicts discovered after booking.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp