Executive Assistant
An executive assistant for your inbox and calendar. It triages incoming email against preferences it learns over time, drafts replies for your review instead of sending, schedules meetings through a dedicated calendar worker that parses dates and blocks duplicate events, researches the people behind your external meetings without leaking private content, and emails you a cheerful, scannable brief every morning.
You wake up to a brief in your inbox: today's meetings in order, the context behind each external one, the action items buried in yesterday's email, a warning about the back-to-back stretch after lunch. During the day it keeps working - noise gets marked read before you ever see it, a meeting request arrives and the reply is already drafted, and when you say "anything from acme.com is VIP" it still holds next month. That is the pitch: an assistant that runs your inbox the way you would, and gets more like you the longer it runs.
Triage that learns. The assistant's judgment lives in the memory tools pack - search, list, create, and update - which forms its durable preference store: VIP senders, always-ignore rules, reminder lead times, sign-off style. Every rule passes the durable-vs-transient test before it is persisted - "would this still apply next month?" - so "hold everything for an hour" is acted on and forgotten, while "DevWeekly digests: auto-mark-read" is captured as the specific trigger, never generalised to "newsletters". Subtle mid-task changes get a scope check - "just this once or going forward?" - before anything is written down.
Duplicate prevention deserves its own agent. The Calendar Context worker is a second bot with a deliberately narrow job: parse "next Tuesday at 2pm" into a real date, check availability, and - most importantly - scan for existing events before anything new is created. Duplicate detection is genuinely fiddly: the right scan window depends on the event type (a deadline wants a week either side, a birthday a month), and matching is semantic, not literal - "FSA enrollment" has to match "benefits enrollment deadline". Pushing that reasoning into a dedicated agent with read-only calendar access means the main assistant asks one question - "does this already exist?" - and gets a structured answer, instead of burning its own context on window arithmetic and title comparison.
Drafts, not sends. Every reply the assistant writes lands as a Gmail draft for you to review; the send tool is reserved for exactly two cases - the morning brief addressed to your own inbox, and messages you have explicitly told it to send. Combined with the fabrication rule (a placeholder like "[pricing]" flagged for review is fine; an invented number in a sent email is not), the worst failure mode is a draft you delete, never an email you have to apologise for.
Two triggers, two rhythms. An hourly cron sweeps the inbox: recall preferences, list unanswered messages, mark noise read, draft what deserves a reply, route meeting requests through the calendar worker - and when nothing needs attention, do nothing. The 8am cron runs the full brief workflow and then emails the result to your own address - the assistant uses your inbox as its delivery channel, so the brief shows up where your day already starts, no extra app required.
Research behind a privacy firewall. Before external meetings, the assistant looks up the people and companies you are about to talk to - but the research protocol is non-negotiable: search queries contain only public entity names, never email content, meeting titles, attendee lists, or agenda details, and findings are surfaced only to you. When it is unsure whether something is safe to put in a query, it leaves it out and asks.
Swap points: the two cron schedules are the obvious dials - shift
the brief to your own morning and slow the sweep to every few
hours if your inbox is quiet. The Slack integration is optional
and open by default; fill in the tokens and lock allowFrom down
to your workspace before letting a team at it. And because the
assistant is just a bot behind channels, you can bolt on more
surfaces - a web widget, an email integration, a phone line -
without touching the triage logic.
Backstory
Common information about the bot's experience, skills and personality. For more information, see the Backstory documentation.
Skillset
This example uses a dedicated Skillset. Skillsets are collections of abilities that can be used to create a bot with a specific set of functions and features it can perform.
Install Google Mail Tools
Installs the Google Mail tools into the conversation - list pending messages, search threads and drafts, fetch messages and threads, create and send drafts, send email, label or mark messages read, and manage labels. Install these before any email work. Sending stays reserved for the daily brief to the user's own address or an explicit user request - everything else remains a draft.Install Google Calendar Tools
Installs the Google Calendar tools into the conversation - list calendars and events, create and update events and "[Blocked]" holds, and check availability. Create events only after a duplicate scan has come back clean.Install Research Tools
Installs web search, news search, and page reading tools for meeting and sender research - people, companies, and topics. Per the Research Protocol, queries carry public names only - never private email or calendar content.Install Memory Tools
Installs the memory tools - search, list, create, update, and delete durable preferences: VIP senders, always-ignore rules, reminder lead times, sign-off style. Capture the specific trigger, not a category, and never persist one-off, time-bound instructions.Delegate Calendar Context
Delegate natural-language date parsing, availability checks, and duplicate-event scans to the Calendar Context worker. Provide the target date, the event type, and semantic keywords; the worker picks the scan window and returns matched events or a clear all-clear.Install Google Calendar Read-Only Tools
Installs read-only Google Calendar tools - list events for the dates in a scan window and check free/busy - everything the worker needs for date parsing, availability, and duplicate detection, with no ability to modify the calendar.
Secrets
This example uses Secrets to store sensitive information such as API keys, passwords, and other credentials.
Google Mail (inbox access)
Personal OAuth connection to Gmail - lets the assistant read, search, label, draft, and send email on the user's behalf.Google Calendar (schedule access)
Personal OAuth connection to Google Calendar - shared by the assistant and the calendar context worker for events and availability.
Terraform Code
This blueprint can be deployed using Terraform, enabling infrastructure-as-code management of your ChatBotKit resources. Use the code below to recreate this example in your own environment.
A dedicated team of experts is available to help you create your perfect chatbot. Reach out via or chat for more information.