gog
Use
gog
for Gmail/Calendar/Drive/Contacts/Sheets/Docs. Requires OAuth setup.
Setup (once)
gog auth credentials /path/to/client_secret.json
gog auth add you@gmail.com --services gmail,calendar,drive,contacts,docs,sheets
gog auth list
Common commands
Gmail search:
gog gmail search 'newer_than:7d' --max 10
Gmail messages search (per email, ignores threading):
gog gmail messages search "in:inbox from:ryanair.com" --max 20 --account you@example.com
Gmail send (plain):
gog gmail send --to a@b.com --subject "Hi" --body "Hello"
Gmail send (multi-line):
gog gmail send --to a@b.com --subject "Hi" --body-file ./message.txt
Gmail send (stdin):
gog gmail send --to a@b.com --subject "Hi" --body-file -
Gmail send (HTML):
gog gmail send --to a@b.com --subject "Hi" --body-html "
Hello
"
Gmail draft:
gog gmail drafts create --to a@b.com --subject "Hi" --body-file ./message.txt
Gmail send draft:
gog gmail drafts send
Gmail reply:
gog gmail send --to a@b.com --subject "Re: Hi" --body "Reply" --reply-to-message-id
Calendar list events:
gog calendar events --from --to
Calendar create event:
gog calendar create --summary "Title" --from --to
Calendar create with color:
gog calendar create --summary "Title" --from --to --event-color 7
Calendar update event:
gog calendar update --summary "New Title" --event-color 4
Calendar show colors:
gog calendar colors
Drive search:
gog drive search "query" --max 10
Contacts:
gog contacts list --max 20
Sheets get:
gog sheets get "Tab!A1:D10" --json
Sheets update:
gog sheets update "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED
Sheets append:
gog sheets append "Tab!A:C" --values-json '[["x","y","z"]]' --insert INSERT_ROWS
Sheets clear:
gog sheets clear "Tab!A2:Z"
Sheets metadata:
gog sheets metadata --json
Docs export:
gog docs export --format txt --out /tmp/doc.txt
Docs cat:
gog docs cat
Calendar Colors
Use
gog calendar colors
to see all available event colors (IDs 1-11)
Add colors to events with
--event-color
flag
Event color IDs (from
gog calendar colors
output):
1: #a4bdfc
2: #7ae7bf
3: #dbadff
4: #ff887c
5: #fbd75b
6: #ffb878
7: #46d6db
8: #e1e1e1
9: #5484ed
10: #51b749
11: #dc2127
Email Formatting
Prefer plain text. Use
--body-file
for multi-paragraph messages (or
--body-file -
for stdin).
Same
--body-file
pattern works for drafts and replies.
--body
does not unescape
\n
. If you need inline newlines, use a heredoc or
$'Line 1\n\nLine 2'
.
Use
--body-html
only when you need rich formatting.
HTML tags:
for paragraphs,
for line breaks,
for bold,
for italic,
for links,