Skip to main content
Glama
84emllc
by 84emllc

Calendly MCP Server

Fork of meAmitPatil/calendly-mcp-server with Scheduling API integration and OAuth 2.0 support.

A Model Context Protocol (MCP) server for the Calendly API. Manage events, invitees, and schedule meetings directly via AI assistants.

Installation

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "calendly": {
      "command": "npx",
      "args": ["-y", "calendly-mcp-server"],
      "env": {
        "CALENDLY_API_KEY": "your_personal_access_token_here"
      }
    }
  }
}

Cursor

Add to your Cursor MCP settings:

{
  "mcpServers": {
    "calendly": {
      "command": "npx",
      "args": ["-y", "calendly-mcp-server"],
      "env": {
        "CALENDLY_API_KEY": "your_personal_access_token_here"
      }
    }
  }
}

Related MCP server: Calendly MCP Server

Configuration

Variable

Required

Description

CALENDLY_API_KEY

Yes*

Personal Access Token (get one here)

CALENDLY_CLIENT_ID

Yes*

OAuth 2.0 client ID (alternative to PAT)

CALENDLY_CLIENT_SECRET

Yes*

OAuth 2.0 client secret

CALENDLY_ACCESS_TOKEN

No

OAuth access token (if already obtained)

CALENDLY_REFRESH_TOKEN

No

OAuth refresh token

CALENDLY_USER_URI

No

User URI for automatic defaults

CALENDLY_ORGANIZATION_URI

No

Organization URI for automatic defaults

*Either CALENDLY_API_KEY or OAuth credentials (CALENDLY_CLIENT_ID + CALENDLY_CLIENT_SECRET) are required.

Tools (12)

OAuth

Tool

Description

get_oauth_url

Generate OAuth authorization URL

exchange_code_for_tokens

Exchange authorization code for tokens

refresh_access_token

Refresh an expired access token

API

Tool

Description

get_current_user

Get authenticated user info

list_events

List scheduled events with filtering

get_event

Get event details

list_event_invitees

List invitees for an event

cancel_event

Cancel a scheduled event

list_organization_memberships

List organization memberships

Scheduling API

Tool

Description

list_event_types

List available event types

get_event_type_availability

Check available time slots

schedule_event

Book a meeting (requires paid Calendly plan)

API Limitations

  • Scheduling API requires a paid Calendly plan (Standard or higher)

  • Event rescheduling is not supported via API (only cancellation)

  • Event type creation is not available via API

  • Standard Calendly API rate limits apply

Contributing

Pull requests welcome. See the upstream project for the original implementation.

License

MIT License. See LICENSE for details.

Credits

Available Tools

12 tools
cancel_eventB

Cancel a specific event

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoReason for cancellation
event_uuidYesUUID of the event to cancel

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only states the action 'Cancel' but does not mention whether cancellation is reversible, what happens to invitees, or if special authorization is required. This is a significant gap for a mutating tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the action with zero wasted words. It is appropriately sized for the tool's simplicity, though brevity sacrifices behavioral detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and no annotations, so the description must explain side effects and results. It does not mention what happens on successful cancellation, error conditions, or cascading effects such as notifications to invitees. The description is inadequate for a tool with mutating side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both event_uuid and reason having descriptions. The tool description adds no additional parameter semantics, so the baseline of 3 applies since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Cancel a specific event'. It clearly distinguishes this tool from siblings like schedule_event (create), get_event (read), and list_events (list). The word 'specific' implies targeting by identifier, which aligns with the required event_uuid parameter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives, nor any prerequisites such as checking event status or permissions. It does not state whether it should only be used for upcoming events or if get_event should be called first to confirm details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

exchange_code_for_tokensA

Exchange authorization code for access and refresh tokens

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe authorization code from OAuth callback
redirect_uriYesThe redirect URI used in authorization

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only states that the tool exchanges a code for tokens, but does not mention that the authorization code is typically single-use, that this is a security-sensitive OAuth step, or any side effects or prerequisites. This is a significant gap for a token-related operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that immediately states the tool's purpose. It is front-loaded and contains no filler or unnecessary repetition, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with a clear purpose, the description is mostly complete: it names the output (access and refresh tokens) and the core action. However, without an output schema or annotations, a brief note on the one-time nature of the code or success/failure behavior would improve completeness, but the current level is adequate for a simple OAuth exchange.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides complete descriptions for both parameters (code and redirect_uri), with 100% coverage. The description adds no additional semantic meaning beyond what the schema already defines, so it meets the baseline but does not enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action: exchange an authorization code for tokens, using the verb 'Exchange' and identifying both inputs (authorization code) and outputs (access and refresh tokens). It is distinct from the sibling tool 'refresh_access_token' and the other related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case (after obtaining an authorization code, before using tokens) but does not explicitly state when to use this tool versus alternatives like refresh_access_token or get_oauth_url. No explicit exclusions or alternative guidance is provided, but the context and function name make the primary use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_current_userA

