Stop Wasting Time on Scheduling Emails

AI checks availability, proposes times, handles timezone conversions, and confirms bookings — all via email, all automatically.


Why this matters

Scheduling a single meeting can take 5-10 back-and-forth emails negotiating times, converting timezones, and confirming details. Multiply that by dozens of meetings per week and scheduling becomes a significant productivity drain. Timezone confusion and delayed responses cause meetings to slip by days or weeks.


How MultiMail solves this

MultiMail's AI agent handles the entire scheduling conversation autonomously. It reads scheduling requests, checks calendar availability, proposes times with timezone awareness, and negotiates until a slot is confirmed. Monitored oversight keeps your team informed without requiring them to approve each scheduling email.

1

Detect Scheduling Requests

Your AI agent monitors incoming emails for scheduling intent using check_inbox and read_email. Phrases like 'let's find a time' or 'can we schedule' trigger the scheduling workflow.

2

Check Calendar Availability

The agent queries your calendar API to find available slots, respecting buffer times, working hours, and timezone preferences.

3

Propose Times via Email

The agent replies with 2-3 available time options, automatically converting to the recipient's timezone. Each option includes a direct booking link when possible.

4

Handle Negotiation

If the proposed times don't work, the agent reads the counter-proposal, finds new slots, and continues the conversation naturally until a time is confirmed.

5

Confirm and Send Calendar Invite

Once a time is agreed upon, the agent sends a confirmation email with calendar details and any prep materials, then tags the thread as 'meeting-booked'.


Implementation

Detect Scheduling Intent
python
import requests

API = "https://api.multimail.dev/v1"
HEADERS = {"Authorization": "Bearer mm_live_xxx"}

inbox = requests.get(
    f"{API}/mailboxes/scheduling-mailbox-id/inbox",
    headers=HEADERS,
    params={"status": "unread", "limit": 20}
).json()

for msg in inbox["emails"]:
    email = requests.get(
        f"{API}/emails/{msg[&"cm">#039;id']}", headers=HEADERS
    ).json()

    if has_scheduling_intent(email["text_body"]):
        # Extract preferred times, duration, timezone
        preferences = parse_scheduling_preferences(email["text_body"])
        available_slots = check_calendar(preferences)
        propose_times(email, available_slots)

Monitor incoming emails for meeting scheduling requests.

Propose Available Times
python
import requests

API = "https://api.multimail.dev/v1"
HEADERS = {"Authorization": "Bearer mm_live_xxx"}

def propose_times(email: dict, slots: list):
    recipient_tz = detect_timezone(email["from"])

    "cm"># Format time options in recipient's timezone
    options = "\n".join([
        f"- {format_time(slot, recipient_tz)}"
        for slot in slots[:3]
    ])

    reply_text = (
        f"Hi {email[&"cm">#039;from_name']}, I have a few openings:\n\n"
        f"{options}\n\n"
        f"All times shown in {recipient_tz}. "
        f"Let me know which works best, or suggest another time."
    )

    requests.post(
        f"{API}/reply",
        headers=HEADERS,
        json={
            "in_reply_to": email["id"],
            "text_body": reply_text,
            "html_body": format_html(reply_text)
        }
    )

Reply with available meeting slots converted to the recipient's timezone.

MCP Tool Integration
typescript
"cm">// Using MultiMail MCP tools for meeting scheduling

const inbox = await mcp.check_inbox({
  mailbox_id: "scheduling-mailbox-id",
  status: "unread",
  limit: 20
});

for (const msg of inbox.emails) {
  const email = await mcp.read_email({ email_id: msg.id });

  if (hasSchedulingIntent(email.text_body)) {
    const prefs = parsePreferences(email.text_body);
    const slots = await checkCalendar(prefs);

    "cm">// Propose times via reply
    await mcp.reply_email({
      email_id: email.id,
      text_body: formatTimeProposal(slots, email.from_name)
    });

    "cm">// Tag for tracking
    await mcp.tag_email({
      email_id: email.id,
      tags: ["scheduling", "pending-confirmation"]
    });
  }
}

Handle the full scheduling workflow using MultiMail MCP tools.


What you get

Eliminate Scheduling Back-and-Forth

The AI handles the entire negotiation autonomously. What used to take 5-10 emails and 3 days now resolves in a single exchange.

Automatic Timezone Handling

No more timezone confusion. The AI detects the recipient's timezone and presents all options in their local time automatically.

Always Available to Respond

The AI processes scheduling requests 24/7. A prospect who emails at 11pm gets a response with available times immediately, not the next morning.

Consistent Scheduling Experience

Every scheduling interaction follows the same professional flow regardless of who initiated it or what time zone they're in.


Recommended oversight mode

Recommended
monitored
Scheduling emails are low-risk and follow predictable patterns, making them safe for autonomous execution. Monitored mode allows instant responses while keeping a log for review. If the AI books a wrong time, it's easily correctable — the risk doesn't justify adding approval delays.

Common questions

What calendar systems does this integrate with?
MultiMail handles the email side of scheduling. Your AI agent integrates with your calendar API (Google Calendar, Outlook, Cal.com, etc.) separately. The agent checks availability via the calendar API and communicates via MultiMail's email API. Both integrations are independent.
Can the AI handle rescheduling requests?
Yes. The AI monitors threads tagged as 'meeting-booked' for rescheduling signals. When a reschedule is requested, the agent proposes new times following the same workflow. It also sends updated calendar invites and notifications to all participants.
How does it handle group scheduling with multiple participants?
The agent can query multiple calendars to find overlapping availability. It communicates with each participant via email to collect preferences and proposes only times that work for everyone. The thread tracking keeps the conversation coherent across multiple participants.
What if someone proposes a time that's already been taken?
The agent re-checks calendar availability in real time before confirming any slot. If a proposed time has been booked since the last proposal, the agent apologizes and offers updated alternatives. This prevents double-booking.

Explore more use cases

The only agent email with a verifiable sender

Email infrastructure built for AI agents. Verifiable identity, graduated oversight, and a 38-tool MCP server. Formally verified in Lean 4.