Daily operations
Change the meeting, and the invites go out.
#design-teamprivate channel3 tool calls
Three names added to one occurrence of a recurring meeting, with an agenda, through Google Calendar on the asker's own account. Names become attendees through a contacts search; the change is held as a Confirm card naming the occurrence and the people; press it and the invitations go out.
Mei8:53 AM
@attest_tag add Sam, Priya and Dan to Tuesday's design review — that occurrence only — and put the agenda in: five-file review
attest_tagApp8:54 AM
- http_request · GET www.googleapis.com/calendar/v3/…/events?q=design+review · 1 series
- http_request · GET people.googleapis.com/v1/people:searchContacts · 3 matches
- http_request · PATCH …/events/…_20260915T103000Z?sendUpdates=all · held
Please confirm — this needs your OK. I’ll update the Tuesday occurrence only of Design review, leaving the recurring series untouched: add the three as attendees, set the description to “Agenda: five-file review”, and send the invitations.
Waiting on a human
Update the 15 Sep occurrence of Design review
google/calendar · as MeiPATCH /calendar/v3/calendars/primary/events/…_20260915T103000Z?sendUpdates=allDone — the Tuesday occurrence is updated, series untouched. All three got an invite; agenda set; Meet link.
google/gemini-flash5.4k in390 out$0.0029Configure
How the turn went
Everyone signs in for themselves; the change is held; it runs as you.
- 01
Everyone signs in for themselves
An admin registers an OAuth client once; each person connects their own Google account from a DM. The client id and secret reach nobody’s account on their own.
- 02
Names to people, the event on your calendar
“Sam, Priya and Dan” is a contacts search; the meeting is found on the asker’s own calendar, and “that occurrence only” becomes an instance update rather than a series edit.
- 03
The hold, then the update as you
The card names the occurrence and the people. Confirm runs the PATCH out of the asker’s account, with invitations sent. An approver may press Confirm for someone else; it still runs as the asker.
What it needs
The setup, in the console.
What it will not do
Enforced outside the model.
It cannot touch a calendar that is not the asker's; there is no token for one.
Free/busy is read freely even though it answers to POST: the proxy knows that path is a read, because a card people press in order to look at something teaches them to press without reading.
Try it
Say it in a channel it is in.
The sentence as it was typed. It works in any channel the bot has been invited to that carries the connection above — no command syntax, no form, and follow-ups in the thread need no mention.
@attest_tag add Sam, Priya and Dan to Tuesday's design review — that occurrence only — and put the agenda in: five-file review
http_request
More in Daily operations
The calendar, the inbox and the handbook — as the person asking.
- Your inbox, as you — and never anyone else's.#design-team · get me Dan's last five emails and list who he's been talking to
- The handbook answer, with the page named.#people-ops · what's our policy on carrying leave into next year? check our docs
- A morning brief from the CRM, researched.#sales-ops · every day at 6am ET, find the leads created in HubSpot yesterday, research each one, and post a brief here
Bring the channel this would live in.
Sign up, connect the service above in one channel, and type this sentence yourself — or run the same binary on your own infrastructure.