Get the current authenticated user information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. The verb 'Get' implies a read-only operation, and 'authenticated' hints at auth requirements, but no additional behavioral details (e.g., error cases, return shape) are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded and contains no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (zero parameters, no output schema, low complexity), the description adequately covers what it does and implies the authentication context. No additional detail is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema is empty. The baseline for zero parameters is 4, and the description does not need to provide parameter-level detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the current authenticated user information' with a specific verb and resource. It distinguishes itself from sibling tools which focus on OAuth flows, events, and memberships.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: when you need the current authenticated user's information. However, it does not explicitly state when to use this over alternatives or mention any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_eventB

Get details of a specific event

ParametersJSON Schema
NameRequiredDescriptionDefault
event_uuidYesUUID of the event to retrieve

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Get details' without explicitly confirming the read-only nature, auth requirements, error behavior (e.g., if the event is not found), or what constitutes 'details'. This is a minimal but not fully transparent disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant words. It states the core action and resource efficiently, earning its place without any fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with one parameter and no output schema, the description is minimally adequate. However, it does not explain what 'details' includes or any expected return format, which could leave the agent uncertain. Given the low complexity, this is a passable but not complete description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for its single parameter (event_uuid), so the baseline is 3. The description adds no extra parameter-specific semantics beyond the schema, but given the schema fully documents the parameter, this is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get details of a specific event' uses a specific verb ('Get') and resource ('details of a specific event'), clearly distinguishing it from sibling tools like list_events (which lists multiple events) and cancel_event (which cancels an event). It precisely communicates the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as list_events or list_event_invitees. There is no mention of scenarios where this tool is preferred, nor any exclusions, leaving the agent to infer usage purely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_event_type_availabilityC

Get available time slots for a specific event type

ParametersJSON Schema
NameRequiredDescriptionDefault
end_timeNoEnd time for availability window (ISO 8601 format)
event_typeYesURI of the event type to check availability for
start_timeNoStart time for availability window (ISO 8601 format)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only says 'Get available time slots' without disclosing read-only status, authentication requirements, timezone handling, or what exactly is returned. This leaves the agent without clear behavioral expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded with the verb and object. It contains no filler, though it could benefit from a bit more context without harming its clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description must explain return values and context, but it does not. It fails to mention what the available time slots look like, whether authentication is needed, or how the optional time window affects results. Given three parameters and the scheduling-related siblings, this is under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are documented with clear descriptions. The tool description adds only the overarching purpose and does not provide additional meaning about how start_time and end_time constrain the availability window.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves available time slots for a given event type, which distinguishes it from list_event_types and schedule_event. However, it does not explicitly differentiate it from sibling tools or mention the time-window parameters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. It does not mention that it is a pre-booking availability check or how it relates to list_event_types or schedule_event. Usage context is only implied by the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_oauth_urlA

Generate OAuth authorization URL for user authentication

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoOptional state parameter for security
redirect_uriYesThe redirect URI for your OAuth application

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It only states the action without mentioning safety, side effects, permission requirements, or whether it is a read-only operation. For a tool that generates a URL, the description should explicitly note that it makes no data changes and ideally mention any network calls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that directly states the tool's purpose. It is efficiently concise with no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two parameters and no output schema, the description is adequate but lacks context about the OAuth flow. It does not explain that this is typically the first step in the OAuth process or describe the return value in detail (though the name implies the returned URL). The siblings show interaction with token exchange, but the description does not indicate how this tool fits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters have detailed descriptions in the input schema. The tool description itself adds no extra meaning about parameters, but since the schema already covers them, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Generate' and the resource 'OAuth authorization URL', explicitly for user authentication. It distinguishes the tool from OAuth-related siblings like exchange_code_for_tokens and refresh_access_token, which handle later steps in the flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is implied by the function name and description, but no explicit guidance is given on when to use this tool vs alternatives like exchange_code_for_tokens. There is no mention of the OAuth flow sequence or performance considerations, leaving room for ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_event_inviteesB

