Scheduling Without a Human Calendar Nylas has introduced Agent Accounts, a beta feature that gives scheduling bots their own mailbox and calendar, eliminating the need to borrow a human's calendar. This approach simplifies availability checks, RSVP handling, and event management by treating the bot as a standard attendee using iCalendar protocol. The system automatically processes invites, responses, and updates via webhooks, enabling fully autonomous scheduling without delegation or permissions issues. A human assistant borrows the boss's calendar; a scheduling bot owns its own. That one difference dissolves most of what makes calendar automation miserable. The borrowed-calendar model is how nearly every scheduling tool works today: connect to a person's Google or Microsoft account via OAuth, request calendar scopes, and act on their behalf. It works, but the seams show everywhere. The human's calendar fills with bookings the bot manages. Delegation permissions vary by provider and admin policy. Tokens expire when the person changes their password or leaves the company. And the bot has no address of its own — every invite, every confirmation email, appears to come from a person who didn't write it. Nylas Agent Accounts currently in beta invert this. Each account is a real mailbox and a real calendar https://developer.nylas.com/docs/v3/agent-accounts/calendars/ , provisioned automatically, owned by your application. From a participant's perspective there's nothing special about it — it's just another attendee on the invite. When the bot's calendar is its own, availability stops being a permissions question and becomes a query. The agent calls the free/busy endpoint against its own primary calendar, gets back busy blocks for a time window, and proposes open slots. No delegation, no scopes negotiation, no "the admin needs to approve calendar sharing for service accounts." The scheduling-agent tutorial https://developer.nylas.com/docs/cookbook/use-cases/act/scheduling-agent-with-dedicated-identity/ wires the whole loop: a meeting request lands at scheduling@agents.yourcompany.com , a message.created webhook fires, an LLM parses duration and timezone, the agent checks its own free/busy and replies with 3 candidate slots. When the human picks one, the agent creates the event: curl --request POST \ --url "https://api.us.nylas.com/v3/grants/