# CalendarHero — how to use (mcp.ai)

Connect your CalendarHero account and use 38 tools for scheduling and booking straight from your AI agent. Connect with your own API key. CalendarHero is a versatile scheduling tool designed to streamline and simplify your calendar management. It integrates seamlessly with your existing calendars, allowing you to efficiently schedule, reschedule, and manage meetings with ease.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_calendarhero?ms=1787293560000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `calendarhero_add_calendar_connection`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/calendarhero`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/calendarhero/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/calendarhero/add/calendar/connection` — Add a new calendar directory/connection to the user's CalendarHero account. A directory is a calendar connection configuration that groups meeting types together. Use this to organize different types 
  - body: { directory: object }
- `POST https://api.mcp.ai/api/calendarhero/create/contact` — Creates a new contact in CalendarHero with the provided contact information. Returns the unique identifier of the created contact.
  - body: { name?: string, email: string[], title?: string, telephone?: string[], defaultEmail?: string, organization?: string }
- `POST https://api.mcp.ai/api/calendarhero/create/meeting/request/v2` — Tool to create a new meeting request in CalendarHero. Use when scheduling a meeting with participants, time range, and additional details.
  - body: { room?: object, type: string, dateEnd: string, subject: string, capacity?: integer, contacts?: object[], location?: string, dateStart: string, locations?: object[], description?: string, roomCapacity?: integer, contactEmails?: string[], meetingLength?: integer }