List invitees for a specific event

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of invitees to return (default 20, max 100)
emailNoFilter invitees by email
statusNoFilter invitees by status
event_uuidYesUUID of the event

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description alone must convey behavioral traits. It only states 'List invitees' without disclosing pagination limits, filtering behavior, permissions, or the fact that it is a read-only operation. The description adds no safety or side-effect context beyond what the schema already implies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence: 'List invitees for a specific event.' It is concise, front-loaded with the action verb, and contains no unnecessary words. Every word contributes to the purpose, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having four parameters and no output schema or annotations, the description provides minimal context. It does not mention that the tool supports filtering, pagination, or default counts (though these are in the schema). It also fails to hint at use cases or prerequisites, leaving the agent under-informed for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all four parameters with descriptive text, achieving 100% coverage. The description adds no extra meaning beyond pointing to 'a specific event,' which aligns with the required event_uuid parameter. Since the schema already documents parameters well, the description does not need to compensate further, earning a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the resource ('invitees for a specific event'). It distinguishes the tool from siblings like list_events (which lists events) and get_event (which retrieves a single event). The verb+resource combination is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when a user needs invitees for a particular event, but provides no explicit when-to-use guidance or mention of alternatives. Sibling tools suggest distinct purposes (e.g., list_events for event lists), but the description does not address when this tool is preferred over others. Usage context is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_eventsC

List scheduled events for the authenticated user

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of events to return (default 20, max 100)
statusNoFilter events by status
user_uriNoURI of the user whose events to list
max_start_timeNoMaximum start time for events (ISO 8601 format)
min_start_timeNoMinimum start time for events (ISO 8601 format)
organization_uriNoURI of the organization to filter events

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry full behavioral disclosure. It does not explicitly state that this is a read-only operation, nor does it mention pagination via count, default sorting, time-range filtering, or that user_uri can override the authenticated user scope. Significant behavioral information is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler or redundancy. It is front-loaded and easy to parse, though it could have included more context without becoming verbose. Efficiency is good, but substance is thin.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has six optional parameters and no output schema, so the description must provide orientation about capabilities and constraints. It fails to mention filtering options, pagination, time bounds, or the ability to target other users via user_uri, making it insufficient for an agent to understand the tool's full scope and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All six parameters are fully described in the schema (100% coverage), so the description need not repeat their syntax. However, it adds no extra semantics about how parameters interact, default behavior, or which combinations are valid, leaving the schema as the sole source of information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action (List) and resource (scheduled events) with a scope (for the authenticated user). It distinguishes from get_event by implying a collection operation, though it does not explicitly mention filtering by user_uri which could list events for other users.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus siblings like get_event (single event), list_event_types, or list_event_invitees. No alternatives, exclusions, or contextual cues are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_event_typesC

List available event types for scheduling meetings

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoURI of the user whose event types to list
countNoNumber of event types to return (default 20, max 100)
organizationNoURI of the organization to filter event types

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full burden of behavioral disclosure. It only says 'list available event types' and does not disclose return format, pagination behavior, filtering semantics, or what determines availability, adding little beyond the tool's name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that states the core purpose without extraneous words. It is front-loaded and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description is minimal. It omits usage guidance, behavioral details, and explicit sibling differentiation. The schema covers parameters, but the overall context is insufficient for an agent to confidently select and invoke this tool over alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters (user, count, organization). The description itself provides no additional parameter-level meaning, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('event types'), with a clarifying context ('for scheduling meetings'). It is clear, but it does not explicitly contrast with siblings like get_event_type_availability or list_events, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is provided. The phrase 'for scheduling meetings' hints at context but does not explain when to choose this over list_events or get_event_type_availability, and there are no exclusions or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_organization_membershipsA

List organization memberships for the authenticated user

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of memberships to return (default 20, max 100)
emailNoFilter by email
user_uriNoURI of the user
organization_uriNoURI of the organization

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It implies a read-only operation and implicitly requires authentication, but it does not disclose details such as pagination behavior, result ordering, or any permissions beyond authentication.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that immediately states the action and resource. No filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward list operation with optional filters and no output schema, the description sufficiently conveys the tool's core purpose. It could be enhanced by indicating the return shape, but the absence of that is not a significant gap given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters are fully described in the schema (100% coverage), so the description need not add semantic details. It does not, but the baseline of 3 is appropriate since the schema already explains each parameter's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and a distinct resource ('organization memberships') clearly scoped to the authenticated user. It differentiates well from sibling tools targeting events, auth tokens, and user profile data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for the authenticated user' establishes clear context, indicating this tool is appropriate for retrieving the current user's memberships. It does not explicitly exclude alternatives, but no competing membership tools exist among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refresh_access_tokenC

Refresh access token using refresh token

ParametersJSON Schema
NameRequiredDescriptionDefault
refresh_tokenYesThe refresh token to use

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, but it only restates the function without disclosing important behaviors like token rotation, expiry duration, or what the response contains. There is no mention of side effects, error conditions, or whether the old refresh token is invalidated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

