---
name: composio-community/Google Suite CLI (gogcli)
source: https://app.decimal.ai/s/composio-community-google-suite-cli-gogcli@1/SKILL.md
source_sha256: c85b7c772cd1
---

# gogcli — Google in your terminal

Fast, script-friendly CLI for Gmail, Calendar, Chat, Classroom, Drive, Docs, Slides, Sheets, Forms, Apps Script, Contacts, Tasks, People, Admin, Groups, and Keep.

- **Repo**: https://github.com/steipete/gogcli
- **Author**: [@steipete](https://github.com/steipete)

## Installation

```bash
brew install gogcli
```

Or build from source:

```bash
git clone https://github.com/steipete/gogcli.git
cd gogcli && make
```

## Authentication

Requires OAuth2 credentials from Google Cloud Console:

```bash
# Store OAuth client credentials (one-time)
gog auth credentials ~/Downloads/client_secret_....json

# Authorize an account
gog auth add you@gmail.com

# Set default account
export GOG_ACCOUNT=you@gmail.com

# Verify
gog gmail labels list
```

For headless/CI environments, use `--manual` or `--remote` auth flows, or pass `--access-token` directly.

## Key Commands

### Gmail

```bash
gog gmail search "from:boss subject:urgent"
gog gmail search "is:unread" --max 10 --json
gog gmail send --to recipient@example.com --subject "Hello" --body "Message body"
gog gmail send --to recipient@example.com --subject "Report" --attach report.pdf
gog gmail labels list
gog gmail drafts list
```

### Calendar

```bash
gog calendar list                          # today's events
gog calendar list --days 7 --json          # next 7 days, JSON output
gog calendar create --title "Meeting" --start "2025-01-15T10:00:00" --duration 1h
gog calendar delete <eventId>
gog calendar freebusy --emails "a@co.com,b@co.com" --days 3
```

### Drive

```bash
gog drive list
gog drive search "quarterly report"
gog drive upload ./file.pdf
gog drive download <fileId>
gog drive share <fileId> --email user@example.com --role writer
```

### Contacts

```bash
gog contacts search "John"
gog contacts create --name "Jane Doe" --email jane@example.com --phone "+1234567890"
gog contacts update <resourceName> --title "CTO" --company "Acme"
```

### Sheets

```bash
gog sheets read <spreadsheetId> --range "Sheet1!A1:D10" --json
gog sheets write <spreadsheetId> --range "Sheet1!A1" --values '[["Name","Score"],["Alice",95]]'
gog sheets create --title "New Sheet"
```

### Tasks

```bash
gog tasks list
gog tasks add "Buy groceries" --due "2025-01-20"
gog tasks done <taskId>
```

### Chat (Workspace only)

```bash
gog chat spaces list
gog chat send --space <spaceId> --message "Hello team"
```

### Docs & Slides

```bash
gog docs create --title "Meeting Notes"
gog docs export <docId> --format markdown
gog slides create --title "Q4 Presentation"
```

## Output Modes

- Default: human-readable text
- `--json`: structured JSON output for scripting/agents
- `GOG_HELP=full gog --help`: full expanded command list

## Multiple Accounts

```bash
gog auth add work@company.com
gog auth add personal@gmail.com
gog --account work@company.com gmail search "project update"
```

## Agent-Friendly Features

- JSON output with `--json` flag on all commands
- Command allowlist via `GOG_ALLOWED_COMMANDS` for sandboxed/agent runs
- Non-interactive auth flows (`--manual`, `--remote`, `--access-token`)
- Auto-refreshing OAuth tokens
- Structured exit codes