Back to blog
Technical

How to connect AI agents to a scheduling tool using MCP

Maya ChenMaya ChenFebruary 28, 20268 min read

TL;DR

Learn how to connect AI agents to scheduling tools via MCP. Step-by-step guide covering setup, configuration, and your first agent-booked meeting.

You've heard the pitch: AI agents that book meetings for you. But the tutorials stop at "install this plugin" and the demos skip the messy parts. This guide walks through the full process — from zero to your first agent-booked meeting — with the specifics that actually matter.

What MCP is (in 30 seconds)

Model Context Protocol is an open standard that lets AI agents call tools on external services. Think of it as a USB-C port for AI: one interface, many capabilities. Instead of teaching each agent how to navigate a scheduling UI, you give it structured tools with typed inputs and outputs.

An agent doesn't "click the booking button." It calls create_booking({ eventTypeId: "abc", startTime: "2026-02-24T10:00:00Z" }). Clean, predictable, auditable.

If you want the backstory, read how we built skdul's MCP server. This guide is purely practical.

What you need

  • An MCP-compatible AI agent. Claude Desktop, Claude Code, ChatGPT with MCP support, or any custom agent using an MCP-capable framework.
  • A scheduling tool with an MCP server. The tool needs to expose its capabilities as MCP tools — not just a REST API, but a proper MCP server with tool schemas, descriptions, and typed parameters.
  • 5 minutes. Seriously. The config is a JSON file.

Step 1: Find the MCP server details

Every MCP server publishes a connection string — usually an npx command or a URL. For skdul, it looks like this:

npx -y @anthropic-ai/skdul

This single command starts a local MCP server that connects to skdul's API. The server exposes all available tools — events, availability, bookings, discovery, preferences — and the agent discovers them automatically.

Other scheduling tools that offer MCP servers will have their own connection strings. The principle is the same: one command, full tool access.

Step 2: Add the server to your agent's config

Where you add the config depends on your agent:

Claude Desktop

Open ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows) and add:

{
  "mcpServers": {
    "skdul": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/skdul"]
    }
  }
}

Restart Claude Desktop. The scheduling tools appear in the tool panel automatically.

Claude Code

Add to your project's .mcp.json or global MCP config:

{
  "mcpServers": {
    "skdul": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/skdul"]
    }
  }
}

Custom agents (LangChain, CrewAI, etc.)

Most MCP-capable frameworks have a connect or add_server method. Point it at the same command. The framework handles tool discovery and schema parsing.

Step 3: Authenticate

The first time your agent calls a skdul tool, the MCP server opens a browser window for OAuth. Sign in with your skdul account, authorize the connection, and you're done. The token is cached locally — you won't need to re-authenticate unless you revoke access.

This is important: the MCP server uses your real account. Your agent sees your real availability, your real events, your real bookings. It's not a sandbox — it's the production system. That's what makes it useful.

Step 4: Test the connection

Ask your agent something simple:

"What events do I have set up?"

The agent should call list_event_types and return your configured meeting types — names, durations, locations. If this works, the connection is live.

Next, try something that reads your calendar state:

"What's my availability next Tuesday?"

The agent calls get_available_slots with the appropriate date range and returns a list of open time windows. If the slots match what you see on your booking page, everything is wired correctly.

Step 5: Make your first booking

Here's where it gets interesting. Try:

See this in action

skdul gives you beautiful booking pages with smart availability — plus full AI agent support.

Try it free

"Find the best time to book a 30-minute meeting with someone on skdul.ai/sarah/quick-chat next week, mornings preferred."

The agent will:

  1. Browse Sarah's booking page to discover her events.
  2. Fetch available slots for next week.
  3. Score each slot using five factors: time-of-day preference, gap efficiency, day spread, buffer comfort, and booking density.
  4. Present the top 3 options with scores.

By default, this runs in dry-run mode — the agent shows you what it would book without actually creating anything. Say "book it" to confirm, and the agent calls create_booking with the selected slot.

Both you and the guest get confirmation emails. The event appears on both calendars. Zero emails exchanged. Zero tabs opened.

