google-workspace

Manage Gmail, Calendar, Drive, Sheets, Docs, and Contacts via OAuth-authenticated CLI commands.

Updated May 13, 2026
One-click install
npx skills add https://github.com/superfhp/lumi-agent-body --skill google-workspace-superfhp
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: google-workspace
Source: https://github.com/superfhp/lumi-agent-body/tree/main/skills/productivity/google-workspace
Command: npx skills add https://github.com/superfhp/lumi-agent-body --skill google-workspace-superfhp

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires google-api-python-client, google-auth-oauthlib, google-auth-httplib2, and includes scripts (resource) and references (resource) components.

What problem does it solve? Accessing Google Workspace services from an AI agent or terminal normally requires juggling multiple APIs, OAuth flows, and client libraries. This Skill provides a single authenticated CLI that covers Gmail, Calendar, Drive, Contacts, Sheets, and Docs with consistent JSON output. ## Core Features & Use Cases - Gmail Operations: Search with Gmail query syntax, read full messages, send plain or HTML email, reply in threads, and manage labels. - Calendar & Drive: List, create, and delete calendar events with timezone-aware ISO 8601 times, and search Drive files by text or raw query. - Sheets, Docs & Contacts: Read and write spreadsheet ranges, append rows, extract Google Docs text, and list contacts. - Use Case: Ask the agent to find unread emails from your manager this week, summarize them, and create a follow-up calendar event — all through one authenticated CLI. ## Quick Start Ask the agent to check your Google authentication status and then search your Gmail for unread messages from the last day.

Frequently Asked Questions about google-workspace

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I search and send Gmail from the command line?▼

Use the google_api.py CLI with subcommands like gmail search "is:unread" to find messages and gmail send --to --subject --body to send them. All results return as JSON, and replies automatically thread with In-Reply-To headers.

How do I set up Google Workspace OAuth for a CLI tool?▼

Create a Desktop-app OAuth client in Google Cloud Console, enable the Gmail, Calendar, Drive, Sheets, Docs, and People APIs, then run setup.py with --client-secret, --auth-url, and --auth-code. The token is stored at ~/.hermes/google_token.json and refreshes automatically.

Can I use this with only Gmail and not the other Google APIs?▼

Yes, you can limit OAuth scopes with the --services flag during setup, such as --services email,calendar. If you only need email, the documentation recommends the himalaya skill with a Gmail App Password instead, which requires no Google Cloud project.

Why does Google OAuth fail with Error 403 access_denied?▼

Error 403 access_denied means your Google account is not listed as a test user for an OAuth app still in Testing mode. Add your account under Audience → Test users in the Google Cloud Console, then retry the authorization URL.

What happens if the gws CLI is not installed?▼

The google_api.py script automatically falls back to the bundled Python implementation using google-api-python-client. Both paths share the same token file and produce the same JSON output contract, so no workflow changes are needed.