google-workspace

Unified Google Workspace integration for managing email, calendar, files, and communication across multiple accounts

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "google-workspace" with this command: npx skills add krishagel/geoffrey/krishagel-geoffrey-google-workspace

Google Workspace Skill

Overview

Unified Google Workspace integration for managing email, calendar, files, and communication across three accounts:

AliasPurposeEmail
psdWorkPSD district email
khPersonalPersonal Gmail
hrgBusinessConsulting & real estate

Account Selection

Explicit

  • "check my psd email"
  • "send email from hrg"
  • "kh calendar for tomorrow"

Inferred

Geoffrey will infer the appropriate account from context:

  • Work-related → psd
  • Personal matters → kh
  • Business/real estate → hrg

Available Operations

Gmail

ScriptDescriptionExample
list_messages.jsList inbox, unread, by label"show unread psd emails"
read_message.jsGet full message content"read that email"
send_message.jsCompose and send"send email to John about..."
send_with_attachment.jsSend with file attachment"email report with PDF attached"
search_messages.jsSearch with Gmail operators"find emails from Sarah last week"
get_unread_summary.jsUnread count + top messages"how many unread emails?"

Calendar

ScriptDescriptionExample
list_events.jsGet upcoming events"what's on my calendar today"
create_event.jsSchedule new events"schedule meeting tomorrow at 2pm"
update_event.jsModify existing events"move that meeting to 3pm"
search_events.jsFind by criteria"find meetings with Mike"

Drive

ScriptDescriptionExample
list_files.jsBrowse/search files"find budget spreadsheet"
read_file.jsGet file content"show me that document"
create_file.jsCreate new docs/sheets"create a new spreadsheet"
upload_file.jsUpload local file"upload this to drive"

Tasks

ScriptDescriptionExample
list_tasks.jsGet task lists"show my google tasks"
create_task.jsAdd new task"add task to google tasks"
complete_task.jsMark done"complete that task"

Chat

ScriptDescriptionExample
list_spaces.jsGet available spaces"list chat spaces"
send_message.jsPost to space"send message to team chat"
read_messages.jsGet chat history"show recent chat messages"

Usage Patterns

Running Scripts

All scripts use the token_manager for authentication:

const { getAuthClient } = require('./auth/token_manager');

async function main() {
  const account = process.argv[2] || 'psd';
  const auth = await getAuthClient(account);

  // Use auth with Google API
  const gmail = google.gmail({ version: 'v1', auth });
  // ...
}

Output Format

All scripts return JSON:

{
  "success": true,
  "account": "psd",
  "data": { ... },
  "metadata": {
    "timestamp": "2024-01-15T10:30:00Z",
    "count": 5
  }
}

Error Handling

{
  "error": "Token expired",
  "account": "psd",
  "action": "Run: node token_manager.js refresh psd"
}

Setup Required

Before using this skill:

  1. Complete Google Cloud Console setup (see auth/GOOGLE_CLOUD_SETUP.md)
  2. Add credentials to ~/Library/Mobile Documents/com~apple~CloudDocs/Geoffrey/secrets/.env
  3. Authenticate all three accounts
  4. For PSD account: allowlist OAuth app in Google Admin

Cross-Account Operations

Some operations work across accounts:

  • "Forward this to my personal email"
  • "Copy this file to my work drive"
  • "Add to both calendars"

Gmail Search Operators

Support standard Gmail search:

  • from: - sender
  • to: - recipient
  • subject: - subject line
  • has:attachment - with attachments
  • after: / before: - date range
  • is:unread - unread only
  • label: - by label

Example: "search psd email for from:boss@psd.org after:2024-01-01 has:attachment"

Notes

  • Access tokens expire after 1 hour (auto-refreshed)
  • Refresh tokens don't expire unless revoked
  • All API calls are rate-limited by Google
  • Keep API has limited availability (may not be enabled)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

morning-briefing

No summary provided by upstream source.

Repository SourceNeeds Review
General

browser-control

No summary provided by upstream source.

Repository SourceNeeds Review
General

omnifocus-manager

No summary provided by upstream source.

Repository SourceNeeds Review