Skip to main content
Glama
ShermanGu
by ShermanGu

save_meeting

Create or update calendar meetings while keeping them unsent, so you can review or edit before separately sending invitations.

Instructions

创建或修改会议并始终保持未发送状态。

没有 calendar_ref 时创建:需要 attendee_queries、subject、body_html,以及 确定的 start/end;如需查找候选时间,先调用 find_meeting_times。提供 calendar_ref 时更新现有未发送会议;attendee_queries 此时只接受完整邮箱。 发送邀请必须另行调用 send_meeting_invitation。

Input Schema

NameRequiredDescriptionDefault
endNo
startNo
subjectNo
locationNo
body_htmlNo
calendar_refNo
lookback_daysNo
attendee_queriesNo
reminder_minutesNo
check_availabilityNo
optional_attendeesNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden and does useful work: it discloses the persistent draft/unsent state, which fields are conditionally required, and that attendee_queries changes semantics between create (resolvable queries) and update (full emails only). It does not cover permissions or what happens to omitted fields on update, which keeps it short of a 5.

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?

Front-loads the purpose and state invariant, then presents the create/update branches in separate, scannable clauses with no filler. Slightly dense for a three-line description but every clause carries operational 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?

An output schema exists so return values need no explanation, and the draft-state disclosure substantially de-risks the mutation. Remaining gaps are secondary — no auth/permission context and no statement about how update handles unspecified fields.

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 coverage is 0% across 11 parameters, so the description must compensate. It adds real meaning for the conditional params (calendar_ref, attendee_queries, subject, body_html, start/end) and their requiredness per mode, but leaves location, lookback_days, reminder_minutes, check_availability, and optional_attendees entirely unexplained in both schema and description.

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?

States a specific verb set and resource — creates or modifies a meeting — and immediately pins down the invariant that the item is always left unsent. It also names its two relevant siblings (find_meeting_times, send_meeting_invitation), so an agent can place it precisely among the calendar tools.

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?

Gives explicit branch conditions: no calendar_ref → create (with required fields listed); calendar_ref present → update an existing unsent meeting. It also routes two adjacent needs to alternatives — candidate-time lookup to find_meeting_times and invitation sending to send_meeting_invitation.

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