Skip to main content
Glama

Create a meeting from a calendar event, or link/unlink an existing meeting with a calendar event. Use this for calendar integration; to manage meeting content or participants, use those dedicated tools. Set `action` to one of: createFromEvent, link, unlink. Then provide the fields for the selected action. action=createFromEvent: Turn a calendar event into a Contio meeting. Use this when the user wants to import an existing calendar event. Creates a meeting from the calendar event `{id}`; requires `calendar:write`. If a meeting already exists for the event, the existing meeting is returned with 200 instead of 201. Returns 404 for an unknown or inaccessible event. `Idempotency-Key` replays the original 2xx response. action=link: Associate an existing meeting with a calendar event. Use this when the user wants to sync a meeting to a calendar. Links a meeting (`{id}`) to the `calendar_event_id` in the body. Accepted with `calendar:write` or `meetings:write`. Returns 409 if the event is linked to another meeting, 400 if the meeting is already linked elsewhere or workspaces differ. Unlink first with v1UnlinkCalendarEvent to move a link. action=unlink: Detach a meeting from its calendar event. Use this when the user wants to stop syncing a meeting to a calendar. Removes the calendar-event link from the meeting (`{id}`). Accepted with `calendar:write` or `meetings:write`. Unlinking a meeting with no link is a no-op that still returns 200. Returns 403 for non-owner/non-editor and 404 for an unknown meeting.

manageCalendarEvents
Idempotent

Create a meeting from a calendar event, or link/unlink an existing meeting with a calendar event. Use this for calendar integration; to manage meeting content or participants, use those dedicated tools.

Set action to one of: createFromEvent, link, unlink. Then provide the fields for the selected action.

action=createFromEvent: Turn a calendar event into a Contio meeting. Use this when the user wants to import an existing calendar event.

Creates a meeting from the calendar event {id}; requires calendar:write. If a meeting already exists for the event, the existing meeting is returned with 200 instead of 201. Returns 404 for an unknown or inaccessible event. Idempotency-Key replays the original 2xx response.

action=link: Associate an existing meeting with a calendar event. Use this when the user wants to sync a meeting to a calendar.

Links a meeting ({id}) to the calendar_event_id in the body. Accepted with calendar:write or meetings:write. Returns 409 if the event is linked to another meeting, 400 if the meeting is already linked elsewhere or workspaces differ. Unlink first with v1UnlinkCalendarEvent to move a link.

action=unlink: Detach a meeting from its calendar event. Use this when the user wants to stop syncing a meeting to a calendar.

Removes the calendar-event link from the meeting ({id}). Accepted with calendar:write or meetings:write. Unlinking a meeting with no link is a no-op that still returns 200. Returns 403 for non-owner/non-editor and 404 for an unknown meeting.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoCalendar Event ID
actionYesThe operation to perform
Idempotency-KeyNoOptional client-generated idempotency key (max 255 printable ASCII). Repeat requests with the same key replay the original 2xx response.
calendar_event_idNoID of the calendar event to link the meeting to.

TDQS

A4.1/5.0
Behavior5/5

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

Annotations provide idempotentHint=true and destructiveHint=false, but the description adds rich behavioral context beyond these: idempotency behavior with Idempotency-Key, return codes (200, 201, 404, 409, 400, 403), no-op behavior for unlink, auth requirements per action (calendar:write, meetings:write), and edge cases like already linked or unknown events. No contradiction with annotations.

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 well-structured with a summary, then action parameter explanation, then three sub-sections for each action. It is front-loaded with the main purpose. While it is somewhat verbose with repeated 'Use this when...' phrases, each sentence earns its place by adding essential context. The structure makes it easy for an agent to parse the relevant action.

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?

Given the tool has 4 parameters, no output schema, and no nested objects, the description covers all actions, auth requirements, error codes, idempotency, and edge cases. It even references a sibling tool (v1UnlinkCalendarEvent). However, it lacks a description of the response body (e.g., what the created/linked meeting object looks like), which would be helpful for an agent parsing the result. Still, the status codes and idempotency details provide sufficient operational completeness.

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

Parameters5/5

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

Schema coverage is 100% (all parameters documented), but the description adds significant meaning beyond schema: it explains the action enum values in context, clarifies which parameters are relevant for each action (e.g., id for createFromEvent, id and calendar_event_id for link), and details the Idempotency-Key behavior. This transforms the schema from a list of fields into a coherent usage guide.

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

Purpose2/5

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

Tautological: description restates name/title.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance for each action: 'Use this when the user wants to import an existing calendar event' for createFromEvent, 'when the user wants to sync a meeting to a calendar' for link, and 'when the user wants to stop syncing a meeting to a calendar' for unlink. It also tells when NOT to use this tool (use dedicated tools for content/participants), giving clear alternatives.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.8/5.0
Disambiguation4/5

Tools are mostly distinct, with clear separation between meetings, agenda/backlog items, action items, participants, and calendar events. However, `manageMeetingContent` bundles both raw file attachments and AI context documents into one tool, which could cause confusion for an agent deciding which contentType variant to use.

Naming Consistency4/5

The naming follows a consistent verb_noun pattern (e.g., `listMeetings`, `getMeeting`, `deleteUserToken`), but there are minor deviations like `manageMeetingItems` (verb_noun) vs `manageActionItems` (verb_noun) and `getMeetingTranscript` which is consistent, but `getMe` breaks the pattern as a short form. Overall, predictable and well-organized.

Tool Count4/5

With 30 tools, the count is on the higher side but reasonable given the broad domain covering meetings, agenda, backlogs, action items, participants, calendar events, user tokens, and content management. Each tool serves a specific purpose, though a slight reduction by combining some closely related functions could improve focus.

Completeness4/5

The tool surface covers the core lifecycle for meetings, agenda/backlog items, action items, participants, and content management. Minor gaps exist, such as the lack of tools for managing meeting templates (only listed, not created/deleted) and no tool for sending invitations via email, but these are not critical for the main use cases.

Resources