Book meetings over email on autopilot

By General Input

An agent watches a dedicated inbox during business hours, proposes times that match your real calendar, and books the meeting once the other side picks a slot.

Integrations

  • AgentMail
  • Google Calendar
  • Slack Bot

Type

Agentic Task

Categories

  • Operations
  • Personal Productivity

Build me an agent workflow that handles meeting scheduling over email end to end. It should run on a cron every 15 minutes during my business hours (default Mon-Fri, 9am-6pm in my configured time zone) and watch a single AgentMail inbox I use as my scheduling address.

On each run, call AgentMail List Messages on the inbox filtered to the unread label so we only look at threads with new activity since the last run. For each thread, call AgentMail Get Message on the latest message to read the body, sender, subject, and the original headers we will need to thread our reply correctly.

Classify each thread into one of three states and act accordingly:

State 1 - Fresh meeting request. The sender is asking to meet but no times have been offered yet. Call Google Calendar FreeBusy Query across the work calendars I configure (default to my primary calendar) for the next five business days. Pick three sensible slots that fit my working-hours window and the configured meeting length (default 30 minutes), spread across different days where possible, and never overlap any busy block. Then call AgentMail Reply To Message with a short, natural reply in my voice proposing those three times written in my time zone. Use the original message's Message-ID, In-Reply-To, and References headers so the reply stays in-thread.

State 2 - The requester picked one of the slots I previously offered (or counter-proposed a specific time). Parse the chosen time out of the reply. Re-check FreeBusy for that exact window in case my calendar changed since the proposal. If I am still free, call Google Calendar Create Event on my primary calendar with the requester as an attendee, a sensible title and description pulled from the thread, and conferencing enabled so a meeting link is generated. Then call AgentMail Reply To Message to confirm the booking with the time, the calendar link, and the meeting URL, again threading properly. Finally, call Slack Send a Message to the configured booking-visibility channel with a one-liner like "Booked 30 min with Jane Smith (jane@acme.com) for Thu 2pm PT." If the chosen time is no longer free, reply with the next three available slots instead of booking.

State 3 - Anything else (newsletters, unrelated mail, replies that are clearly not about scheduling). Leave the thread alone and do not reply.

Handle these edge cases:

1. Counter-proposals outside the times I offered: re-check FreeBusy for the proposed window and either book it or offer the closest open alternatives.

2. Reschedule requests on an existing thread: treat them as a fresh request and propose new times, noting that this replaces the prior booking.

3. Threads I already replied to in the same run should not be replied to twice; use the thread's message history to detect that.

Configurable inputs: the AgentMail inbox address, the list of Google calendars to check for availability, the booking calendar, the working-hours window, the meeting length, the number of slots to offer per reply, the time zone, the email signature and tone, and the Slack channel for booking notifications.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seats