Veytrix AI

Google Calendar

After a screening call is rated, if the candidate confirmed a clear date & time, Veytrix automatically creates an interview event (with a Google Meet link) on the host’s calendar and invites the candidate.

How it works

  1. You add a service account — create one in Google Cloud, download its JSON key, and paste it in Integrations → Add Account. Veytrix encrypts and stores it.
  2. Admin authorizes the key — your Workspace admin grants that service account’s Client ID domain-wide delegation with scope calendar.events. This is what lets the key touch your users’ calendars — the JSON alone is not enough.
  3. You set a host email per agent — on an agent (Tools tab → Google Calendar) set the host email: the real Workspace user whose calendar the event lands on.
  4. Veytrix creates the event — when a rated call has a confirmed slot, Veytrix builds a token from the key that says “act as the host email”, and Google creates the event on that host’s primary calendar with a Meet link.
The event lands on the host email’s calendar — not the service account’s. The service account only provides permission; the host email decides which calendar.

One-time setup

  1. In Google Cloud Console, create (or pick) a project and enable the Google Calendar API.
  2. Create a Service Account → Keys → Add Key → JSON, and download the file.
  3. Copy the service account’s Client ID (a long number) from its details.
  4. In Google Workspace Admin → Security → API controls → Domain-wide delegation, add that Client ID with scope https://www.googleapis.com/auth/calendar.events.
  5. In Veytrix → Integrations → Add Account, paste the JSON, give it a label, and Save.
  6. On each agent (Tools tab → Google Calendar), enable the tool and set the host email (a real user in your Workspace domain).
  7. Use Test Connection on the credential to confirm it works before relying on it in a live call.

Example service account JSON

{
  "type": "service_account",
  "project_id": "your-project",
  "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
  "client_email": "veytrix-calendar@your-project.iam.gserviceaccount.com",
  "client_id": "1234567890..."
}

Multiple calendars & multiple accounts

  • Different calendars, one account — to book different recruiters’ calendars you do NOT need extra Google accounts. One service account covers every calendar in your domain; just set a different host email per agent (e.g. recruiter1@, recruiter2@, or a shared interviews@ mailbox).
  • When to add a second credential — only if you have a second, separate Workspace domain (e.g. @veytrixai.com and @veytrix.io), because delegation is authorized per domain. Then pick the matching calendar account on the agent.

Where results show up

Open Call History → a call → the “Calendar event” row. It shows Created (with a clickable Meet/event link) or the exact skip / fail reason.

Common issues

SymptomCause & fix
unauthorized_clientDomain-wide delegation not authorized — complete the Workspace Admin step.
invalid_grant / user not foundHost email isn’t a real user in the delegated domain.
Event was skippedCandidate didn’t confirm a clear date/time, or no host email set on the agent.
Nothing created at allCalendar tool not enabled on the agent, or no credential added.
The downloaded JSON key is a secret. Veytrix stores it encrypted and never shows it again — keep your own copy safe and never commit it to source control.
VeytrixAI System Status