Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

### Added

- Meet: add `meet create/get/update/end/history/participants` commands for Google Meet meeting spaces and conference records. (#468) — thanks @regaw-leinad.
- Forms: add `forms publish` to publish/unpublish existing forms and return the responder URL for automated form creation flows. (#565 / #564) — thanks @bogdanovich.

### Fixed
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# gogcli

`gog` is a script-friendly Google CLI for Gmail, Calendar, Drive, Docs, Sheets,
Slides, Forms, Apps Script, Contacts, Tasks, People, Classroom, Chat, and
Slides, Forms, Meet, Apps Script, Contacts, Tasks, People, Classroom, Chat, and
Workspace admin flows.

It is built for terminals, shell scripts, CI, and coding agents:
Expand Down Expand Up @@ -303,7 +303,7 @@ accounts.

Common user services:

- Gmail, Calendar, Drive, Docs, Sheets, Slides, Forms, Apps Script
- Gmail, Calendar, Drive, Docs, Sheets, Slides, Forms, Meet, Apps Script
- Contacts, People, Tasks, Classroom
- Chat for Workspace accounts
- Backup and local utility commands
Expand Down Expand Up @@ -331,6 +331,7 @@ Generated service scope table:
| sheets | yes | Sheets API, Drive API | `https://www.googleapis.com/auth/drive`<br>`https://www.googleapis.com/auth/spreadsheets` | Export via Drive |
| people | yes | People API | `profile` | OIDC profile scope |
| forms | yes | Forms API | `https://www.googleapis.com/auth/forms.body`<br>`https://www.googleapis.com/auth/forms.responses.readonly` | |
| meet | yes | Meet REST API | `https://www.googleapis.com/auth/meetings.space.created`<br>`https://www.googleapis.com/auth/meetings.space.readonly`<br>`https://www.googleapis.com/auth/meetings.space.settings` | |
| appscript | yes | Apps Script API | `https://www.googleapis.com/auth/script.projects`<br>`https://www.googleapis.com/auth/script.deployments`<br>`https://www.googleapis.com/auth/script.processes` | |
| ads | yes | Google Ads API | `https://www.googleapis.com/auth/adwords` | OAuth scope only |
| groups | no | Cloud Identity API | `https://www.googleapis.com/auth/cloud-identity.groups.readonly` | Workspace only |
Expand Down
7 changes: 7 additions & 0 deletions docs/commands.generated.md
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,13 @@ Generated from `gog schema --json`.
- [`gog logout <email> [flags]`](commands/gog-logout.md) - Remove a stored refresh token (alias for 'auth remove')
- [`gog ls (list) [flags]`](commands/gog-ls.md) - List Drive files (alias for 'drive ls')
- [`gog me [flags]`](commands/gog-me.md) - Show your profile (alias for 'people me')
- [`gog meet (meeting) <command> [flags]`](commands/gog-meet.md) - Google Meet
- [`gog meet (meeting) create (new) [flags]`](commands/gog-meet-create.md) - Create a meeting space
- [`gog meet (meeting) end (stop) <meeting-code>`](commands/gog-meet-end.md) - End active conference
- [`gog meet (meeting) get (info,show) <meeting-code>`](commands/gog-meet-get.md) - Get a meeting space
- [`gog meet (meeting) history (calls,past) <meeting-code> [flags]`](commands/gog-meet-history.md) - List past calls in a meeting
- [`gog meet (meeting) participants (people,attendees,who) <meeting-code> [flags]`](commands/gog-meet-participants.md) - List participants from the latest call
- [`gog meet (meeting) update (edit,set) <meeting-code> [flags]`](commands/gog-meet-update.md) - Update space config
- [`gog open (browse) <target> [flags]`](commands/gog-open.md) - Print a best-effort web URL for a Google URL/ID (offline)
- [`gog people (person) <command> [flags]`](commands/gog-people.md) - Google People
- [`gog people (person) get (info,show) <userId>`](commands/gog-people-get.md) - Get a user profile by ID
Expand Down
10 changes: 9 additions & 1 deletion docs/commands/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Every `gog` command has a generated docs page. The source of truth is the live CLI schema; run `make docs-commands` after changing command names, flags, help text, aliases, or arguments.

Generated pages: 471.
Generated pages: 478.

## Top-level Commands

Expand All @@ -29,6 +29,7 @@ Generated pages: 471.
- [gog logout](gog-logout.md) - Remove a stored refresh token (alias for 'auth remove')
- [gog ls](gog-ls.md) - List Drive files (alias for 'drive ls')
- [gog me](gog-me.md) - Show your profile (alias for 'people me')
- [gog meet](gog-meet.md) - Google Meet
- [gog open](gog-open.md) - Print a best-effort web URL for a Google URL/ID (offline)
- [gog people](gog-people.md) - Google People
- [gog schema](gog-schema.md) - Machine-readable command/flag schema
Expand Down Expand Up @@ -417,6 +418,13 @@ Generated pages: 471.
- [gog logout](gog-logout.md) - Remove a stored refresh token (alias for 'auth remove')
- [gog ls](gog-ls.md) - List Drive files (alias for 'drive ls')
- [gog me](gog-me.md) - Show your profile (alias for 'people me')
- [gog meet](gog-meet.md) - Google Meet
- [gog meet create](gog-meet-create.md) - Create a meeting space
- [gog meet end](gog-meet-end.md) - End active conference
- [gog meet get](gog-meet-get.md) - Get a meeting space
- [gog meet history](gog-meet-history.md) - List past calls in a meeting
- [gog meet participants](gog-meet-participants.md) - List participants from the latest call
- [gog meet update](gog-meet-update.md) - Update space config
- [gog open](gog-open.md) - Print a best-effort web URL for a Google URL/ID (offline)
- [gog people](gog-people.md) - Google People
- [gog people get](gog-people-get.md) - Get a user profile by ID
Expand Down
2 changes: 1 addition & 1 deletion docs/commands/gog-auth-add.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ gog auth add <email> [flags]
| `--remote` | `bool` | | Remote/server-friendly manual flow (print URL, then exchange code) |
| `--results-only` | `bool` | | In JSON mode, emit only the primary result (drops envelope fields like nextPageToken) |
| `--select`<br>`--pick`<br>`--project` | `string` | | In JSON mode, select comma-separated fields (best-effort; supports dot paths). Desire path: use --fields for most commands. |
| `--services` | `string` | user | Services to authorize: user\|all or comma-separated gmail,calendar,chat,classroom,drive,docs,slides,contacts,tasks,sheets,people,forms,appscript,ads (Keep uses service account: gog auth service-account set) |
| `--services` | `string` | user | Services to authorize: user\|all or comma-separated gmail,calendar,chat,classroom,drive,docs,slides,contacts,tasks,sheets,people,forms,meet,appscript,ads (Keep uses service account: gog auth service-account set) |
| `--step` | `int` | | Remote auth step: 1=print URL, 2=exchange code |
| `--timeout` | `time.Duration` | | Authorization timeout (manual flows default to 5m) |
| `-v`<br>`--verbose` | `bool` | | Enable verbose logging |
Expand Down
2 changes: 1 addition & 1 deletion docs/commands/gog-auth-manage.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ gog auth manage (login) [flags]
| `--redirect-host` | `string` | | Hostname for OAuth callback; builds https://{host}/oauth2/callback |
| `--results-only` | `bool` | | In JSON mode, emit only the primary result (drops envelope fields like nextPageToken) |
| `--select`<br>`--pick`<br>`--project` | `string` | | In JSON mode, select comma-separated fields (best-effort; supports dot paths). Desire path: use --fields for most commands. |
| `--services` | `string` | user | Services to authorize: user\|all or comma-separated gmail,calendar,chat,classroom,drive,docs,slides,contacts,tasks,sheets,people,forms,appscript,ads (Keep uses service account: gog auth service-account set) |
| `--services` | `string` | user | Services to authorize: user\|all or comma-separated gmail,calendar,chat,classroom,drive,docs,slides,contacts,tasks,sheets,people,forms,meet,appscript,ads (Keep uses service account: gog auth service-account set) |
| `--timeout` | `time.Duration` | 10m | Server timeout duration |
| `-v`<br>`--verbose` | `bool` | | Enable verbose logging |
| `--version` | `kong.VersionFlag` | | Print version and exit |
Expand Down
2 changes: 1 addition & 1 deletion docs/commands/gog-login.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ gog login <email> [flags]
| `--remote` | `bool` | | Remote/server-friendly manual flow (print URL, then exchange code) |
| `--results-only` | `bool` | | In JSON mode, emit only the primary result (drops envelope fields like nextPageToken) |
| `--select`<br>`--pick`<br>`--project` | `string` | | In JSON mode, select comma-separated fields (best-effort; supports dot paths). Desire path: use --fields for most commands. |
| `--services` | `string` | user | Services to authorize: user\|all or comma-separated gmail,calendar,chat,classroom,drive,docs,slides,contacts,tasks,sheets,people,forms,appscript,ads (Keep uses service account: gog auth service-account set) |
| `--services` | `string` | user | Services to authorize: user\|all or comma-separated gmail,calendar,chat,classroom,drive,docs,slides,contacts,tasks,sheets,people,forms,meet,appscript,ads (Keep uses service account: gog auth service-account set) |
| `--step` | `int` | | Remote auth step: 1=print URL, 2=exchange code |
| `--timeout` | `time.Duration` | | Authorization timeout (manual flows default to 5m) |
| `-v`<br>`--verbose` | `bool` | | Enable verbose logging |
Expand Down
44 changes: 44 additions & 0 deletions docs/commands/gog-meet-create.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# `gog meet create`

> Generated from `gog schema --json`. Do not edit this page by hand; run `make docs-commands`.

Create a meeting space

## Usage

```bash
gog meet (meeting) create (new) [flags]
```

## Parent

- [gog meet](gog-meet.md)

## Flags

| Flag | Type | Default | Help |
| --- | --- | --- | --- |
| `--access`<br>`--access-type` | `string` | trusted | Access type: open, trusted, or restricted |
| `--access-token` | `string` | | Use provided access token directly (bypasses stored refresh tokens; token expires in ~1h) |
| `-a`<br>`--account`<br>`--acct` | `string` | | Account email for API commands (gmail/calendar/chat/classroom/drive/docs/slides/contacts/tasks/people/sheets/forms/appscript/ads) |
| `--client` | `string` | | OAuth client name (selects stored credentials + token bucket) |
| `--color` | `string` | auto | Color output: auto\|always\|never |
| `--disable-commands` | `string` | | Comma-separated list of disabled commands; dot paths allowed |
| `-n`<br>`--dry-run`<br>`--dryrun`<br>`--noop`<br>`--preview` | `bool` | | Do not make changes; print intended actions and exit successfully |
| `--enable-commands` | `string` | | Comma-separated list of enabled commands; dot paths allowed (restricts CLI) |
| `-y`<br>`--force`<br>`--assume-yes`<br>`--yes` | `bool` | | Skip confirmations for destructive commands |
| `--gmail-no-send` | `bool` | false | Block Gmail send operations (agent safety) |
| `-h`<br>`--help` | `kong.helpFlag` | | Show context-sensitive help. |
| `-j`<br>`--json`<br>`--machine` | `bool` | false | Output JSON to stdout (best for scripting) |
| `--no-input`<br>`--non-interactive`<br>`--noninteractive` | `bool` | | Never prompt; fail instead (useful for CI) |
| `--open`<br>`--browser` | `bool` | | Open the meeting in a browser after creation |
| `-p`<br>`--plain`<br>`--tsv` | `bool` | false | Output stable, parseable text to stdout (TSV; no colors) |
| `--results-only` | `bool` | | In JSON mode, emit only the primary result (drops envelope fields like nextPageToken) |
| `--select`<br>`--pick`<br>`--project` | `string` | | In JSON mode, select comma-separated fields (best-effort; supports dot paths). Desire path: use --fields for most commands. |
| `-v`<br>`--verbose` | `bool` | | Enable verbose logging |
| `--version` | `kong.VersionFlag` | | Print version and exit |

## See Also

- [gog meet](gog-meet.md)
- [Command index](README.md)
42 changes: 42 additions & 0 deletions docs/commands/gog-meet-end.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# `gog meet end`

> Generated from `gog schema --json`. Do not edit this page by hand; run `make docs-commands`.

End active conference

## Usage

```bash
gog meet (meeting) end (stop) <meeting-code>
```

## Parent

- [gog meet](gog-meet.md)

## Flags

| Flag | Type | Default | Help |
| --- | --- | --- | --- |
| `--access-token` | `string` | | Use provided access token directly (bypasses stored refresh tokens; token expires in ~1h) |
| `-a`<br>`--account`<br>`--acct` | `string` | | Account email for API commands (gmail/calendar/chat/classroom/drive/docs/slides/contacts/tasks/people/sheets/forms/appscript/ads) |
| `--client` | `string` | | OAuth client name (selects stored credentials + token bucket) |
| `--color` | `string` | auto | Color output: auto\|always\|never |
| `--disable-commands` | `string` | | Comma-separated list of disabled commands; dot paths allowed |
| `-n`<br>`--dry-run`<br>`--dryrun`<br>`--noop`<br>`--preview` | `bool` | | Do not make changes; print intended actions and exit successfully |
| `--enable-commands` | `string` | | Comma-separated list of enabled commands; dot paths allowed (restricts CLI) |
| `-y`<br>`--force`<br>`--assume-yes`<br>`--yes` | `bool` | | Skip confirmations for destructive commands |
| `--gmail-no-send` | `bool` | false | Block Gmail send operations (agent safety) |
| `-h`<br>`--help` | `kong.helpFlag` | | Show context-sensitive help. |
| `-j`<br>`--json`<br>`--machine` | `bool` | false | Output JSON to stdout (best for scripting) |
| `--no-input`<br>`--non-interactive`<br>`--noninteractive` | `bool` | | Never prompt; fail instead (useful for CI) |
| `-p`<br>`--plain`<br>`--tsv` | `bool` | false | Output stable, parseable text to stdout (TSV; no colors) |
| `--results-only` | `bool` | | In JSON mode, emit only the primary result (drops envelope fields like nextPageToken) |
| `--select`<br>`--pick`<br>`--project` | `string` | | In JSON mode, select comma-separated fields (best-effort; supports dot paths). Desire path: use --fields for most commands. |
| `-v`<br>`--verbose` | `bool` | | Enable verbose logging |
| `--version` | `kong.VersionFlag` | | Print version and exit |

## See Also

- [gog meet](gog-meet.md)
- [Command index](README.md)
42 changes: 42 additions & 0 deletions docs/commands/gog-meet-get.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# `gog meet get`

> Generated from `gog schema --json`. Do not edit this page by hand; run `make docs-commands`.

Get a meeting space

## Usage

```bash
gog meet (meeting) get (info,show) <meeting-code>
```

## Parent

- [gog meet](gog-meet.md)

## Flags

| Flag | Type | Default | Help |
| --- | --- | --- | --- |
| `--access-token` | `string` | | Use provided access token directly (bypasses stored refresh tokens; token expires in ~1h) |
| `-a`<br>`--account`<br>`--acct` | `string` | | Account email for API commands (gmail/calendar/chat/classroom/drive/docs/slides/contacts/tasks/people/sheets/forms/appscript/ads) |
| `--client` | `string` | | OAuth client name (selects stored credentials + token bucket) |
| `--color` | `string` | auto | Color output: auto\|always\|never |
| `--disable-commands` | `string` | | Comma-separated list of disabled commands; dot paths allowed |
| `-n`<br>`--dry-run`<br>`--dryrun`<br>`--noop`<br>`--preview` | `bool` | | Do not make changes; print intended actions and exit successfully |
| `--enable-commands` | `string` | | Comma-separated list of enabled commands; dot paths allowed (restricts CLI) |
| `-y`<br>`--force`<br>`--assume-yes`<br>`--yes` | `bool` | | Skip confirmations for destructive commands |
| `--gmail-no-send` | `bool` | false | Block Gmail send operations (agent safety) |
| `-h`<br>`--help` | `kong.helpFlag` | | Show context-sensitive help. |
| `-j`<br>`--json`<br>`--machine` | `bool` | false | Output JSON to stdout (best for scripting) |
| `--no-input`<br>`--non-interactive`<br>`--noninteractive` | `bool` | | Never prompt; fail instead (useful for CI) |
| `-p`<br>`--plain`<br>`--tsv` | `bool` | false | Output stable, parseable text to stdout (TSV; no colors) |
| `--results-only` | `bool` | | In JSON mode, emit only the primary result (drops envelope fields like nextPageToken) |
| `--select`<br>`--pick`<br>`--project` | `string` | | In JSON mode, select comma-separated fields (best-effort; supports dot paths). Desire path: use --fields for most commands. |
| `-v`<br>`--verbose` | `bool` | | Enable verbose logging |
| `--version` | `kong.VersionFlag` | | Print version and exit |

## See Also

- [gog meet](gog-meet.md)
- [Command index](README.md)
46 changes: 46 additions & 0 deletions docs/commands/gog-meet-history.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# `gog meet history`

> Generated from `gog schema --json`. Do not edit this page by hand; run `make docs-commands`.

List past calls in a meeting

## Usage

```bash
gog meet (meeting) history (calls,past) <meeting-code> [flags]
```

## Parent

- [gog meet](gog-meet.md)

## Flags

| Flag | Type | Default | Help |
| --- | --- | --- | --- |
| `--access-token` | `string` | | Use provided access token directly (bypasses stored refresh tokens; token expires in ~1h) |
| `-a`<br>`--account`<br>`--acct` | `string` | | Account email for API commands (gmail/calendar/chat/classroom/drive/docs/slides/contacts/tasks/people/sheets/forms/appscript/ads) |
| `--all`<br>`--all-pages`<br>`--allpages` | `bool` | | Fetch all pages |
| `--client` | `string` | | OAuth client name (selects stored credentials + token bucket) |
| `--color` | `string` | auto | Color output: auto\|always\|never |
| `--disable-commands` | `string` | | Comma-separated list of disabled commands; dot paths allowed |
| `-n`<br>`--dry-run`<br>`--dryrun`<br>`--noop`<br>`--preview` | `bool` | | Do not make changes; print intended actions and exit successfully |
| `--enable-commands` | `string` | | Comma-separated list of enabled commands; dot paths allowed (restricts CLI) |
| `--fail-empty`<br>`--non-empty`<br>`--require-results` | `bool` | | Exit with code 3 if no results |
| `-y`<br>`--force`<br>`--assume-yes`<br>`--yes` | `bool` | | Skip confirmations for destructive commands |
| `--gmail-no-send` | `bool` | false | Block Gmail send operations (agent safety) |
| `-h`<br>`--help` | `kong.helpFlag` | | Show context-sensitive help. |
| `-j`<br>`--json`<br>`--machine` | `bool` | false | Output JSON to stdout (best for scripting) |
| `--max`<br>`--limit` | `int` | 20 | Max results |
| `--no-input`<br>`--non-interactive`<br>`--noninteractive` | `bool` | | Never prompt; fail instead (useful for CI) |
| `--page`<br>`--cursor` | `string` | | Page token |
| `-p`<br>`--plain`<br>`--tsv` | `bool` | false | Output stable, parseable text to stdout (TSV; no colors) |
| `--results-only` | `bool` | | In JSON mode, emit only the primary result (drops envelope fields like nextPageToken) |
| `--select`<br>`--pick`<br>`--project` | `string` | | In JSON mode, select comma-separated fields (best-effort; supports dot paths). Desire path: use --fields for most commands. |
| `-v`<br>`--verbose` | `bool` | | Enable verbose logging |
| `--version` | `kong.VersionFlag` | | Print version and exit |

## See Also

- [gog meet](gog-meet.md)
- [Command index](README.md)
Loading