At one sentence, the description is highly concise and front-loads the core action. The slight redundancy of 'refresh' twice is minor, but overall it is appropriately sized and well-structured for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description should clarify what the tool returns or how the refresh token is consumed. It lacks this, leaving the agent uncertain about whether a new access token is returned and whether the refresh token is rotated. This is a significant gap for a token-management tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the single required parameter with 100% coverage. The description's 'using refresh token' adds no semantic value beyond the schema's 'The refresh token to use', so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Refresh access token') and the resource ('access token') using 'refresh token', making the core purpose unambiguous. It does not explicitly differentiate from sibling tools like exchange_code_for_tokens, but the distinction is implicit in the different grant type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as exchange_code_for_tokens or get_oauth_url. The description only states the mechanism without any context on token lifecycle, prerequisites, or exclusion cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

schedule_eventC

Schedule a meeting by creating an invitee for a specific event type and time

ParametersJSON Schema
NameRequiredDescriptionDefault
event_typeYesURI of the event type to schedule
start_timeYesStart time for the event (ISO 8601 UTC format, e.g., 2025-10-02T18:30:00Z)
utm_mediumNoUTM tracking parameter for medium
utm_sourceNoUTM tracking parameter for source
event_guestsNoArray of additional email addresses to include (max 10)
invitee_nameNoFull name of the invitee (alternative to first_name/last_name)
utm_campaignNoUTM tracking parameter for campaign
invitee_emailYesEmail address of the invitee
invitee_phoneNoPhone number for SMS reminders (E.164 format, e.g., +14155551234)
location_kindNoType of meeting location (e.g., zoom_conference, google_conference, physical, ask_invitee)
invitee_timezoneYesTimezone of the invitee (e.g., America/New_York)
location_detailsNoLocation details (required for physical meetings or custom locations)
invitee_last_nameNoLast name of the invitee
invitee_first_nameNoFirst name of the invitee
questions_and_answersNoArray of question and answer pairs for booking form

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the burden falls on the description to disclose side effects, but it only says 'creating an invitee'. It does not explain that this mutates external calendars, sends invitations, or has cancellation implications. The write nature is implied but not elaborated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with zero filler. Every word contributes to the core purpose, making it highly concise and efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This tool has 15 parameters, no output schema, and no annotations, yet the description is only one sentence. It fails to mention return value (e.g., booking confirmation/URL), behavior on scheduling conflicts, or required parameter combinations. This is inadequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 15 parameters. The description adds minimal extra value by highlighting event type and time, but doesn't clarify optional groupings or dependencies (e.g., invitee_name vs first/last name, physical location details). Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the primary action ('Schedule a meeting') and the resource created ('an invitee') for a specific event type and time. This clearly distinguishes it from sibling tools like list_events or cancel_event. However, it omits other required inputs like invitee_email and timezone, so it's not fully precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as get_event_type_availability or list_event_types. It does not mention prerequisites like OAuth authentication or checking availability before scheduling. The usage context is entirely absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 12 tool updatesv1.0.0
    • First observedcancel_event
    • First observedexchange_code_for_tokens
    • First observedget_current_user
    • First observedget_event
    • First observedget_event_type_availability
    • First observedget_oauth_url
    • First observedlist_event_invitees
    • First observedlist_event_types
    • First observedlist_events
    • First observedlist_organization_memberships
    • First observedrefresh_access_token
    • First observedschedule_event

TDQS

A3.6/5.0
Disambiguation5/5

Each tool targets a distinct resource and action: authentication (refresh_access_token, get_oauth_url, exchange_code_for_tokens), user info (get_current_user), events (list_events, get_event, cancel_event, schedule_event), invitees (list_event_invitees), organization (list_organization_memberships), event types (list_event_types), and availability (get_event_type_availability). No ambiguity between list_events and get_event; they clearly differ in scope.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in lowercase snake_case (e.g., list_events, get_event, cancel_event, schedule_event). Verbs are specific and non-repetitive across different resources, and no mixed naming conventions are present.

Tool Count5/5

With 12 tools, the server is well-scoped for a Calendly integration. It covers authentication, user, events, invitees, organization memberships, event types, availability, and scheduling without feeling bloated or sparse.

Completeness4/5

Core workflows are covered: OAuth authentication, viewing user info, listing and getting events, listing invitees, cancelling events, listing event types, fetching availability, and scheduling. Minor gaps exist such as creating/updating event types or rescheduling events, but these are not critical for the primary scheduling use case.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/84emllc/calendly-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server