A chat assistant that actually books things
AI Executive Assistant
You talk to it like you would to a real assistant. It writes up a summary and emails it for you, and it can set up appointments straight from the conversation — no forms, no switching apps.
The problem
Scheduling and follow-ups eat a surprising amount of time: reading a thread, writing a summary, drafting the email, and finding a slot everyone agrees on. I wanted an assistant you could just talk to that would actually take those actions, not one that hands the work back to you as a suggestion.
What I built
I built the whole thing end to end — the agent logic and tool-calling on the backend, the calendar and email integrations, and the chat interface. My focus was making the agent reliably turn a free-form conversation into concrete actions (a sent email, a booked slot) rather than plausible-sounding text.
Architecture
- Chat UI (Next.js / TypeScript) streams messages to a FastAPI backend.
- An LLM agent interprets intent and calls tools: summarise, send-email, create-appointment.
- Tool layer wraps the email provider and calendar API; the agent decides which to call and with what arguments.
- Responses stream back token-by-token so the assistant feels live.
Key decisions
Tool-calling over free text
The agent expresses actions as structured tool calls the backend executes, so "email this summary" reliably produces a real email instead of a paragraph claiming it did.
Streaming responses
Token streaming keeps the assistant responsive during multi-step reasoning instead of freezing on a spinner.
Outcomes
- TODO: add a measurable result (e.g. "cut meeting-scheduling from ~5 min of back-and-forth to one message").
Limitations
- Works within the connected email/calendar accounts; multi-user org support would need proper auth and per-user tokens.
- Complex scheduling constraints (time zones across many attendees) are still an area to harden.
What I learned
- Getting an agent to act reliably is mostly about tight tool definitions and validation, not a cleverer prompt.
- Streaming plus clear "what I did" confirmations matters as much as the model for perceived quality.
Built with
Want to talk about building something like this? Get in touch or book a call.