Meetings & scheduling
Find the hour nobody hates, and book it.
#sales-opspublic channel3 tool calls
One free/busy call across the whole week finds the only hour three people share; a contacts search turns “Priya” into an address; and the booking is held at a Confirm card naming the slot and the guests before an invitation reaches anyone.
Dan11:02 AM
@attest_tag find an hour next week for me, Priya and [email protected], and book it — call it Q4 pricing
attest_tagApp11:03 AM
- http_request · GET people.googleapis.com/v1/people:searchContacts?query=priya · 1 match
- http_request · POST www.googleapis.com/calendar/v3/freeBusy · 3 calendars · 22–26 Sep
- http_request · POST …/events?sendUpdates=all&conferenceDataVersion=1 · held
Please confirm — this needs your OK. Tuesday 23 Sep, 14:00–15:00 ET is the only hour in the week all three of you are free.
- Priya — matched to Priya Raman (priya@…), from your contacts. If that is the wrong Priya, say so before you press.
- [email protected] — outside the company; free/busy answered, so the slot is real for them too.
- Wednesday and Thursday have no shared hour at all; Friday only after 16:30.
Waiting on a human
Create “Q4 pricing”, Tue 23 Sep 14:00–15:00 ET
google/calendar · as DanPOST /calendar/v3/calendars/primary/events?sendUpdates=all&conferenceDataVersion=1Booked — Tue 23 Sep, 14:00 ET, both invited. Meet link, read out of the response rather than composed.
google/gemini-flash6.1k in440 out$0.0034Configure
How the turn went
A name becomes an address, one call finds the hour, and the booking waits for you.
- 01
A name becomes an address, and it says which one
“Priya” is a contacts search on the distinctive word, and the company on the record is what tells two people of the same name apart. The reply names the address it picked, so a wrong guess is caught before the card is pressed — and an empty search is a question back, never an invented firstname@company address.
- 02
One question to every calendar
Free/busy is asked once across the whole span and returns each person’s busy blocks; the day is picked out of those. A call per day would spend the turn’s tool rounds for nothing. An hour named without a timezone is that hour where the asker is, taken from their Slack profile rather than assumed to be UTC.
- 03
The hold, then the event as you
Free/busy only looks, so it runs without asking. Creating the event is a write, so it is a card: the slot, the guests, and that invitations will be sent. Confirm runs it out of the asker’s own account.
- 04
The link is the one Google made
The event is created with
conferenceDataVersion=1, which is what makes the Meet link real — without it Google returns a perfectly successful event with no video link at all. The link in the reply is read out of the response; a meet.google.com URL is never composed by hand.
What it needs
The setup, in the console.
What it will not do
Enforced outside the model.
It cannot book on a calendar that is not the asker's; there is no token for one.
It will not invent an address. A contacts search that comes back empty is a question in the thread, not a guess at the shape of the company's email.
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 find an hour next week for me, Priya and [email protected], and book it — call it Q4 pricing
http_request
More in Meetings & scheduling
The hour that suits four calendars, found by asking them.
- The calendar it could not see, said out loud.#design-team · book the roadmap review with the four of us Thursday afternoon
- Five minutes before the call, who they are and what is open.DM · every weekday at 8:45, brief me on today's external meetings
- The call is over; the doc and the board are not.#proj-atlas · write up this thread into the Atlas status doc and open tasks for the two things we agreed
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.