{
  "name": "google-services",
  "title": "Google Services Integration",
  "description": "Gmail, Calendar, and Google services integration: search, read, send emails; list, create, update events",
  "guid": "sk_plat_goog",
  "category": "Integrations",
  "requiredTools": [
    "gmail_search",
    "gmail_read",
    "gmail_send",
    "gmail_reply",
    "calendar_list",
    "calendar_events",
    "calendar_create",
    "calendar_update",
    "calendar_delete",
    "service_call"
  ],
  "content": "# Google Services Integration\n\n## Overview\nConnect to the user's Google account to read and manage their Gmail and Google Calendar. The user must first connect their Google account via the `connector_manage` tool or the `/connect google` command in the web interface.\n\n## Setup\n1. Use `connector_manage` with `{action: \"connect\", provider: \"google\"}` - this opens a Google OAuth popup\n2. The user grants access to Gmail and Calendar\n3. Check status with `connector_manage` `{action: \"status\", provider: \"google\"}`\n\n## Gmail Tools\n\nFor composing well-formatted messages - HTML style rules, image handling, reply-quoting - see the [email](email.md) skill; it covers both this Gmail channel and the platform email channel.\n\n### gmail_search\nSearch emails using Gmail search syntax. Supports pagination - pass `page_token` from a previous result to get the next page.\n- `from:alice@example.com` - emails from a specific sender\n- `subject:meeting` - emails with \"meeting\" in subject\n- `is:unread` - unread emails\n- `after:2025/01/01 before:2025/02/01` - date range\n- `has:attachment` - emails with attachments\n- Combine: `from:boss subject:review is:unread`\n- Default 10 results per page, max 50. Use `page_token` to fetch subsequent pages.\n\n### gmail_read\nRead the full content of an email by its message ID (from search results).\n\n### gmail_send\nSend a new email. **Requires user approval by default** - the user will be asked to confirm before the email is sent. The user can disable approval requirements via their connection settings.\n\n### gmail_reply\nReply to an existing email thread. Also requires approval by default.\n\n## Calendar Tools\n\n### calendar_list\nList all calendars the user has access to (personal, shared, etc.).\n\n### calendar_events\nList events from a calendar. Defaults to upcoming events from the primary calendar. Supports:\n- Time range filtering (`time_min`, `time_max` as ISO 8601)\n- Free text search (`query`)\n- Specific calendar (`calendar_id`)\n\n### calendar_create\nCreate a new event. **Requires user approval by default.** Supports:\n- Timed events (`start_datetime`, `end_datetime`)\n- All-day events (`start_date`, `end_date`)\n- Location, description, attendees, timezone\n\n### calendar_update\nUpdate an existing event by its event ID. Requires approval.\n\n### calendar_delete\nDelete an event by its event ID. Requires approval.\n\n## Permission System\nEach service (gmail, calendar) has independent permission settings:\n- **read_enabled**: on/off toggle for read access (default: on)\n- **write_enabled**: on/off toggle for write access (default: on)\n- **write_requires_approval**: per-call approval for each write action (default: on)\n\nReads never require per-call approval. Writes require approval by default - each email send or calendar event creation needs user confirmation. The user can disable per-call approval via `connector_manage` with `{action: \"permissions\", provider: \"google\"}` or the `/connect google settings` command.\n\n## Disconnecting\nUse `connector_manage` with `{action: \"disconnect\", provider: \"google\"}` to revoke access and remove stored tokens."
}
