Skip to main content

Gmail, Drive, Calendar, and More

The Google Workspace integration connects Wolffish to Gmail, Google Drive, Calendar, Contacts, Tasks, and Sheets. It supports multiple Google accounts and uses OAuth 2.0 for authentication.

Setup

1

Open Settings

Navigate to Settings > Integrations > Google.
2

Authorize

Click “Authorize” to start the OAuth flow. Your default browser opens to Google’s consent screen.
3

Grant Permissions

Approve the requested scopes. Wolffish requests read/write access to Gmail, Drive, Calendar, Contacts, Tasks, and Sheets.
4

Complete

The browser redirects back to a local callback URL. Your tokens are stored in config.json and the account appears in Settings.
The OAuth tokens are stored locally in ~/.wolffish/workspace/config.json. Wolffish uses a refresh token to silently renew access tokens when they expire — no re-authorization needed.

Multi-Account Support

You can authorize multiple Google accounts. The google_accounts tool lists all connected accounts, and every other Google tool requires an explicit account parameter to specify which account to use.
User: "Check my email"
LLM calls: google_accounts() → returns [{email: "work@company.com"}, {email: "personal@gmail.com"}]
LLM calls: gmail_search({account: "work@company.com", query: "is:unread"})
If you only have one account, Wolffish still requires the account parameter for consistency and to avoid ambiguity if you add more accounts later.

Available Tools

Gmail

ToolDescription
gmail_searchSearch emails with Gmail query syntax
gmail_readRead a specific email by ID
gmail_sendCompose and send a new email
gmail_replyReply to an existing email thread
gmail_forwardForward an email to another recipient
gmail_archiveArchive an email (remove from inbox)
gmail_trashMove an email to trash
gmail_mark_readMark an email as read
gmail_save_draftSave a draft without sending

Google Drive

ToolDescription
drive_listList files and folders
drive_uploadUpload a local file to Drive
drive_downloadDownload a file from Drive to local disk
drive_create_folderCreate a new folder
drive_searchSearch files by name or content

Google Calendar

ToolDescription
calendar_list_eventsList upcoming events (with date range filter)
calendar_create_eventCreate a new calendar event
calendar_update_eventUpdate an existing event
calendar_delete_eventDelete an event
calendar_rescheduleMove an event to a new time

Google Contacts

ToolDescription
contacts_listList all contacts
contacts_createCreate a new contact
contacts_searchSearch contacts by name, email, or phone

Google Tasks

ToolDescription
tasks_list_tasklistsList all task lists
tasks_listList tasks in a specific task list
tasks_createCreate a new task
tasks_completeMark a task as completed
tasks_deleteDelete a task

Google Sheets

ToolDescription
sheets_readRead data from a spreadsheet range
sheets_writeWrite data to a spreadsheet range
sheets_createCreate a new spreadsheet
sheets_update_cellsUpdate specific cells

Triggers

The Google capability activates when your message matches any of these patterns:
email, inbox, gmail, send email, compose email, draft,
drive, upload file, download file, google drive,
calendar, schedule, meeting, event, appointment,
contacts, address book, phone number,
tasks, todo, task list, to-do,
sheets, spreadsheet, google sheets

Example Workflows

You: "Check my email"
Wolffish: Lists your 10 most recent unread emails with sender, subject, and snippet.
You: "Schedule a meeting with Ali tomorrow at 2pm for 30 minutes"
Wolffish: Creates a calendar event, confirms the time and date.
You: "Upload ~/Documents/report.pdf to my Drive"
Wolffish: Uploads the file and returns the Drive link.
You: "Find emails from sarah@example.com about the project proposal"
Wolffish: Searches Gmail with the query and returns matching threads.

Configuration Reference

The Google integration stores its data in config.json:
{
  "integrations": {
    "google": {
      "accounts": [
        {
          "email": "you@gmail.com",
          "accessToken": "ya29.a0AfH6SM...",
          "refreshToken": "1//0eXyz...",
          "expiresAt": 1700000000000
        }
      ]
    }
  }
}
Do not manually edit tokens in config.json unless you know what you’re doing. Use the Settings UI to add or remove accounts. Malformed tokens will cause silent auth failures.
If Google API calls start failing with 401 errors, go to Settings > Google and click “Re-authorize” to refresh your tokens. This typically happens if you revoke access from your Google Account security settings.