- What: Every AgentMail inbox now includes a calendar. Your agent can create events and send standard calendar invitations, accept invitations sent to its address, and receive webhooks the moment each meeting starts and ends. There is nothing to set up, because the calendar exists as soon as the inbox does.
- Why it matters: Until now, an agent that needed to schedule anything meant wiring up a separate scheduling service, parsing invite attachments by hand, and running a cron job just to know when a meeting started. All of that is now built into the inbox your agent already has.
- How to get it: AgentMail Calendar is in beta in AgentMail Labs. An organization admin turns it on in the console under Settings, then Labs. It's live in US production today, with EU to follow. Start with the calendar docs.
Every AgentMail inbox now comes with a calendar. Your agent can book meetings, receive invitations at its email address, and act the moment a meeting starts or ends. The invitations it sends open as normal invites in Google Calendar, Outlook and Apple Calendar, and invitations sent to it land on its calendar automatically.
AgentMail Calendar is live today in AgentMail Labs. Here is what it does and how to build with it.
Why do agents need a calendar?
Agents can already do the work. Until now they couldn't keep time. An agent that needed to schedule anything meant its builder had to wire up a separate scheduling service, parse invite attachments by hand, and run a cron job or a polling loop just to know when a meeting started.
Email gave agents a way to talk to people. A calendar gives them a schedule. Both now come with the same inbox: your agent creates events, sends real invitations, accepts the ones it receives, and gets told when each meeting starts and ends.
How does an agent book a meeting?
One API call creates the event and emails the invitations.
event = client.inboxes.calendar.create_event(
inbox_id,
title="Intro call with Acme",
start="2026-10-22T14:00:00",
end="2026-10-22T14:30:00",
timezone="America/New_York",
attendees=[{"email": "jane@acme.com", "name": "Jane Doe"}],
send_invites=True,
client_id="intro-acme-2026-10-22",
)The invite that lands in Jane's inbox is a standard calendar invitation. It opens in Google Calendar, Outlook or Apple Calendar with the usual Yes, Maybe and No, and her response comes back to the agent's calendar. Events use local wall-clock times with an IANA time zone, recurring series are supported, and the client_id makes retries safe, so a flaky network never double-books anyone.
The agent sees its own calendar, not the attendees' calendars, so finding a time works the way it does between people: the agent proposes a slot over email and books it once the other side agrees.
How does an agent get invited?
The same way a coworker does. Anyone can invite the agent's email address from their own calendar. When the invitation arrives in the inbox, the event appears on the agent's calendar automatically, marked with source: email, and the agent can read it, respond, and keep notes on its own copy. Only the organizer can change the event for everyone, which is exactly how calendars between people work.
That means an agent can join workflows that already exist. Nobody on the other side installs anything or changes how they schedule. They invite an email address, and the address accepts.
How does an agent act when a meeting starts?
AgentMail tells it. Two webhooks, calendar.event.starting and calendar.event.ending, fire at each event's start and end, usually within a minute and never early. There is a third, calendar.event.responded, for when an attendee answers an invitation. No cron jobs, no polling loop, no scheduler to run and keep alive.
What the agent does with the notice is your code. Send the prep brief when the call starts, post in Slack, send the follow-up when it ends. Cancelled events don't fire, so the agent never acts on a meeting that isn't happening.
Zero setup, and a calendar humans can see
There is no calendar to create or connect. Every inbox gets one the moment it exists, at the inbox's own address, and it goes away when the inbox does. Time zones default to UTC and can be set per inbox.
Humans stay in the loop through the console. Open any inbox, switch to Calendar, and the agent's week is there: meetings the agent set up, invitations it received, and a badge on anything still awaiting a reply, in week and month views. You can see and edit your agent's schedule the same way you'd check a teammate's.
How do I get access?
AgentMail Calendar is in beta in AgentMail Labs. An organization admin turns it on in the console under Settings, then Labs. It's available in US production today, with EU to follow. You'll want the latest Python or TypeScript SDK, and a webhook subscribed to the calendar events. API keys created without a permissions object already have the calendar permissions; scoped keys can grant anything from calendar_read to calendar_event_delete.
If you already have an inbox, the calendar is already there. Start with the calendar docs and give your agent its first meeting.
AgentMail is the first email provider built for AI agents. Create an inbox in one API call, send and receive email, no OAuth and no domain verification. Free tier, no credit card required.


