Skip to content

Google Services

Set up Gmail, Google Calendar, Google Drive, and Google Sheets access for your agent.

Prerequisites

  • A Google Cloud project
  • OAuth 2.0 credentials (Client ID + Client Secret)

Step 1: Create Google Cloud Credentials

  1. Go to Google Cloud Console
  2. Create a new project (or select an existing one)
  3. Enable the APIs you need:
    • Gmail API
    • Google Calendar API
    • Google Drive API
    • Google Sheets API
  4. Go to OAuth consent screen:
    • User type: External, status: Testing
    • Add your your agent's or your email as a test user
    • Add these scopes:
      • https://www.googleapis.com/auth/gmail.modify
      • https://www.googleapis.com/auth/calendar
      • https://www.googleapis.com/auth/drive
      • https://www.googleapis.com/auth/spreadsheets
  5. Go to CredentialsCreate CredentialsOAuth 2.0 Client ID
  6. Application type: Desktop app
  7. Download the credentials (Client ID + Client Secret)

Note

You don't configure scopes in Vandelay. They're hardcoded and automatically requested during vandelay auth-google. You only need to add them to the consent screen in Google Cloud so the OAuth flow is permitted to request them.

Step 2: Configure Vandelay

Add your credentials to ~/.vandelay/.env:

GOOGLE_CLIENT_ID=your-client-id
GOOGLE_CLIENT_SECRET=your-client-secret
GOOGLE_PROJECT_ID=your-project-id

Step 3: Authenticate

vandelay auth-google

This opens a browser (or prints a URL for headless servers) for OAuth consent. The token is saved to ~/.vandelay/google_token.json.

Headless Servers

On servers without a browser, auth-google prints a URL. Open it on any device, complete the consent flow, and paste the authorization code back into the terminal.

Step 4: Enable Google Tools

vandelay tools enable gmail googlecalendar googledrive googlesheets

Available Google Tools

Tool Capabilities
gmail Read, send, search emails. HTML body support.
googlecalendar List, create, update, delete events
googledrive List, search, read, upload files
googlesheets Read, write, create spreadsheets

Configuration

Set your calendar ID in config.json (defaults to "primary"):

{
  "google": {
    "calendar_id": "primary"
  }
}

Token Refresh

The OAuth token auto-refreshes. If it expires or is revoked, re-run vandelay auth-google.