Case study · Autonomous Agents
The meeting that books itself.
Scheduling a call between people in Lahore and people in the US eats hours a week in back-and-forth email. Every scheduling product solves it by asking everyone to adopt a new tool. We built Geralt to solve the problem the other way round: an agent that lives in email, the tool everyone already has.
Email to book a call
Apps, logins or dashboards
Runs on its own schedule
Human escalation path
01 — The problem
A distributed engineering company runs its client and partner calls across at least three time zones. Booking one call typically took four to six emails: propose, counter-propose, convert time zones, confirm, send the invite, fix the invite. The people doing that work were senior engineers whose time is the most expensive thing in the company.
Off-the-shelf scheduling links push the work onto the other party and require them to adopt a tool. Shared calendars require everyone to be on the same platform. Neither fits a company whose counterparts are all different clients with different habits. What everyone does share is an inbox.
02 — What we built
Geralt is an autonomous agent with its own mailbox. You copy it on an email, in plain language, the way you would brief a human assistant: "Geralt, set up a 30-minute call with these three people next week." It does the rest.
- Request parsing. The agent reads the request, works out who needs to attend, how long the meeting is and the acceptable window, and looks each person up in a directory it is allowed to contact.
- Slot proposal. It proposes a small set of concrete times to all attendees in one email, threaded and tagged with a reference so replies can be matched even when they come back out of order or from a different address.
- Reply understanding. Replies are free text. "Tuesday works but not before 10" is parsed, reconciled against everyone else's answers, and either a slot is locked or a revised proposal goes out.
- Invites that survive time zones. Once a slot is agreed, the agent sends a standard calendar invite (.ics) to every attendee. Invites are expressed in UTC, so every calendar renders the correct local time without the agent having to guess.
- State in the mailbox. There is no database. Each in-flight scheduling thread carries its own state, so the agent can be restarted, moved or run from anywhere with the same credentials and pick up where it left off.
- Runs itself. A cloud routine wakes the agent on a fixed schedule, processes new mail, and goes back to sleep. Nothing needs to be hosted, monitored or kept warm.
03 — How we kept it safe
An agent that sends email on your behalf has to be boring in exactly the right ways.
- Directory-only contact. Geralt will only email addresses in its approved directory. It cannot be talked into contacting anyone else, whatever a request says.
- Escalation, not improvisation. When a request is ambiguous, when attendees cannot agree, or when a reply falls outside what it understands, the agent stops and hands the thread to a named human with a summary. It never sends a "best guess" invite.
- Least-privilege credentials. The agent authenticates to its mailbox over the provider's HTTPS API with a scoped, long-lived token captured once through a consent flow. No passwords, no IMAP, nothing to rotate by hand.
- Tested end to end before launch. Request in, proposal out, state saved, reply in, invite out, on real mailboxes, before the first external user saw it.
04 — The outcome
Geralt went live in August 2026 and books calls for the team and its partners, including a recurring weekly meeting it set up itself. Booking a call is one email. Nobody on the team chases attendees any more; a person only hears about a thread when there is a real decision to make.
A real thread, anonymised. A 30-minute call with an outside party. Geralt proposed times to all attendees, and one of them went silent. It nudged that attendee and warned the organiser the call was still unconfirmed. When the agreed slot fell through, it sent new times on its own. When the attendees still could not agree, it handed the thread to a person with a one-paragraph summary instead of guessing.
Phase two adds free/busy checks against attendees' shared calendars so the agent only proposes times that actually work, per-person local times in the email body, and rescheduling by reply ("Geralt, move our Thursday call to Friday").
05 — What this means for you
Most agent demos need a new interface. The agents that actually get used are the ones that show up inside a workflow people already run, do one job completely, and know when to stop and ask. Scheduling is the obvious first job; the same pattern fits intake triage, follow-up chasing, document collection, and any other loop that currently costs a senior person their afternoon. We can scope one of those for your team in a fixed-price AI Pilot.
The offer that fits
Which loop is costing your seniors their afternoon?
Scheduling, intake triage, follow-up chasing, document collection. Pick one and we will build an agent that does it end to end, with a clean escalation path to a human.
4–6 weeks · fixed price, agreed up front
AI Pilot
One AI capability built against your data, with the success metric agreed before we start and the harness that measured it handed over with the code.
Start an AI Pilot Or ask about the AI Reliability Audit →