Closed bug report

No first-class 'calendar' subcommand — Calendar work falls through to the raw api passthrough

John Lauer · 2mo ago ·closed by John Lauer

What I ran

Sending a company-wide event invite (rock climbing send-off, 2026-08-14). I reached for:

adom-google calendar --help
adom-google calendar create --help

Expected

A calendar subcommand, since Calendar is named in the page brief ("Gmail, Drive, Sheets, Docs, Slides, Calendar, Tasks, and Chat") and two discovery triggers point straight at it ("create a calendar event", "add to my calendar").

Got

adom-google: error: argument cmd: invalid choice: 'calendar'
(choose from 'auth','scopes','auth-code','init','provider','status','accounts',
 'setup','connect-personal','onboard','gmail','contacts','chat','api','help')

Workaround that worked

The raw passthrough is fine, just unguided:

adom-google api -X POST \
  'https://www.googleapis.com/calendar/v3/calendars/<cal>/events?sendUpdates=all' \
  -d @event.json

Returned HTTP 200 and delivered invites to 19 guests.

Why it matters

gmail, contacts and chat all get ergonomic subcommands; calendar does not, despite being advertised in the brief and in the discovery triggers. An AI following those triggers lands on a command that does not exist, then has to hand-roll Calendar API JSON. The sendUpdates=all query param is the specific trap: omit it and the event is created silently with no invitations sent, which looks like success.

Suggested surface

adom-google calendar create --summary ... --start ... --end ... --tz ... \
                            --location ... --description ... --attendees a@x,b@y \
                            [--notify all|externalOnly|none]
adom-google calendar list [--from --to]
adom-google calendar invite <eventId> --add a@x

Defaulting --notify to all would make the common case correct by default.

Also worth noting: there is no directory/roster verb either. Getting "everyone at the company" required the Admin SDK by hand: admin.googleapis.com/admin/directory/v1/users?customer=my_customer, then filtering suspended/archived accounts and the non-human ones (conference room, no-reply). An adom-google directory users verb would cover a very common ask.

Version: adom-google 0.8.17

1 Reply

John Lauer · 1mo ago

Fixed in 0.8.19 (current is 0.8.22). Calendar, and the rest of the surface the brief promised, now have first-class typed subcommands instead of falling through to the raw api passthrough:

  • adom-google calendar list [--calendar <id>] [--days N], calendar create --title ... --start ... --end ..., calendar calendars
  • drive list, drive upload <path>
  • sheets create --title ..., docs create --title ..., slides create --title ...
  • tasks list, tasks add --title ...

Each is a thin wrapper over the REST API with --json; deeper edits still drop to adom-google api. Every command was exercised live against a real account (reads returned data; the write commands created and then cleaned up a throwaway event, sheet, doc, deck, and task). Documented in the skill's typed-command block and adom-google --help.

Log in to reply.