mog — Microsoft Ops Gadget
CLI for Microsoft 365: Mail, Calendar, OneDrive, Contacts, Tasks, Word, PowerPoint, Excel, OneNote.
The Microsoft counterpart to gog (Google Ops Gadget). Same patterns, different cloud.
Quick Reference
For comprehensive usage, run:
bash
mog --ai-help
This outputs the full dashdash-compliant documentation including:
- •Setup/Prerequisites
- •All commands and options
- •Date/time formats
- •Examples (positive and negative)
- •Troubleshooting
- •Slug system explanation
- •gog compatibility notes
Modules
| Module | Commands |
|---|---|
| search, get, send, folders, drafts, attachment | |
| calendar | list, create, get, update, delete, calendars, respond, freebusy, acl |
| drive | ls, search, download, upload, mkdir, move, rename, copy, rm |
| contacts | list, search, get, create, update, delete, directory |
| tasks | lists, list, add, done, undo, delete, clear |
| word | list, export, copy |
| ppt | list, export, copy |
| excel | list, get, update, append, create, metadata, tables, add-sheet, clear, copy, export |
| onenote | notebooks, sections, pages, get, create-notebook, create-section, create-page, delete, search |
Quick Start
bash
# Mail mog mail search "from:someone" --max 10 mog mail send --to a@b.com --subject "Hi" --body "Hello" mog mail send --to a@b.com --subject "Report" --body-file report.md mog mail send --to a@b.com --subject "Newsletter" --body-html "<h1>Hello</h1>" cat draft.txt | mog mail send --to a@b.com --subject "Hi" --body-file - # Calendar mog calendar list mog calendar create --summary "Meeting" --from 2025-01-15T10:00:00 --to 2025-01-15T11:00:00 mog calendar freebusy alice@example.com bob@example.com # Drive mog drive ls mog drive upload ./file.pdf mog drive download <slug> --out ./file.pdf # Tasks mog tasks list mog tasks add "Buy milk" --due tomorrow mog tasks clear # Contacts mog contacts list mog contacts directory "john" # Excel mog excel list mog excel get <id> Sheet1 A1:D10 mog excel update <id> Sheet1 A1:B2 val1 val2 val3 val4 mog excel append <id> TableName col1 col2 col3 # OneNote mog onenote notebooks mog onenote search "meeting notes"
Slugs
mog generates 8-character slugs for Microsoft's long GUIDs:
- •
a3f2c891instead ofAQMkADAwATMzAGZmAS04MDViLTRiNzgt... - •All commands accept slugs or full IDs
- •Use
--verboseto see full IDs
Aliases
- •
mog cal→mog calendar - •
mog todo→mog tasks
Credential Storage
OAuth tokens stored in config directory (0600 permissions):
| Platform | Location |
|---|---|
| macOS | ~/.config/mog/ |
| Linux | ~/.config/mog/ |
| Windows | %USERPROFILE%\.config\mog\ |
Files:
- •
tokens.json- OAuth tokens (encrypted at rest by OS) - •
settings.json- Client ID - •
slugs.json- Slug cache
See Also
- •
mog --ai-help- Full documentation - •
mog <command> --help- Command-specific help