- `POST https://api.mcp.ai/api/calendarhero/create/webhook` — Creates or updates a webhook for a specific event type in CalendarHero. Use this to register a URL endpoint that will receive notifications when events occur (e.g., when a meeting request succeeds or 
  - body: { event: string, hookUrl: string }
- `POST https://api.mcp.ai/api/calendarhero/delete/contact` — Tool to delete a contact from CalendarHero by its unique identifier. Use when you need to permanently remove a contact from the system.
  - body: { id: string }
- `POST https://api.mcp.ai/api/calendarhero/delete/meeting/task` — Tool to delete a meeting task/request from CalendarHero. Use when you need to remove a meeting task by its ID.
  - body: { id: string }
- `POST https://api.mcp.ai/api/calendarhero/delete/meeting/type` — Tool to delete a meeting type from the authenticated user's CalendarHero account. Use when you need to remove a meeting type configuration. Note: Cannot delete meeting types that have active or upcomi
  - body: { type: string }
- `POST https://api.mcp.ai/api/calendarhero/delete/user/directory` — Tool to delete a user directory by its UUID. Use when you need to remove a directory from the user's account.
  - body: { uuid: string }
- `POST https://api.mcp.ai/api/calendarhero/delete/webhook` — Tool to delete a webhook subscription for a specific event type. Use when you need to remove a webhook listener that was previously registered for CalendarHero events.
  - body: { event: string, hookUrl?: string }
- `POST https://api.mcp.ai/api/calendarhero/fetch/contact` — Fetch Contact
  - body: { id: string }
- `POST https://api.mcp.ai/api/calendarhero/fetch/meeting/details` — Tool to fetch details for meetings within a specified timeframe. Use this after user provides start and end datetimes in ISO8601.
  - body: { end: string, start: string }
- `POST https://api.mcp.ai/api/calendarhero/fetch/user/profile` — Tool to fetch the profile details of the authenticated user. Use after obtaining a valid access token.
- `POST https://api.mcp.ai/api/calendarhero/get/assistant/message` — Tool to retrieve a reply message from the CalendarHero assistant. Use when you need to get an automated response or greeting from the assistant for the user.
- `POST https://api.mcp.ai/api/calendarhero/get/contact/count` — Tool to get the total count of contacts in CalendarHero. Use when you need to know how many contacts exist.
- `POST https://api.mcp.ai/api/calendarhero/get/meeting/categories` — Retrieves the user's meeting categories' stats for a specified time period. Use to analyze meeting distribution across different categories or types within a given month.
  - body: { month?: string }
- `POST https://api.mcp.ai/api/calendarhero/get/meeting/tasks` — Retrieves the user's meeting requests/tasks from CalendarHero. Use when you need to check pending meeting requests, view scheduling tasks, or track meeting coordination progress. Supports filtering by
  - body: { skip?: integer, take?: integer, type?: string, state?: string, tally?: boolean }
- `POST https://api.mcp.ai/api/calendarhero/get/search/result` — Tool to get a search result by ID. Use when you have a search result ID from a previous /search request.
  - body: { id: string }
- `POST https://api.mcp.ai/api/calendarhero/get/user/directory` — Tool to retrieve a user's directory by its unique identifier. Use when you need to fetch configuration details for a specific directory including meeting types and tracking settings.
  - body: { uuid: string }
- `POST https://api.mcp.ai/api/calendarhero/get/user/organization` — Tool to retrieve the authenticated user's organization details. Use when needing organization-level information.
  - body: { returnBillingUserInfo?: boolean }
- `POST https://api.mcp.ai/api/calendarhero/get/user/savings` — Tool to retrieve the authenticated user's savings information from CalendarHero. Use to view time saved, efficiency metrics, or other savings data tracked by the platform.
- `POST https://api.mcp.ai/api/calendarhero/get/webhook` — Tool to get webhook configuration for a specific event type. Use when you need to check if a webhook is configured for meeting or contact events.
  - body: { event: string }
- `POST https://api.mcp.ai/api/calendarhero/get/webhook/sample` — Tool to retrieve a sample webhook payload for a specific event type. Use when testing webhook integrations or understanding the structure of webhook data for different CalendarHero events.
  - body: { event: string }
- `POST https://api.mcp.ai/api/calendarhero/list/meeting/templates` — Retrieves all meeting templates (reusable meeting configurations) for the authenticated user. Meeting templates contain pre-configured settings like duration, availability, video conferencing preferen
- `POST https://api.mcp.ai/api/calendarhero/list/meeting/types` — Retrieves all meeting types configured for the authenticated CalendarHero user. Meeting types are templates that define availability windows, durations, and booking URLs for different kinds of meeting
  - body: { onlyTypes?: boolean }
- `POST https://api.mcp.ai/api/calendarhero/list/user/calendars` — Tool to list all calendar integrations connected to a user's CalendarHero account. Use after authenticating when you need to retrieve available calendars for scheduling.
  - body: { org?: boolean }
- `POST https://api.mcp.ai/api/calendarhero/list/user/directories` — Tool to retrieve all directories configured for a user. Use when you need to list available directories for scheduling or configuration purposes.
- `POST https://api.mcp.ai/api/calendarhero/search/contact` — Tool to search for existing contacts. Use after confirming a need to find contacts by email or name.
  - body: { all?: boolean, filter?: string, search?: string, includeTeams?: boolean }
- `POST https://api.mcp.ai/api/calendarhero/search/integrations` — Tool to search across all user integrations for a query term. Use when you need to find events, meetings, or other data matching specific keywords across the user's connected calendar and productivity
  - body: { query: string, dateEnd?: string, dateStart?: string }
- `POST https://api.mcp.ai/api/calendarhero/send/assistant/message` — Tool to send a user's message into the CalendarHero assistant. Use this to interact with the assistant using natural language for scheduling meetings, managing calendar events, or other calendar-relat
  - body: { text: string }
- `POST https://api.mcp.ai/api/calendarhero/send/reminder` — Sends an email reminder to all contacts/participants about a scheduled meeting request. Use this to notify attendees who need a reminder about an upcoming meeting. Requires the meeting task ID from a 
  - body: { id: string }
- `POST https://api.mcp.ai/api/calendarhero/update/contact` — Updates an existing contact in CalendarHero with new information. Use this action when you need to modify contact details such as name, email addresses, job title, organization, or phone numbers. Requ
  - body: { id: string, name?: string, email: string[], title?: string, userId?: string, telephone?: string[], providerId?: string[], defaultEmail?: string, organization?: string }
- `POST https://api.mcp.ai/api/calendarhero/update/meeting/types` — Tool to update meeting type configurations for the authenticated CalendarHero user. Use when you need to modify existing meeting types' availability, durations, or settings. IMPORTANT: The meeting typ
  - body: { meetingTypes: object[] }
- `POST https://api.mcp.ai/api/calendarhero/update/restricted/apps` — Tool to update the authenticated user's restricted apps settings. Use when you need to control which apps are restricted for the user.
  - body: { restrictedApps?: string[] }
- `POST https://api.mcp.ai/api/calendarhero/update/user` — Tool to update the authenticated user's profile information. Use when you need to modify user details such as name, email, timezone, or preferences.
  - body: { name: string, plan?: string, tags?: string[], email?: string, avatar?: string, address?: string, country?: string, currency?: string, language?: string, timezone?: string, telephones?: string[], email_footer?: string, hideAutomatedAssistant?: boolean }
- `POST https://api.mcp.ai/api/calendarhero/update/user/address` — Tool to update the authenticated user's address settings by providing latitude and longitude coordinates. Use when the user needs to update their location for meeting scheduling or time zone detection
  - body: { lat: string, lng: string }
- `POST https://api.mcp.ai/api/calendarhero/update/user/directory` — Tool to update a user's directory in CalendarHero. Use when modifying directory settings such as title, meeting types, or configuration options. The directory UUID can be obtained from the user profil
  - body: { uuid: string, directory: object }
- `POST https://api.mcp.ai/api/calendarhero/update/user/info` — Updates the authenticated user's info settings in CalendarHero. Use this action when you need to modify user profile details such as name, language, timezone, contact information, or display preferenc
  - body: { name?: string, avatar?: string, address?: string, country?: string, logoUrl?: string, currency?: string, language?: string, timezone?: string, telephones?: string[], email_footer?: string, hideNegativeWhoIs?: boolean, hideAutomatedAssistant?: boolean }
- `POST https://api.mcp.ai/api/calendarhero/update/work/location` — Tool to update the user's work location settings in CalendarHero. Use when the user needs to change their work location (e.g., 'Office', 'Home', 'Remote').
  - body: { work_location: string }

## Example prompts
- "What can I do in CalendarHero?"
- "Show me a summary of my CalendarHero account"

## More
- Page: https://mcp.ai/calendarhero
- Agent spec (llms.txt): https://mcp.ai/calendarhero/llms.txt
- Postman collection: https://mcp.ai/calendarhero/postman.json