What tools are available?

A well-built scheduling MCP server exposes tools across these categories:

  • Profile management: get and update your scheduling profile, timezone, preferences.
  • Events: create, list, update, delete meeting types (duration, location, buffers).
  • Availability: view and set your working hours, check available slots for specific date ranges.
  • Bookings: create, list, view, cancel, and reschedule confirmed meetings.
  • Discovery: browse another user's public booking pages, find and score the best available slot.
  • Intelligence: scheduling preferences, calendar health scores, conflict detection, focus time analysis.

The key insight: these aren't simplified endpoints. They're the same operations available in the web dashboard, exposed as typed functions. The agent has the same capabilities as a human user — it's just faster.

Common patterns

Daily briefing

"What's on my calendar today? Any conflicts?"

The agent calls list_bookings filtered to today and detect_conflicts to flag overlaps.

Batch scheduling

"Book 1:1s with these five team members next week. 30 minutes each, afternoons preferred, no back-to-back."

The agent loops through each person, finds optimal non-overlapping slots, and presents the full schedule for approval.

Smart rescheduling

"Tomorrow is too packed. Move anything that can move to Thursday."

The agent identifies which bookings are reschedulable, finds Thursday availability, and proposes a revised schedule.

Troubleshooting

Agent can't find tools: Restart your AI client after editing the config. MCP servers are loaded on startup, not hot-reloaded.

Authentication fails: Make sure you have a skdul account and pop-ups aren't blocked. The OAuth flow requires a browser redirect.

Slots don't match your calendar: Check that your availability schedule is set correctly in the skdul dashboard under Availability. The MCP server reads the same rules as your booking page.

"No available slots" when you know you're free: The slot computation respects event settings — minimum notice, maximum per day, buffer times. A slot that looks open on your calendar might be blocked by a 24-hour minimum notice rule.

Security considerations

Three things to verify before trusting an agent with your calendar:

  1. Dry-run mode. Can the agent preview actions without committing? This is non-negotiable. You should see exactly what's about to happen before it happens.
  2. Typed schemas. The MCP server should validate every input. An agent can't send a malformed booking request if the schema rejects it at the protocol level.
  3. Audit trail. Every agent action should be logged. You should be able to see what the agent did, when, and through which tool — the same way you'd review a transaction log.

The MCP protocol itself is stateless and read-only by default — write operations require explicit tool calls that your agent client surfaces for approval. You control the trust boundary.

What's next

Once the connection is live, read why your AI agent should book your meetings for the workflow patterns that matter most. For the bigger picture on where this is heading, see the autonomous calendar.

The gap between "my agent can check my email" and "my agent can book my meetings" is exactly one JSON config file. The scheduling infrastructure is ready. The question is whether you'll connect it today or keep copy-pasting time slots for another six months.

Frequently asked questions

What is MCP and why does it matter for scheduling?
MCP (Model Context Protocol) is an open standard that lets AI agents call tools on external services using typed inputs and outputs. For scheduling, it means your AI assistant can check availability, score time slots, and book meetings programmatically — without scraping web UIs or copy-pasting calendar links.
Which AI agents support MCP?
Claude (via Claude Desktop and Claude Code), ChatGPT (via plugin architecture), and any agent built on frameworks like LangChain, CrewAI, or AutoGen that support MCP tool calling. The ecosystem is growing rapidly — most major AI assistants either support MCP natively or have community adapters.
Do I need to write code to connect an AI agent to a scheduling MCP server?
No. For most AI assistants, you just add a few lines to a JSON config file pointing to the MCP server. The agent discovers the available tools automatically. No SDK, no API keys to manage, no custom integration code.
Is it safe to let an AI agent access my scheduling tool?
Yes, when the MCP server is built with safety in mind. Look for dry-run mode (preview before committing), granular permissions, and audit logging. Good MCP servers also use typed schemas that prevent malformed requests — the agent can only send valid actions.
Maya Chen

Maya Chen

Engineering


Keep reading

Start scheduling for free.

Get started for free
Ask AI about skdul