Unified Google Workspace integration for managing email, calendar, files, and communication across multiple accounts
Unified Google Workspace integration for managing email, calendar, files, and communication across three accounts:
| Alias | Purpose | |
|---|---|---|
psd |
Work | PSD district email |
kh |
Personal | Personal Gmail |
hrg |
Business | Consulting & real estate |
Geoffrey will infer the appropriate account from context:
psdkhhrg| Script | Description | Example |
|---|---|---|
list_messages.js |
List inbox, unread, by label | "show unread psd emails" |
read_message.js |
Get full message content | "read that email" |
send_message.js |
Compose and send | "send email to John about..." |
send_with_attachment.js |
Send with file attachment | "email report with PDF attached" |
search_messages.js |
Search with Gmail operators | "find emails from Sarah last week" |
get_unread_summary.js |
Unread count + top messages | "how many unread emails?" |
| Script | Description | Example |
|---|---|---|
list_events.js |
Get upcoming events | "what's on my calendar today" |
create_event.js |
Schedule new events | "schedule meeting tomorrow at 2pm" |
update_event.js |
Modify existing events | "move that meeting to 3pm" |
search_events.js |
Find by criteria | "find meetings with Mike" |
| Script | Description | Example |
|---|---|---|
list_files.js |
Browse/search files | "find budget spreadsheet" |
read_file.js |
Get file content | "show me that document" |
create_file.js |
Create new docs/sheets | "create a new spreadsheet" |
upload_file.js |
Upload local file | "upload this to drive" |
| Script | Description | Example |
|---|---|---|
list_tasks.js |
Get task lists | "show my google tasks" |
create_task.js |
Add new task | "add task to google tasks" |
complete_task.js |
Mark done | "complete that task" |
| Script | Description | Example |
|---|---|---|
list_spaces.js |
Get available spaces | "list chat spaces" |
send_message.js |
Post to space | "send message to team chat" |
read_messages.js |
Get chat history | "show recent chat messages" |
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 });
// ...
}
All scripts return JSON:
{
"success": true,
"account": "psd",
"data": { ... },
"metadata": {
"timestamp": "2024-01-15T10:30:00Z",
"count": 5
}
}
{
"error": "Token expired",
"account": "psd",
"action": "Run: node token_manager.js refresh psd"
}
Before using this skill:
auth/GOOGLE_CLOUD_SETUP.md)~/Library/Mobile Documents/com~apple~CloudDocs/Geoffrey/secrets/.envSome operations work across accounts:
Support standard Gmail search:
from: - senderto: - recipientsubject: - subject linehas:attachment - with attachmentsafter: / before: - date rangeis:unread - unread onlylabel: - by labelExample: "search psd email for from:boss@psd.org after:2024-01-01 has:attachment"