MCP Tools Reference
Synced's MCP server exposes 6 tools that cover the full scheduling lifecycle — from reading your calendar to booking meetings with natural language. This page documents every tool, its parameters, and usage examples.
How tools are called
You do not call these tools directly. When you send a message to Claude, it automatically selects the appropriate tool based on your request, constructs the parameters, and returns a formatted response. This reference is useful for understanding what's available and how to phrase your requests.get_meetings
Retrieves a list of meetings from your connected calendar. Use the filter parameter to narrow results by status.
| Parameter | Type | Description |
|---|---|---|
filter | enum: "upcoming" | "past" | "draft" | "all" | Which meetings to return. Defaults to upcoming meetings if omitted. |
limit | number | Maximum number of meetings to return. Useful for keeping responses concise. |
Example prompts
- "What meetings do I have this week?"
- "Show me my last 5 meetings"
- "Do I have any draft meetings?"
Example response
[
{
"id": "mtg_abc123",
"title": "Design Review",
"startTime": "2025-03-15T14:00:00Z",
"duration": "30 mins",
"participants": ["sarah@acme.com", "alex@acme.com"],
"status": "confirmed"
}
]get_contacts
Returns your trusted contacts list. Trusted contacts can see your availability and schedule meetings with you directly.
| Parameter | Type | Description |
|---|---|---|
includeBlocked | boolean | When true, includes blocked contacts in the response. Defaults to false. |
Example prompts
- "Show me my contacts"
- "Who are my trusted contacts?"
- "List all contacts including blocked ones"
get_availability
Checks your free/busy schedule for a specific date. Returns a list of available time slots based on your connected calendar and working hours.
| Parameter | Type | Description |
|---|---|---|
daterequired | string (ISO 8601) | The date to check availability for, in ISO 8601 format (e.g., "2025-03-15"). |
Example prompts
- "Am I free tomorrow afternoon?"
- "What does my availability look like on March 20th?"
- "Show me my open slots for next Monday"
Example response
{
"date": "2025-03-15",
"slots": [
{ "start": "09:00", "end": "10:30" },
{ "start": "13:00", "end": "14:00" },
{ "start": "15:30", "end": "17:00" }
]
}schedule_meeting
Creates a new meeting on your calendar and optionally sends calendar invites to all participants. This is the primary tool for booking meetings programmatically.
| Parameter | Type | Description |
|---|---|---|
titlerequired | string | The title or subject of the meeting. |
description | string | Optional description or agenda for the meeting. |
durationrequired | enum: "15 mins" | "30 mins" | "45 mins" | "1 hour" | "1.5 hours" | "2 hours" | How long the meeting should last. |
startTimerequired | string (ISO 8601) | The start time of the meeting in ISO 8601 format (e.g., "2025-03-15T14:00:00Z"). |
participantsrequired | string[] | Array of participant email addresses (e.g., ["sarah@acme.com", "alex@corp.com"]). |
sendInvites | boolean | Whether to send calendar invites to participants. Defaults to true. |
Example prompts
- "Schedule a 30-minute call with sarah@acme.com next Tuesday at 2pm"
- "Book a 1-hour design review with the team on March 20th at 10am"
- "Create a meeting called 'Weekly Sync' for 45 minutes with alex@corp.com"
Timezone handling
ThestartTime parameter accepts ISO 8601 timestamps. Claude automatically converts relative times like "next Tuesday at 2pm" into the correct ISO format based on your timezone settings in Synced.get_recommended_slots
Finds mutually available time slots across multiple participants and optionally ranks them using AI. This is ideal when you need to coordinate a meeting but do not have a specific time in mind.
| Parameter | Type | Description |
|---|---|---|
participantsrequired | string[] | Array of participant email addresses to find mutual availability for. |
durationrequired | enum: "15 mins" | "30 mins" | "45 mins" | "1 hour" | "1.5 hours" | "2 hours" | The desired meeting duration. |
timeRange | enum: "within_1_week" | "within_2_weeks" | "within_1_month" | How far ahead to search for available slots. Defaults to within_1_week. |
useAI | boolean | When true, uses AI to rank slots by likelihood of being ideal (e.g., avoiding early mornings or late evenings). Defaults to false. |
Example prompts
- "Find the best time for a 1-hour meeting with alex@corp.com and jordan@corp.com"
- "When can I meet with the marketing team for 30 minutes this week?"
- "Suggest meeting times with sarah@acme.com within the next 2 weeks"
Example response
{
"slots": [
{
"start": "2025-03-17T10:00:00Z",
"end": "2025-03-17T11:00:00Z",
"score": 0.95
},
{
"start": "2025-03-18T14:00:00Z",
"end": "2025-03-18T15:00:00Z",
"score": 0.87
}
]
}When useAI is enabled, each slot includes a score between 0 and 1 indicating how ideal the time is, factoring in patterns like preferred meeting hours and buffer time between calls.
natural_language_schedule
Parses a freeform natural language scheduling request and creates the meeting. This is the most flexible tool — it handles participant lookup, time parsing, and meeting creation in a single call.
| Parameter | Type | Description |
|---|---|---|
messagerequired | string | A natural language scheduling request (e.g., "Coffee with Alex Friday at 3pm for 30 minutes"). |
Example prompts
- "Coffee with Alex Friday at 3pm for 30 minutes"
- "Lunch meeting with the product team next Wednesday"
- "Set up a quick 15-minute check-in with sarah@acme.com tomorrow morning"
When to use natural_language_schedule
This tool is best for simple, one-shot scheduling requests. For more complex workflows — like finding mutual availability across multiple people before booking — Claude will typically combineget_recommended_slots with schedule_meeting instead.Tool Summary
| Tool | Purpose |
|---|---|
get_meetings | List upcoming, past, draft, or all meetings |
get_contacts | Retrieve trusted contacts list |
get_availability | Check free/busy schedule for a date |
schedule_meeting | Create a meeting and send calendar invites |
get_recommended_slots | Find optimal mutual availability with AI ranking |
natural_language_schedule | Parse and execute a freeform scheduling request |