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
- 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.
- 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. - 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.
- 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
- In Google Cloud Console, create (or pick) a project and enable the Google Calendar API.
- Create a Service Account → Keys → Add Key → JSON, and download the file.
- Copy the service account’s Client ID (a long number) from its details.
- In Google Workspace Admin → Security → API controls → Domain-wide delegation, add that Client ID with scope
https://www.googleapis.com/auth/calendar.events. - In Veytrix → Integrations → Add Account, paste the JSON, give it a label, and Save.
- On each agent (Tools tab → Google Calendar), enable the tool and set the host email (a real user in your Workspace domain).
- 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.comand@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
| Symptom | Cause & fix |
|---|---|
| unauthorized_client | Domain-wide delegation not authorized — complete the Workspace Admin step. |
| invalid_grant / user not found | Host email isn’t a real user in the delegated domain. |
| Event was skipped | Candidate didn’t confirm a clear date/time, or no host email set on the agent. |
| Nothing created at all | Calendar 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.