Schedule smarter with Calendly in Claude. Manage your entire scheduling workflow through simple conversation — create and update event types, share scheduling links, adjust availability, book meetings, and more, without ever leaving Claude.
Protocol
MCP 2025-11-25
Server version
3.3.1
Supports
Tools
Resources
Logging
Overall score
B
Overall quality score: 70 out of 10070/100
Server metadata
5 of 8 fields60/1004.8 / 8 pts
Identity, discovery, and usage metadata advertised during the MCP handshake.
You are connected to Calendly on behalf of a signed-in user. The OAuth
access token represents one specific Calendly account — treat that
account as the HOST for every scheduling action unless the user
explicitly names a different person. Never claim you "don't have access
to a Calendly account"; you always do, and it is the connected user's.
## Calendly Skills
Skill guides document product workflows that tool schemas alone do not
cover (e.g. reschedule via each invitee's `reschedule_url`, or
cancel-and-rebook with explicit confirmation).
**Tool descriptions are primary.** Follow each tool's Use/When/Do/Then
guidance for reads, filters, and follow-up calls — including chains such as
calling `meetings-list_event_invitees` after `meetings-list_events` before
listing, describing, or naming any meeting, unless the user asked for only
a count. Skills add workflow context; they do not replace tool guidance.
**Use skills for named workflows**, not routine listing or lookup: when
the user wants to reschedule, move or postpone a meeting, change an existing
booking's time, or cancel-and-rebook.
When a workflow skill may apply:
1. Call `list_calendly_skills` with workflow keywords and
`include_header=true`.
2. If one matches, call `load_calendly_skill` before acting on that
workflow.
3. MCP clients with resources may read the same guides via `skill://…`.
If no skill matches, follow tool descriptions and the rules below.
## Grounding order
Before reasoning about event types, availability, bookings, or
meetings, you MUST first ground yourself in the connected account:
1. Call `users-get_current_user` to resolve the host's URI, name,
timezone, and scheduling_url.
2. When the task involves event types or availability, also call
`event_types-list_event_types` (filtered to the host's user URI)
to see the current set.
3. For a yes/no schedule/busy/free check that names no specific
meeting, invitee, or event type — including one phra
Protocol
Pass100/10016 / 16 pts
Connection, authentication, and protocol compatibility.
Shorten the title to an action and subject; move usage details into the description.
Description93/100
Use: List all named availability schedules for the connected user.
When: User asks about availability schedules or you need to identify one by name.
Needs: User URI from `users-get_current_user`.
Do: Use returned `uri` to fetch schedule details or associate with an event type.
Avoid: Confusing user availability schedules with event-type-level schedules.
Then: Use schedule URI in `availability-get_user_availability_schedule` for details.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
user
A URI reference to a user
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
{
"type": "object",
"title": "ListUserAvailabilitySchedules200Response",
"required": [
"collection"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "AvailabilitySchedule",
"required": [
"uri",
"default",
"name",
"user",
"timezone",
"rules"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "A URI reference to this Availability Schedule."
},
"name": {
"type": "string",
"title": "Name",
"description": "The name of this Availability Schedule."
},
"user": {
"type": "string",
"title": "User",
"description": "A URI reference to a User."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRule",
"required": [
"type",
"intervals"
],
"properties": {
"date": {
"type": [
"string",
"null"
],
"title": "Date",
"default": null,
"description": "A specific date in the future that this should be applied to (i.e. \"2030-12-31\")."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of this Availability Rule; can be \"wday\" or a specific \"date\"."
},
"wday": {
"type": [
"string",
"null"
],
"title": "Wday",
"default": null,
"description": "The day of the week for which this Rule should be applied to."
},
"intervals": {
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRuleIntervalsInner",
"properties": {
"to": {
"type": [
"string",
"null"
],
"title": "To",
"default": null,
"description": "Format: `\"hh:mm\"`"
},
"from": {
"type": [
"string",
"null"
],
"title": "From",
"default": null,
"description": "Format: `\"hh:mm\"`"
}
},
"description": "AvailabilityRuleIntervalsInner"
},
"title": "Intervals",
"description": "The intervals to be applied to this Rule. Each interval represents when booking a meeting is allowed. If the interval array is empty, then there is no booking availability for that day. Time is in 24h format (i.e. \"17:30\") and local to the timezone in the Availability Schedule."
}
},
"description": "The rules for an availability schedule."
},
"title": "Rules",
"description": "The rules of this Availability Schedule."
},
"default": {
"type": "boolean",
"title": "Default",
"description": "This is the default Availability Schedule in use."
},
"timezone": {
"type": "string",
"title": "Timezone",
"description": "The timezone for which this Availability Schedule is originated in."
}
},
"description": "The availability schedule set by the user."
},
"title": "Collection"
}
},
"description": "ListUserAvailabilitySchedules200Response"
}
Original tool metadata
{
"name": "availability-list_user_availability_schedules",
"title": "list_user_availability_schedules",
"description": "Use: List all named availability schedules for the connected user.\nWhen: User asks about availability schedules or you need to identify one by name.\nNeeds: User URI from `users-get_current_user`.\nDo: Use returned `uri` to fetch schedule details or associate with an event type.\nAvoid: Confusing user availability schedules with event-type-level schedules.\nThen: Use schedule URI in `availability-get_user_availability_schedule` for details.",
"inputSchema": {
"type": "object",
"required": [
"user"
],
"properties": {
"user": {
"type": "string",
"description": "A URI reference to a user"
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "ListUserAvailabilitySchedules200Response",
"required": [
"collection"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "AvailabilitySchedule",
"required": [
"uri",
"default",
"name",
"user",
"timezone",
"rules"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "A URI reference to this Availability Schedule."
},
"name": {
"type": "string",
"title": "Name",
"description": "The name of this Availability Schedule."
},
"user": {
"type": "string",
"title": "User",
"description": "A URI reference to a User."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRule",
"required": [
"type",
"intervals"
],
"properties": {
"date": {
"type": [
"string",
"null"
],
"title": "Date",
"default": null,
"description": "A specific date in the future that this should be applied to (i.e. \"2030-12-31\")."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of this Availability Rule; can be \"wday\" or a specific \"date\"."
},
"wday": {
"type": [
"string",
"null"
],
"title": "Wday",
"default": null,
"description": "The day of the week for which this Rule should be applied to."
},
"intervals": {
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRuleIntervalsInner",
"properties": {
"to": {
"type": [
"string",
"null"
],
"title": "To",
"default": null,
"description": "Format: `\"hh:mm\"`"
},
"from": {
"type": [
"string",
"null"
],
"title": "From",
"default": null,
"description": "Format: `\"hh:mm\"`"
}
},
"description": "AvailabilityRuleIntervalsInner"
},
"title": "Intervals",
"description": "The intervals to be applied to this Rule. Each interval represents when booking a meeting is allowed. If the interval array is empty, then there is no booking availability for that day. Time is in 24h format (i.e. \"17:30\") and local to the timezone in the Availability Schedule."
}
},
"description": "The rules for an availability schedule."
},
"title": "Rules",
"description": "The rules of this Availability Schedule."
},
"default": {
"type": "boolean",
"title": "Default",
"description": "This is the default Availability Schedule in use."
},
"timezone": {
"type": "string",
"title": "Timezone",
"description": "The timezone for which this Availability Schedule is originated in."
}
},
"description": "The availability schedule set by the user."
},
"title": "Collection"
}
},
"description": "ListUserAvailabilitySchedules200Response"
},
"annotations": {
"title": "list_user_availability_schedules",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Use: Fetch details for one named availability schedule.
When: User asks about specific schedule rules or needs rules for a named schedule.
Needs: Schedule URI from `availability-list_user_availability_schedules`.
Do: Read `rules` array and `timezone` for display or to inform event-type updates.
Avoid: Writing to this schedule—use event-type-level update for changes.
Then: Report schedule details to user or use rules for availability queries.
The description explains the capability, when to use it, and what to expect.
Inputs87/100
Input documentation gives an agent enough context to populate the arguments.
uri
Availability schedule URI. not a browsable link — never show to users.
Align the output schema with the tool’s documented result.
View output schema
{
"type": "object",
"title": "GetUserAvailabilitySchedule200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "AvailabilitySchedule",
"required": [
"uri",
"default",
"name",
"user",
"timezone",
"rules"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "A URI reference to this Availability Schedule."
},
"name": {
"type": "string",
"title": "Name",
"description": "The name of this Availability Schedule."
},
"user": {
"type": "string",
"title": "User",
"description": "A URI reference to a User."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRule",
"required": [
"type",
"intervals"
],
"properties": {
"date": {
"type": [
"string",
"null"
],
"title": "Date",
"default": null,
"description": "A specific date in the future that this should be applied to (i.e. \"2030-12-31\")."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of this Availability Rule; can be \"wday\" or a specific \"date\"."
},
"wday": {
"type": [
"string",
"null"
],
"title": "Wday",
"default": null,
"description": "The day of the week for which this Rule should be applied to."
},
"intervals": {
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRuleIntervalsInner",
"properties": {
"to": {
"type": [
"string",
"null"
],
"title": "To",
"default": null,
"description": "Format: `\"hh:mm\"`"
},
"from": {
"type": [
"string",
"null"
],
"title": "From",
"default": null,
"description": "Format: `\"hh:mm\"`"
}
},
"description": "AvailabilityRuleIntervalsInner"
},
"title": "Intervals",
"description": "The intervals to be applied to this Rule. Each interval represents when booking a meeting is allowed. If the interval array is empty, then there is no booking availability for that day. Time is in 24h format (i.e. \"17:30\") and local to the timezone in the Availability Schedule."
}
},
"description": "The rules for an availability schedule."
},
"title": "Rules",
"description": "The rules of this Availability Schedule."
},
"default": {
"type": "boolean",
"title": "Default",
"description": "This is the default Availability Schedule in use."
},
"timezone": {
"type": "string",
"title": "Timezone",
"description": "The timezone for which this Availability Schedule is originated in."
}
},
"description": "The availability schedule set by the user."
}
},
"description": "GetUserAvailabilitySchedule200Response"
}
Original tool metadata
{
"name": "availability-get_user_availability_schedule",
"title": "get_user_availability_schedule",
"description": "Use: Fetch details for one named availability schedule.\nWhen: User asks about specific schedule rules or needs rules for a named schedule.\nNeeds: Schedule URI from `availability-list_user_availability_schedules`.\nDo: Read `rules` array and `timezone` for display or to inform event-type updates.\nAvoid: Writing to this schedule—use event-type-level update for changes.\nThen: Report schedule details to user or use rules for availability queries.",
"inputSchema": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"description": "Availability schedule URI. not a browsable link — never show to users."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "GetUserAvailabilitySchedule200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "AvailabilitySchedule",
"required": [
"uri",
"default",
"name",
"user",
"timezone",
"rules"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "A URI reference to this Availability Schedule."
},
"name": {
"type": "string",
"title": "Name",
"description": "The name of this Availability Schedule."
},
"user": {
"type": "string",
"title": "User",
"description": "A URI reference to a User."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRule",
"required": [
"type",
"intervals"
],
"properties": {
"date": {
"type": [
"string",
"null"
],
"title": "Date",
"default": null,
"description": "A specific date in the future that this should be applied to (i.e. \"2030-12-31\")."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of this Availability Rule; can be \"wday\" or a specific \"date\"."
},
"wday": {
"type": [
"string",
"null"
],
"title": "Wday",
"default": null,
"description": "The day of the week for which this Rule should be applied to."
},
"intervals": {
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRuleIntervalsInner",
"properties": {
"to": {
"type": [
"string",
"null"
],
"title": "To",
"default": null,
"description": "Format: `\"hh:mm\"`"
},
"from": {
"type": [
"string",
"null"
],
"title": "From",
"default": null,
"description": "Format: `\"hh:mm\"`"
}
},
"description": "AvailabilityRuleIntervalsInner"
},
"title": "Intervals",
"description": "The intervals to be applied to this Rule. Each interval represents when booking a meeting is allowed. If the interval array is empty, then there is no booking availability for that day. Time is in 24h format (i.e. \"17:30\") and local to the timezone in the Availability Schedule."
}
},
"description": "The rules for an availability schedule."
},
"title": "Rules",
"description": "The rules of this Availability Schedule."
},
"default": {
"type": "boolean",
"title": "Default",
"description": "This is the default Availability Schedule in use."
},
"timezone": {
"type": "string",
"title": "Timezone",
"description": "The timezone for which this Availability Schedule is originated in."
}
},
"description": "The availability schedule set by the user."
}
},
"description": "GetUserAvailabilitySchedule200Response"
},
"annotations": {
"title": "get_user_availability_schedule",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
Shorten the title to an action and subject; move usage details into the description.
Description97/100
Use: List a user's busy time blocks within a date range.
When: User asks a general yes/no "what's my schedule", "am I free/busy", or "do I have any meetings" question with no named event type, invitee, or specific meeting. Default here even when the user says "meetings" — see `meetings-list_events` instead when the user wants to see or list which meetings they have.
Needs: User URI from `users-get_current_user` and ISO 8601 start/end range.
Do: Pass user URI and date range; use returned intervals to report conflicts.
Avoid: Substituting for `event_types-list_event_type_available_times` (event-type bookable slots) or `meetings-list_events` (only booked Calendly meetings, not full calendar busy blocks) — they differ.
Then: Use busy intervals to inform scheduling recommendations.
The description explains the capability, when to use it, and what to expect.
Inputs67/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
user
The uri associated with the user
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
start_time
Start time of the requested availability range. Date cannot be in the past.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
end_time
End time of the requested availability range. Date must be in the future of start_time.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Align the output schema with the tool’s documented result.
View output schema
{
"type": "object",
"title": "ListUserBusyTimes200Response",
"required": [
"collection"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "UserBusyTime",
"required": [
"type",
"start_time",
"end_time"
],
"properties": {
"type": {
"type": "string",
"title": "Type",
"description": "Indicates whether the scheduled event is internal ('calendly' or 'reserved') or external"
},
"event": {
"anyOf": [
{
"type": "object",
"title": "UserBusyTimeEvent",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "The uri associated with the calendly scheduled event"
}
},
"description": "UserBusyTimeEvent"
},
{
"type": "null"
}
],
"default": null
},
"end_time": {
"type": "string",
"title": "End Time",
"format": "date-time",
"description": "The end time of the scheduled event in UTC time"
},
"start_time": {
"type": "string",
"title": "Start Time",
"format": "date-time",
"description": "The start time of the scheduled event in UTC time"
},
"buffered_end_time": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Buffered End Time",
"default": null,
"description": "The end time of the calendly event, as calculated by any \"after\" buffer set by the user"
},
"buffered_start_time": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Buffered Start Time",
"default": null,
"description": "The start time of the calendly event, as calculated by any \"before\" buffer set by the user"
}
},
"description": "An internal or external scheduled event for a given user"
},
"title": "Collection",
"description": "The set of internal and external scheduled calendar events matching the criteria"
}
},
"description": "Service Response"
}
Original tool metadata
{
"name": "availability-list_user_busy_times",
"title": "list_user_busy_times",
"description": "Use: List a user's busy time blocks within a date range.\nWhen: User asks a general yes/no \"what's my schedule\", \"am I free/busy\", or \"do I have any meetings\" question with no named event type, invitee, or specific meeting. Default here even when the user says \"meetings\" — see `meetings-list_events` instead when the user wants to see or list which meetings they have.\nNeeds: User URI from `users-get_current_user` and ISO 8601 start/end range.\nDo: Pass user URI and date range; use returned intervals to report conflicts.\nAvoid: Substituting for `event_types-list_event_type_available_times` (event-type bookable slots) or `meetings-list_events` (only booked Calendly meetings, not full calendar busy blocks) — they differ.\nThen: Use busy intervals to inform scheduling recommendations.",
"inputSchema": {
"type": "object",
"required": [
"user",
"start_time",
"end_time"
],
"properties": {
"user": {
"type": "string",
"description": "The uri associated with the user"
},
"end_time": {
"type": "string",
"description": "End time of the requested availability range. Date must be in the future of start_time."
},
"start_time": {
"type": "string",
"description": "Start time of the requested availability range. Date cannot be in the past."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "ListUserBusyTimes200Response",
"required": [
"collection"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "UserBusyTime",
"required": [
"type",
"start_time",
"end_time"
],
"properties": {
"type": {
"type": "string",
"title": "Type",
"description": "Indicates whether the scheduled event is internal ('calendly' or 'reserved') or external"
},
"event": {
"anyOf": [
{
"type": "object",
"title": "UserBusyTimeEvent",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "The uri associated with the calendly scheduled event"
}
},
"description": "UserBusyTimeEvent"
},
{
"type": "null"
}
],
"default": null
},
"end_time": {
"type": "string",
"title": "End Time",
"format": "date-time",
"description": "The end time of the scheduled event in UTC time"
},
"start_time": {
"type": "string",
"title": "Start Time",
"format": "date-time",
"description": "The start time of the scheduled event in UTC time"
},
"buffered_end_time": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Buffered End Time",
"default": null,
"description": "The end time of the calendly event, as calculated by any \"after\" buffer set by the user"
},
"buffered_start_time": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Buffered Start Time",
"default": null,
"description": "The start time of the calendly event, as calculated by any \"before\" buffer set by the user"
}
},
"description": "An internal or external scheduled event for a given user"
},
"title": "Collection",
"description": "The set of internal and external scheduled calendar events matching the criteria"
}
},
"description": "Service Response"
},
"annotations": {
"title": "list_user_busy_times",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Use: Create a new event type on the connected account.
When: User explicitly asks to create a new event type.
Needs: Host user URI from `users-get_current_user`.
Do: Set name, duration, and host URI; omit optional fields unless user specified them.
Avoid: Creating duplicates—call `event_types-list_event_types` first to check for existing types.
Then: Confirm the new event type URI and share the scheduling URL.
Describe the returned information so the agent knows whether it will answer the request.
Inputs46/100
8 of 12 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
create_event_type_request › active
Indicates if the event type is active or not
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
create_event_type_request › owner
The owner for this event type
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
create_event_type_request › name
The event type name
Explain the meaning of this value, not just its name.
create_event_type_request › description
The event type description
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
create_event_type_request › duration
The length of sessions booked with this event type. Must be one of the duration options if they're provided.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
create_event_type_request › duration_options
A maximum of 4 unique options is allowed. Each option must be >= 1 and <= 720.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"title": "CreateEventType201Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "EventType",
"required": [
"active",
"admin_managed",
"booking_method",
"color",
"created_at",
"custom_questions",
"deleted_at",
"description_html",
"description_plain",
"duration",
"duration_options",
"internal_note",
"is_paid",
"kind",
"locale",
"locations",
"name",
"pooling_type",
"position",
"profile",
"scheduling_url",
"secret",
"slug",
"type",
"updated_at",
"uri"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the event type"
},
"kind": {
"type": "string",
"title": "Kind",
"description": "Indicates if the event type is \"solo\" (belongs to an individual user) or \"group\""
},
"name": {
"type": [
"string",
"null"
],
"title": "Name",
"description": "The event type name (in human-readable format)"
},
"slug": {
"type": [
"string",
"null"
],
"title": "Slug",
"description": "The portion of the event type's URL that identifies a specific web page (in a human-readable format)"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the event type is \"AdhocEventType\" (ad hoc event) or \"StandardEventType\" (standard event type)"
},
"color": {
"type": "string",
"title": "Color",
"description": "The hexadecimal color value of the event type's scheduling page"
},
"active": {
"type": "boolean",
"title": "Active",
"description": "Indicates if the event is active or not."
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The locale on the event type, used to determine the language of the event type's scheduling page"
},
"secret": {
"type": "boolean",
"title": "Secret",
"description": "Indicates if the event type is hidden on the owner's main scheduling page"
},
"is_paid": {
"type": "boolean",
"title": "Is Paid"
},
"profile": {
"anyOf": [
{
"type": "object",
"title": "Profile",
"required": [
"type",
"name",
"owner"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Human-readable name for the profile of the user that's associated with the event type"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the profile belongs to a \"user\" (individual) or \"team\""
},
"owner": {
"type": "string",
"title": "Owner",
"description": "The unique reference to the user associated with the profile"
}
},
"description": "The publicly visible profile of a User or a Team that's associated with the Event Type (note: some Event Types don't have profiles)"
},
{
"type": "null"
}
]
},
"duration": {
"type": [
"number",
"integer"
],
"title": "Duration",
"description": "The length of sessions booked with this event type"
},
"position": {
"type": "integer",
"title": "Position",
"description": "Position order of Event Type, starting with 0 (for display purposes)"
},
"locations": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "LocationConfiguration",
"properties": {
"kind": {
"type": [
"string",
"null"
],
"title": "Kind",
"default": null
},
"location": {
"type": [
"string",
"null"
],
"title": "Location",
"default": null
},
"phone_number": {
"type": [
"string",
"null"
],
"title": "Phone Number",
"default": null
},
"additional_info": {
"type": [
"string",
"null"
],
"title": "Additional Info",
"default": null
}
},
"description": "A configuration for an EventType's location"
},
{
"type": "null"
}
]
}
},
{
"type": "null"
}
],
"title": "Locations",
"description": "Configuration information for each possible location for this Event Type"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the event type was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"deleted_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Deleted At",
"description": "The moment the event type was deleted (e.g. \"2020-01-02T03:04:05.678123Z\"). Since event types can be deleted but their scheduled events remain it's useful to fetch a deleted event type when you still require event type data for a scheduled event."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment the event type was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"pooling_type": {
"type": [
"string",
"null"
],
"title": "Pooling Type",
"description": "Indicates if the event type is \"round robin\" (alternates between hosts) or \"collective\" (invitees pick a time when all participants are available) or “multi-pool” (considers availability delineated by pools of participants) or \"null\" (the event type doesn’t consider the availability of a group participants)"
},
"admin_managed": {
"type": "boolean",
"title": "Admin Managed",
"description": "Indicates if this event type is managed by an organization admin"
},
"internal_note": {
"type": [
"string",
"null"
],
"title": "Internal Note",
"description": "Contents of a note that may be associated with the event type"
},
"booking_method": {
"type": "string",
"title": "Booking Method",
"description": "Indicates if the event type is for a poll or an instant booking"
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user’s scheduling site where invitees book this event type"
},
"custom_questions": {
"type": "array",
"items": {
"type": "object",
"title": "EventTypeCustomQuestion",
"required": [
"name",
"type",
"position",
"enabled",
"required",
"answer_choices",
"include_other"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "The custom question that the host created for the event type."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of response that the invitee provides to the custom question; can be one or multiple lines of text, a phone number, or single- or multiple-select."
},
"enabled": {
"type": "boolean",
"title": "Enabled",
"description": "true if the question created by the host is turned ON and visible on the event booking page; false if turned OFF and invisible on the event booking page."
},
"position": {
"type": "integer",
"title": "Position",
"description": "The numerical position of the question on the event booking page after the name and email address fields."
},
"required": {
"type": "boolean",
"title": "Required",
"description": "true if a response to the question created by the host is required for invitees to book the event type; false if not required."
},
"include_other": {
"type": "boolean",
"title": "Include Other",
"description": "true if the custom question lets invitees record a written response in addition to single-select or multiple-select type of responses; false if it doesn’t."
},
"answer_choices": {
"type": "array",
"items": {
"type": "string"
},
"title": "Answer Choices",
"description": "The invitee’s option(s) for single_select or multi_select type of responses."
}
},
"description": "EventTypeCustomQuestion"
},
"title": "Custom Questions"
},
"description_html": {
"type": [
"string",
"null"
],
"title": "Description Html",
"description": "The event type's description (formatted with HTML)"
},
"duration_options": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
],
"title": "Duration Options",
"description": "Array of duration options. Always null for adhoc event types."
},
"description_plain": {
"type": [
"string",
"null"
],
"title": "Description Plain",
"description": "The event type's description (in non formatted text)"
}
},
"description": "A configuration for an Event Type"
}
},
"description": "CreateEventType201Response"
}
Original tool metadata
{
"name": "event_types-create_event_type",
"title": "create_event_type",
"description": "Use: Create a new event type on the connected account.\nWhen: User explicitly asks to create a new event type.\nNeeds: Host user URI from `users-get_current_user`.\nDo: Set name, duration, and host URI; omit optional fields unless user specified them.\nAvoid: Creating duplicates—call `event_types-list_event_types` first to check for existing types.\nThen: Confirm the new event type URI and share the scheduling URL.",
"inputSchema": {
"type": "object",
"required": [
"create_event_type_request"
],
"properties": {
"create_event_type_request": {
"type": "object",
"required": [
"owner",
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The event type name"
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The hexadecimal color value of the event type's scheduling page"
},
"owner": {
"type": "string",
"description": "The owner for this event type"
},
"active": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": true,
"description": "Indicates if the event type is active or not"
},
"locale": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The locale on the event type, used to determine the language of the event type's scheduling page"
},
"duration": {
"anyOf": [
{
"type": "integer",
"maximum": 720,
"minimum": 1
},
{
"type": "null"
}
],
"default": null,
"description": "The length of sessions booked with this event type. Must be one of the duration options if they're provided."
},
"locations": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"location": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"phone_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"additional_info": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"description": "A configuration for an EventType's location"
},
{
"type": "null"
}
]
}
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration information for each possible location for this event type"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The event type description"
},
"duration_options": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
],
"default": null,
"description": "A maximum of 4 unique options is allowed. Each option must be >= 1 and <= 720."
}
},
"description": "(required)"
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "CreateEventType201Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "EventType",
"required": [
"active",
"admin_managed",
"booking_method",
"color",
"created_at",
"custom_questions",
"deleted_at",
"description_html",
"description_plain",
"duration",
"duration_options",
"internal_note",
"is_paid",
"kind",
"locale",
"locations",
"name",
"pooling_type",
"position",
"profile",
"scheduling_url",
"secret",
"slug",
"type",
"updated_at",
"uri"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the event type"
},
"kind": {
"type": "string",
"title": "Kind",
"description": "Indicates if the event type is \"solo\" (belongs to an individual user) or \"group\""
},
"name": {
"type": [
"string",
"null"
],
"title": "Name",
"description": "The event type name (in human-readable format)"
},
"slug": {
"type": [
"string",
"null"
],
"title": "Slug",
"description": "The portion of the event type's URL that identifies a specific web page (in a human-readable format)"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the event type is \"AdhocEventType\" (ad hoc event) or \"StandardEventType\" (standard event type)"
},
"color": {
"type": "string",
"title": "Color",
"description": "The hexadecimal color value of the event type's scheduling page"
},
"active": {
"type": "boolean",
"title": "Active",
"description": "Indicates if the event is active or not."
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The locale on the event type, used to determine the language of the event type's scheduling page"
},
"secret": {
"type": "boolean",
"title": "Secret",
"description": "Indicates if the event type is hidden on the owner's main scheduling page"
},
"is_paid": {
"type": "boolean",
"title": "Is Paid"
},
"profile": {
"anyOf": [
{
"type": "object",
"title": "Profile",
"required": [
"type",
"name",
"owner"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Human-readable name for the profile of the user that's associated with the event type"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the profile belongs to a \"user\" (individual) or \"team\""
},
"owner": {
"type": "string",
"title": "Owner",
"description": "The unique reference to the user associated with the profile"
}
},
"description": "The publicly visible profile of a User or a Team that's associated with the Event Type (note: some Event Types don't have profiles)"
},
{
"type": "null"
}
]
},
"duration": {
"type": [
"number",
"integer"
],
"title": "Duration",
"description": "The length of sessions booked with this event type"
},
"position": {
"type": "integer",
"title": "Position",
"description": "Position order of Event Type, starting with 0 (for display purposes)"
},
"locations": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "LocationConfiguration",
"properties": {
"kind": {
"type": [
"string",
"null"
],
"title": "Kind",
"default": null
},
"location": {
"type": [
"string",
"null"
],
"title": "Location",
"default": null
},
"phone_number": {
"type": [
"string",
"null"
],
"title": "Phone Number",
"default": null
},
"additional_info": {
"type": [
"string",
"null"
],
"title": "Additional Info",
"default": null
}
},
"description": "A configuration for an EventType's location"
},
{
"type": "null"
}
]
}
},
{
"type": "null"
}
],
"title": "Locations",
"description": "Configuration information for each possible location for this Event Type"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the event type was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"deleted_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Deleted At",
"description": "The moment the event type was deleted (e.g. \"2020-01-02T03:04:05.678123Z\"). Since event types can be deleted but their scheduled events remain it's useful to fetch a deleted event type when you still require event type data for a scheduled event."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment the event type was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"pooling_type": {
"type": [
"string",
"null"
],
"title": "Pooling Type",
"description": "Indicates if the event type is \"round robin\" (alternates between hosts) or \"collective\" (invitees pick a time when all participants are available) or “multi-pool” (considers availability delineated by pools of participants) or \"null\" (the event type doesn’t consider the availability of a group participants)"
},
"admin_managed": {
"type": "boolean",
"title": "Admin Managed",
"description": "Indicates if this event type is managed by an organization admin"
},
"internal_note": {
"type": [
"string",
"null"
],
"title": "Internal Note",
"description": "Contents of a note that may be associated with the event type"
},
"booking_method": {
"type": "string",
"title": "Booking Method",
"description": "Indicates if the event type is for a poll or an instant booking"
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user’s scheduling site where invitees book this event type"
},
"custom_questions": {
"type": "array",
"items": {
"type": "object",
"title": "EventTypeCustomQuestion",
"required": [
"name",
"type",
"position",
"enabled",
"required",
"answer_choices",
"include_other"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "The custom question that the host created for the event type."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of response that the invitee provides to the custom question; can be one or multiple lines of text, a phone number, or single- or multiple-select."
},
"enabled": {
"type": "boolean",
"title": "Enabled",
"description": "true if the question created by the host is turned ON and visible on the event booking page; false if turned OFF and invisible on the event booking page."
},
"position": {
"type": "integer",
"title": "Position",
"description": "The numerical position of the question on the event booking page after the name and email address fields."
},
"required": {
"type": "boolean",
"title": "Required",
"description": "true if a response to the question created by the host is required for invitees to book the event type; false if not required."
},
"include_other": {
"type": "boolean",
"title": "Include Other",
"description": "true if the custom question lets invitees record a written response in addition to single-select or multiple-select type of responses; false if it doesn’t."
},
"answer_choices": {
"type": "array",
"items": {
"type": "string"
},
"title": "Answer Choices",
"description": "The invitee’s option(s) for single_select or multi_select type of responses."
}
},
"description": "EventTypeCustomQuestion"
},
"title": "Custom Questions"
},
"description_html": {
"type": [
"string",
"null"
],
"title": "Description Html",
"description": "The event type's description (formatted with HTML)"
},
"duration_options": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
],
"title": "Duration Options",
"description": "Array of duration options. Always null for adhoc event types."
},
"description_plain": {
"type": [
"string",
"null"
],
"title": "Description Plain",
"description": "The event type's description (in non formatted text)"
}
},
"description": "A configuration for an Event Type"
}
},
"description": "CreateEventType201Response"
},
"annotations": {
"title": "create_event_type",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
Use: Update fields on an existing event type.
When: User asks to change name, duration, description, or other settings.
Needs: Event type URI from `event_types-list_event_types` or `event_types-get_event_type`.
Do: Read current state first with `event_types-get_event_type`; patch only requested fields.
Avoid: Sending fields not read from current state—partial writes may reset unset fields.
Then: Confirm changes with `event_types-get_event_type`.
The description explains the capability, when to use it, and what to expect.
Inputs52/100
8 of 12 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
uri
Event type URI. not a browsable link — never show to users.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
update_event_type_request › active
Indicates if the event type is active or not
Explain what happens when this optional value is omitted.
update_event_type_request › name
The event type name
Clear enough to supply this argument.
update_event_type_request › color
The hexadecimal color value of the event type's scheduling page
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
update_event_type_request › description
The event type description
Clear enough to supply this argument.
update_event_type_request › duration
The length of sessions booked with this event type. Must be one of the duration options if they're provided.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
update_event_type_request › duration_options
A maximum of 4 unique options is allowed. Each option must be >= 1 and <= 720.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
update_event_type_request › locale
The locale on the event type, used to determine the language of the event type's scheduling page
Align the output schema with the tool’s documented result.
View output schema
{
"type": "object",
"title": "CreateEventType201Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "EventType",
"required": [
"active",
"admin_managed",
"booking_method",
"color",
"created_at",
"custom_questions",
"deleted_at",
"description_html",
"description_plain",
"duration",
"duration_options",
"internal_note",
"is_paid",
"kind",
"locale",
"locations",
"name",
"pooling_type",
"position",
"profile",
"scheduling_url",
"secret",
"slug",
"type",
"updated_at",
"uri"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the event type"
},
"kind": {
"type": "string",
"title": "Kind",
"description": "Indicates if the event type is \"solo\" (belongs to an individual user) or \"group\""
},
"name": {
"type": [
"string",
"null"
],
"title": "Name",
"description": "The event type name (in human-readable format)"
},
"slug": {
"type": [
"string",
"null"
],
"title": "Slug",
"description": "The portion of the event type's URL that identifies a specific web page (in a human-readable format)"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the event type is \"AdhocEventType\" (ad hoc event) or \"StandardEventType\" (standard event type)"
},
"color": {
"type": "string",
"title": "Color",
"description": "The hexadecimal color value of the event type's scheduling page"
},
"active": {
"type": "boolean",
"title": "Active",
"description": "Indicates if the event is active or not."
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The locale on the event type, used to determine the language of the event type's scheduling page"
},
"secret": {
"type": "boolean",
"title": "Secret",
"description": "Indicates if the event type is hidden on the owner's main scheduling page"
},
"is_paid": {
"type": "boolean",
"title": "Is Paid"
},
"profile": {
"anyOf": [
{
"type": "object",
"title": "Profile",
"required": [
"type",
"name",
"owner"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Human-readable name for the profile of the user that's associated with the event type"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the profile belongs to a \"user\" (individual) or \"team\""
},
"owner": {
"type": "string",
"title": "Owner",
"description": "The unique reference to the user associated with the profile"
}
},
"description": "The publicly visible profile of a User or a Team that's associated with the Event Type (note: some Event Types don't have profiles)"
},
{
"type": "null"
}
]
},
"duration": {
"type": [
"number",
"integer"
],
"title": "Duration",
"description": "The length of sessions booked with this event type"
},
"position": {
"type": "integer",
"title": "Position",
"description": "Position order of Event Type, starting with 0 (for display purposes)"
},
"locations": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "LocationConfiguration",
"properties": {
"kind": {
"type": [
"string",
"null"
],
"title": "Kind",
"default": null
},
"location": {
"type": [
"string",
"null"
],
"title": "Location",
"default": null
},
"phone_number": {
"type": [
"string",
"null"
],
"title": "Phone Number",
"default": null
},
"additional_info": {
"type": [
"string",
"null"
],
"title": "Additional Info",
"default": null
}
},
"description": "A configuration for an EventType's location"
},
{
"type": "null"
}
]
}
},
{
"type": "null"
}
],
"title": "Locations",
"description": "Configuration information for each possible location for this Event Type"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the event type was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"deleted_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Deleted At",
"description": "The moment the event type was deleted (e.g. \"2020-01-02T03:04:05.678123Z\"). Since event types can be deleted but their scheduled events remain it's useful to fetch a deleted event type when you still require event type data for a scheduled event."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment the event type was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"pooling_type": {
"type": [
"string",
"null"
],
"title": "Pooling Type",
"description": "Indicates if the event type is \"round robin\" (alternates between hosts) or \"collective\" (invitees pick a time when all participants are available) or “multi-pool” (considers availability delineated by pools of participants) or \"null\" (the event type doesn’t consider the availability of a group participants)"
},
"admin_managed": {
"type": "boolean",
"title": "Admin Managed",
"description": "Indicates if this event type is managed by an organization admin"
},
"internal_note": {
"type": [
"string",
"null"
],
"title": "Internal Note",
"description": "Contents of a note that may be associated with the event type"
},
"booking_method": {
"type": "string",
"title": "Booking Method",
"description": "Indicates if the event type is for a poll or an instant booking"
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user’s scheduling site where invitees book this event type"
},
"custom_questions": {
"type": "array",
"items": {
"type": "object",
"title": "EventTypeCustomQuestion",
"required": [
"name",
"type",
"position",
"enabled",
"required",
"answer_choices",
"include_other"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "The custom question that the host created for the event type."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of response that the invitee provides to the custom question; can be one or multiple lines of text, a phone number, or single- or multiple-select."
},
"enabled": {
"type": "boolean",
"title": "Enabled",
"description": "true if the question created by the host is turned ON and visible on the event booking page; false if turned OFF and invisible on the event booking page."
},
"position": {
"type": "integer",
"title": "Position",
"description": "The numerical position of the question on the event booking page after the name and email address fields."
},
"required": {
"type": "boolean",
"title": "Required",
"description": "true if a response to the question created by the host is required for invitees to book the event type; false if not required."
},
"include_other": {
"type": "boolean",
"title": "Include Other",
"description": "true if the custom question lets invitees record a written response in addition to single-select or multiple-select type of responses; false if it doesn’t."
},
"answer_choices": {
"type": "array",
"items": {
"type": "string"
},
"title": "Answer Choices",
"description": "The invitee’s option(s) for single_select or multi_select type of responses."
}
},
"description": "EventTypeCustomQuestion"
},
"title": "Custom Questions"
},
"description_html": {
"type": [
"string",
"null"
],
"title": "Description Html",
"description": "The event type's description (formatted with HTML)"
},
"duration_options": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
],
"title": "Duration Options",
"description": "Array of duration options. Always null for adhoc event types."
},
"description_plain": {
"type": [
"string",
"null"
],
"title": "Description Plain",
"description": "The event type's description (in non formatted text)"
}
},
"description": "A configuration for an Event Type"
}
},
"description": "CreateEventType201Response"
}
Original tool metadata
{
"name": "event_types-update_event_type",
"title": "update_event_type",
"description": "Use: Update fields on an existing event type.\nWhen: User asks to change name, duration, description, or other settings.\nNeeds: Event type URI from `event_types-list_event_types` or `event_types-get_event_type`.\nDo: Read current state first with `event_types-get_event_type`; patch only requested fields.\nAvoid: Sending fields not read from current state—partial writes may reset unset fields.\nThen: Confirm changes with `event_types-get_event_type`.",
"inputSchema": {
"type": "object",
"required": [
"update_event_type_request",
"uri"
],
"properties": {
"uri": {
"type": "string",
"description": "Event type URI. not a browsable link — never show to users."
},
"update_event_type_request": {
"type": "object",
"properties": {
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The event type name"
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The hexadecimal color value of the event type's scheduling page"
},
"active": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates if the event type is active or not"
},
"locale": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The locale on the event type, used to determine the language of the event type's scheduling page"
},
"duration": {
"anyOf": [
{
"type": "integer",
"maximum": 720,
"minimum": 1
},
{
"type": "null"
}
],
"default": null,
"description": "The length of sessions booked with this event type. Must be one of the duration options if they're provided."
},
"locations": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"location": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"phone_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"additional_info": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"description": "A configuration for an EventType's location"
},
{
"type": "null"
}
]
}
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration information for each possible location for this Event Type"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The event type description"
},
"duration_options": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
],
"default": null,
"description": "A maximum of 4 unique options is allowed. Each option must be >= 1 and <= 720."
}
},
"description": "(required)"
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "CreateEventType201Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "EventType",
"required": [
"active",
"admin_managed",
"booking_method",
"color",
"created_at",
"custom_questions",
"deleted_at",
"description_html",
"description_plain",
"duration",
"duration_options",
"internal_note",
"is_paid",
"kind",
"locale",
"locations",
"name",
"pooling_type",
"position",
"profile",
"scheduling_url",
"secret",
"slug",
"type",
"updated_at",
"uri"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the event type"
},
"kind": {
"type": "string",
"title": "Kind",
"description": "Indicates if the event type is \"solo\" (belongs to an individual user) or \"group\""
},
"name": {
"type": [
"string",
"null"
],
"title": "Name",
"description": "The event type name (in human-readable format)"
},
"slug": {
"type": [
"string",
"null"
],
"title": "Slug",
"description": "The portion of the event type's URL that identifies a specific web page (in a human-readable format)"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the event type is \"AdhocEventType\" (ad hoc event) or \"StandardEventType\" (standard event type)"
},
"color": {
"type": "string",
"title": "Color",
"description": "The hexadecimal color value of the event type's scheduling page"
},
"active": {
"type": "boolean",
"title": "Active",
"description": "Indicates if the event is active or not."
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The locale on the event type, used to determine the language of the event type's scheduling page"
},
"secret": {
"type": "boolean",
"title": "Secret",
"description": "Indicates if the event type is hidden on the owner's main scheduling page"
},
"is_paid": {
"type": "boolean",
"title": "Is Paid"
},
"profile": {
"anyOf": [
{
"type": "object",
"title": "Profile",
"required": [
"type",
"name",
"owner"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Human-readable name for the profile of the user that's associated with the event type"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the profile belongs to a \"user\" (individual) or \"team\""
},
"owner": {
"type": "string",
"title": "Owner",
"description": "The unique reference to the user associated with the profile"
}
},
"description": "The publicly visible profile of a User or a Team that's associated with the Event Type (note: some Event Types don't have profiles)"
},
{
"type": "null"
}
]
},
"duration": {
"type": [
"number",
"integer"
],
"title": "Duration",
"description": "The length of sessions booked with this event type"
},
"position": {
"type": "integer",
"title": "Position",
"description": "Position order of Event Type, starting with 0 (for display purposes)"
},
"locations": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "LocationConfiguration",
"properties": {
"kind": {
"type": [
"string",
"null"
],
"title": "Kind",
"default": null
},
"location": {
"type": [
"string",
"null"
],
"title": "Location",
"default": null
},
"phone_number": {
"type": [
"string",
"null"
],
"title": "Phone Number",
"default": null
},
"additional_info": {
"type": [
"string",
"null"
],
"title": "Additional Info",
"default": null
}
},
"description": "A configuration for an EventType's location"
},
{
"type": "null"
}
]
}
},
{
"type": "null"
}
],
"title": "Locations",
"description": "Configuration information for each possible location for this Event Type"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the event type was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"deleted_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Deleted At",
"description": "The moment the event type was deleted (e.g. \"2020-01-02T03:04:05.678123Z\"). Since event types can be deleted but their scheduled events remain it's useful to fetch a deleted event type when you still require event type data for a scheduled event."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment the event type was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"pooling_type": {
"type": [
"string",
"null"
],
"title": "Pooling Type",
"description": "Indicates if the event type is \"round robin\" (alternates between hosts) or \"collective\" (invitees pick a time when all participants are available) or “multi-pool” (considers availability delineated by pools of participants) or \"null\" (the event type doesn’t consider the availability of a group participants)"
},
"admin_managed": {
"type": "boolean",
"title": "Admin Managed",
"description": "Indicates if this event type is managed by an organization admin"
},
"internal_note": {
"type": [
"string",
"null"
],
"title": "Internal Note",
"description": "Contents of a note that may be associated with the event type"
},
"booking_method": {
"type": "string",
"title": "Booking Method",
"description": "Indicates if the event type is for a poll or an instant booking"
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user’s scheduling site where invitees book this event type"
},
"custom_questions": {
"type": "array",
"items": {
"type": "object",
"title": "EventTypeCustomQuestion",
"required": [
"name",
"type",
"position",
"enabled",
"required",
"answer_choices",
"include_other"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "The custom question that the host created for the event type."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of response that the invitee provides to the custom question; can be one or multiple lines of text, a phone number, or single- or multiple-select."
},
"enabled": {
"type": "boolean",
"title": "Enabled",
"description": "true if the question created by the host is turned ON and visible on the event booking page; false if turned OFF and invisible on the event booking page."
},
"position": {
"type": "integer",
"title": "Position",
"description": "The numerical position of the question on the event booking page after the name and email address fields."
},
"required": {
"type": "boolean",
"title": "Required",
"description": "true if a response to the question created by the host is required for invitees to book the event type; false if not required."
},
"include_other": {
"type": "boolean",
"title": "Include Other",
"description": "true if the custom question lets invitees record a written response in addition to single-select or multiple-select type of responses; false if it doesn’t."
},
"answer_choices": {
"type": "array",
"items": {
"type": "string"
},
"title": "Answer Choices",
"description": "The invitee’s option(s) for single_select or multi_select type of responses."
}
},
"description": "EventTypeCustomQuestion"
},
"title": "Custom Questions"
},
"description_html": {
"type": [
"string",
"null"
],
"title": "Description Html",
"description": "The event type's description (formatted with HTML)"
},
"duration_options": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
],
"title": "Duration Options",
"description": "Array of duration options. Always null for adhoc event types."
},
"description_plain": {
"type": [
"string",
"null"
],
"title": "Description Plain",
"description": "The event type's description (in non formatted text)"
}
},
"description": "A configuration for an Event Type"
}
},
"description": "CreateEventType201Response"
},
"annotations": {
"title": "update_event_type",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description86/100
Use: List all event types for the connected user or org.
When: Start of any event-type task, or when selecting an event type by name.
Needs: User URI from `users-get_current_user`.
Do: Filter by current user URI unless user explicitly asks about a different host or org.
Avoid: Assuming a cached list is current—call fresh each session.
Then: Carry the selected `uri` into get, update, or availability tools.
The description explains the capability, when to use it, and what to expect.
Inputs69/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
active
Return only active event types if true, only inactive if false, or all event types if this parameter is omitted.
Clear enough to supply this argument.
organization
View available personal, team, and organization event types associated with the organization's URI.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
user
View available personal, team, and organization event types associated with the user's URI.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
user_availability_schedule
Used in conjunction with `user` parameter, returns a filtered list of Event Types that use the given primary availability schedule.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
sort
Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values.Supported fields are: name, position, created_at, updated_at. Sort direction is specified as: asc, desc.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
admin_managed
Return only admin managed event types if true, exclude admin managed event types if false, or include all event types if this parameter is omitted.
Clear enough to supply this argument.
page_token
The token to pass to get the next or previous portion of the collection
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
count
The number of rows to return
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"title": "ListEventTypes200Response",
"required": [
"collection",
"pagination"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "EventType",
"required": [
"active",
"admin_managed",
"booking_method",
"color",
"created_at",
"custom_questions",
"deleted_at",
"description_html",
"description_plain",
"duration",
"duration_options",
"internal_note",
"is_paid",
"kind",
"locale",
"locations",
"name",
"pooling_type",
"position",
"profile",
"scheduling_url",
"secret",
"slug",
"type",
"updated_at",
"uri"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the event type"
},
"kind": {
"type": "string",
"title": "Kind",
"description": "Indicates if the event type is \"solo\" (belongs to an individual user) or \"group\""
},
"name": {
"type": [
"string",
"null"
],
"title": "Name",
"description": "The event type name (in human-readable format)"
},
"slug": {
"type": [
"string",
"null"
],
"title": "Slug",
"description": "The portion of the event type's URL that identifies a specific web page (in a human-readable format)"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the event type is \"AdhocEventType\" (ad hoc event) or \"StandardEventType\" (standard event type)"
},
"color": {
"type": "string",
"title": "Color",
"description": "The hexadecimal color value of the event type's scheduling page"
},
"active": {
"type": "boolean",
"title": "Active",
"description": "Indicates if the event is active or not."
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The locale on the event type, used to determine the language of the event type's scheduling page"
},
"secret": {
"type": "boolean",
"title": "Secret",
"description": "Indicates if the event type is hidden on the owner's main scheduling page"
},
"is_paid": {
"type": "boolean",
"title": "Is Paid"
},
"profile": {
"anyOf": [
{
"type": "object",
"title": "Profile",
"required": [
"type",
"name",
"owner"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Human-readable name for the profile of the user that's associated with the event type"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the profile belongs to a \"user\" (individual) or \"team\""
},
"owner": {
"type": "string",
"title": "Owner",
"description": "The unique reference to the user associated with the profile"
}
},
"description": "The publicly visible profile of a User or a Team that's associated with the Event Type (note: some Event Types don't have profiles)"
},
{
"type": "null"
}
]
},
"duration": {
"type": [
"number",
"integer"
],
"title": "Duration",
"description": "The length of sessions booked with this event type"
},
"position": {
"type": "integer",
"title": "Position",
"description": "Position order of Event Type, starting with 0 (for display purposes)"
},
"locations": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "LocationConfiguration",
"properties": {
"kind": {
"type": [
"string",
"null"
],
"title": "Kind",
"default": null
},
"location": {
"type": [
"string",
"null"
],
"title": "Location",
"default": null
},
"phone_number": {
"type": [
"string",
"null"
],
"title": "Phone Number",
"default": null
},
"additional_info": {
"type": [
"string",
"null"
],
"title": "Additional Info",
"default": null
}
},
"description": "A configuration for an EventType's location"
},
{
"type": "null"
}
]
}
},
{
"type": "null"
}
],
"title": "Locations",
"description": "Configuration information for each possible location for this Event Type"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the event type was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"deleted_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Deleted At",
"description": "The moment the event type was deleted (e.g. \"2020-01-02T03:04:05.678123Z\"). Since event types can be deleted but their scheduled events remain it's useful to fetch a deleted event type when you still require event type data for a scheduled event."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment the event type was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"pooling_type": {
"type": [
"string",
"null"
],
"title": "Pooling Type",
"description": "Indicates if the event type is \"round robin\" (alternates between hosts) or \"collective\" (invitees pick a time when all participants are available) or “multi-pool” (considers availability delineated by pools of participants) or \"null\" (the event type doesn’t consider the availability of a group participants)"
},
"admin_managed": {
"type": "boolean",
"title": "Admin Managed",
"description": "Indicates if this event type is managed by an organization admin"
},
"internal_note": {
"type": [
"string",
"null"
],
"title": "Internal Note",
"description": "Contents of a note that may be associated with the event type"
},
"booking_method": {
"type": "string",
"title": "Booking Method",
"description": "Indicates if the event type is for a poll or an instant booking"
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user’s scheduling site where invitees book this event type"
},
"custom_questions": {
"type": "array",
"items": {
"type": "object",
"title": "EventTypeCustomQuestion",
"required": [
"name",
"type",
"position",
"enabled",
"required",
"answer_choices",
"include_other"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "The custom question that the host created for the event type."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of response that the invitee provides to the custom question; can be one or multiple lines of text, a phone number, or single- or multiple-select."
},
"enabled": {
"type": "boolean",
"title": "Enabled",
"description": "true if the question created by the host is turned ON and visible on the event booking page; false if turned OFF and invisible on the event booking page."
},
"position": {
"type": "integer",
"title": "Position",
"description": "The numerical position of the question on the event booking page after the name and email address fields."
},
"required": {
"type": "boolean",
"title": "Required",
"description": "true if a response to the question created by the host is required for invitees to book the event type; false if not required."
},
"include_other": {
"type": "boolean",
"title": "Include Other",
"description": "true if the custom question lets invitees record a written response in addition to single-select or multiple-select type of responses; false if it doesn’t."
},
"answer_choices": {
"type": "array",
"items": {
"type": "string"
},
"title": "Answer Choices",
"description": "The invitee’s option(s) for single_select or multi_select type of responses."
}
},
"description": "EventTypeCustomQuestion"
},
"title": "Custom Questions"
},
"description_html": {
"type": [
"string",
"null"
],
"title": "Description Html",
"description": "The event type's description (formatted with HTML)"
},
"duration_options": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
],
"title": "Duration Options",
"description": "Array of duration options. Always null for adhoc event types."
},
"description_plain": {
"type": [
"string",
"null"
],
"title": "Description Plain",
"description": "The event type's description (in non formatted text)"
}
},
"description": "A configuration for an Event Type"
},
"title": "Collection"
},
"pagination": {
"type": "object",
"title": "Pagination",
"required": [
"count",
"next_page",
"previous_page",
"next_page_token",
"previous_page_token"
],
"properties": {
"count": {
"type": "integer",
"title": "Count",
"maximum": 100,
"minimum": 0,
"description": "The number of rows to return"
},
"next_page": {
"type": [
"string",
"null"
],
"title": "Next Page",
"description": "URI to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page": {
"type": [
"string",
"null"
],
"title": "Previous Page",
"description": "URI to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
},
"next_page_token": {
"type": [
"string",
"null"
],
"title": "Next Page Token",
"description": "Token to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page_token": {
"type": [
"string",
"null"
],
"title": "Previous Page Token",
"description": "Token to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
}
},
"description": "Pagination"
}
},
"description": "Service response"
}
Original tool metadata
{
"name": "event_types-list_event_types",
"title": "list_event_types",
"description": "Use: List all event types for the connected user or org.\nWhen: Start of any event-type task, or when selecting an event type by name.\nNeeds: User URI from `users-get_current_user`.\nDo: Filter by current user URI unless user explicitly asks about a different host or org.\nAvoid: Assuming a cached list is current—call fresh each session.\nThen: Carry the selected `uri` into get, update, or availability tools.",
"inputSchema": {
"type": "object",
"properties": {
"sort": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values.Supported fields are: name, position, created_at, updated_at. Sort direction is specified as: asc, desc."
},
"user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "View available personal, team, and organization event types associated with the user's URI."
},
"count": {
"anyOf": [
{
"type": "integer",
"maximum": 100,
"minimum": 1
},
{
"type": "null"
}
],
"default": null,
"description": "The number of rows to return"
},
"active": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Return only active event types if true, only inactive if false, or all event types if this parameter is omitted."
},
"page_token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The token to pass to get the next or previous portion of the collection"
},
"organization": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "View available personal, team, and organization event types associated with the organization's URI."
},
"admin_managed": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Return only admin managed event types if true, exclude admin managed event types if false, or include all event types if this parameter is omitted."
},
"user_availability_schedule": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Used in conjunction with `user` parameter, returns a filtered list of Event Types that use the given primary availability schedule."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "ListEventTypes200Response",
"required": [
"collection",
"pagination"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "EventType",
"required": [
"active",
"admin_managed",
"booking_method",
"color",
"created_at",
"custom_questions",
"deleted_at",
"description_html",
"description_plain",
"duration",
"duration_options",
"internal_note",
"is_paid",
"kind",
"locale",
"locations",
"name",
"pooling_type",
"position",
"profile",
"scheduling_url",
"secret",
"slug",
"type",
"updated_at",
"uri"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the event type"
},
"kind": {
"type": "string",
"title": "Kind",
"description": "Indicates if the event type is \"solo\" (belongs to an individual user) or \"group\""
},
"name": {
"type": [
"string",
"null"
],
"title": "Name",
"description": "The event type name (in human-readable format)"
},
"slug": {
"type": [
"string",
"null"
],
"title": "Slug",
"description": "The portion of the event type's URL that identifies a specific web page (in a human-readable format)"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the event type is \"AdhocEventType\" (ad hoc event) or \"StandardEventType\" (standard event type)"
},
"color": {
"type": "string",
"title": "Color",
"description": "The hexadecimal color value of the event type's scheduling page"
},
"active": {
"type": "boolean",
"title": "Active",
"description": "Indicates if the event is active or not."
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The locale on the event type, used to determine the language of the event type's scheduling page"
},
"secret": {
"type": "boolean",
"title": "Secret",
"description": "Indicates if the event type is hidden on the owner's main scheduling page"
},
"is_paid": {
"type": "boolean",
"title": "Is Paid"
},
"profile": {
"anyOf": [
{
"type": "object",
"title": "Profile",
"required": [
"type",
"name",
"owner"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Human-readable name for the profile of the user that's associated with the event type"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the profile belongs to a \"user\" (individual) or \"team\""
},
"owner": {
"type": "string",
"title": "Owner",
"description": "The unique reference to the user associated with the profile"
}
},
"description": "The publicly visible profile of a User or a Team that's associated with the Event Type (note: some Event Types don't have profiles)"
},
{
"type": "null"
}
]
},
"duration": {
"type": [
"number",
"integer"
],
"title": "Duration",
"description": "The length of sessions booked with this event type"
},
"position": {
"type": "integer",
"title": "Position",
"description": "Position order of Event Type, starting with 0 (for display purposes)"
},
"locations": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "LocationConfiguration",
"properties": {
"kind": {
"type": [
"string",
"null"
],
"title": "Kind",
"default": null
},
"location": {
"type": [
"string",
"null"
],
"title": "Location",
"default": null
},
"phone_number": {
"type": [
"string",
"null"
],
"title": "Phone Number",
"default": null
},
"additional_info": {
"type": [
"string",
"null"
],
"title": "Additional Info",
"default": null
}
},
"description": "A configuration for an EventType's location"
},
{
"type": "null"
}
]
}
},
{
"type": "null"
}
],
"title": "Locations",
"description": "Configuration information for each possible location for this Event Type"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the event type was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"deleted_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Deleted At",
"description": "The moment the event type was deleted (e.g. \"2020-01-02T03:04:05.678123Z\"). Since event types can be deleted but their scheduled events remain it's useful to fetch a deleted event type when you still require event type data for a scheduled event."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment the event type was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"pooling_type": {
"type": [
"string",
"null"
],
"title": "Pooling Type",
"description": "Indicates if the event type is \"round robin\" (alternates between hosts) or \"collective\" (invitees pick a time when all participants are available) or “multi-pool” (considers availability delineated by pools of participants) or \"null\" (the event type doesn’t consider the availability of a group participants)"
},
"admin_managed": {
"type": "boolean",
"title": "Admin Managed",
"description": "Indicates if this event type is managed by an organization admin"
},
"internal_note": {
"type": [
"string",
"null"
],
"title": "Internal Note",
"description": "Contents of a note that may be associated with the event type"
},
"booking_method": {
"type": "string",
"title": "Booking Method",
"description": "Indicates if the event type is for a poll or an instant booking"
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user’s scheduling site where invitees book this event type"
},
"custom_questions": {
"type": "array",
"items": {
"type": "object",
"title": "EventTypeCustomQuestion",
"required": [
"name",
"type",
"position",
"enabled",
"required",
"answer_choices",
"include_other"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "The custom question that the host created for the event type."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of response that the invitee provides to the custom question; can be one or multiple lines of text, a phone number, or single- or multiple-select."
},
"enabled": {
"type": "boolean",
"title": "Enabled",
"description": "true if the question created by the host is turned ON and visible on the event booking page; false if turned OFF and invisible on the event booking page."
},
"position": {
"type": "integer",
"title": "Position",
"description": "The numerical position of the question on the event booking page after the name and email address fields."
},
"required": {
"type": "boolean",
"title": "Required",
"description": "true if a response to the question created by the host is required for invitees to book the event type; false if not required."
},
"include_other": {
"type": "boolean",
"title": "Include Other",
"description": "true if the custom question lets invitees record a written response in addition to single-select or multiple-select type of responses; false if it doesn’t."
},
"answer_choices": {
"type": "array",
"items": {
"type": "string"
},
"title": "Answer Choices",
"description": "The invitee’s option(s) for single_select or multi_select type of responses."
}
},
"description": "EventTypeCustomQuestion"
},
"title": "Custom Questions"
},
"description_html": {
"type": [
"string",
"null"
],
"title": "Description Html",
"description": "The event type's description (formatted with HTML)"
},
"duration_options": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
],
"title": "Duration Options",
"description": "Array of duration options. Always null for adhoc event types."
},
"description_plain": {
"type": [
"string",
"null"
],
"title": "Description Plain",
"description": "The event type's description (in non formatted text)"
}
},
"description": "A configuration for an Event Type"
},
"title": "Collection"
},
"pagination": {
"type": "object",
"title": "Pagination",
"required": [
"count",
"next_page",
"previous_page",
"next_page_token",
"previous_page_token"
],
"properties": {
"count": {
"type": "integer",
"title": "Count",
"maximum": 100,
"minimum": 0,
"description": "The number of rows to return"
},
"next_page": {
"type": [
"string",
"null"
],
"title": "Next Page",
"description": "URI to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page": {
"type": [
"string",
"null"
],
"title": "Previous Page",
"description": "URI to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
},
"next_page_token": {
"type": [
"string",
"null"
],
"title": "Next Page Token",
"description": "Token to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page_token": {
"type": [
"string",
"null"
],
"title": "Previous Page Token",
"description": "Token to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
}
},
"description": "Pagination"
}
},
"description": "Service response"
},
"annotations": {
"title": "list_event_types",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
Use: Fetch full details for one event type by URI.
When: Before updating an event type or confirming its current configuration.
Needs: Event type URI.
Do: Use the returned fields as the baseline for any patch payload.
Avoid: Constructing update payloads without reading current state first.
Then: Proceed with `event_types-update_event_type` using the returned data as base.
The description explains the capability, when to use it, and what to expect.
Inputs93/100
Input documentation gives an agent enough context to populate the arguments.
uri
Event type URI. not a browsable link — never show to users.
Align the output schema with the tool’s documented result.
View output schema
{
"type": "object",
"title": "CreateEventType201Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "EventType",
"required": [
"active",
"admin_managed",
"booking_method",
"color",
"created_at",
"custom_questions",
"deleted_at",
"description_html",
"description_plain",
"duration",
"duration_options",
"internal_note",
"is_paid",
"kind",
"locale",
"locations",
"name",
"pooling_type",
"position",
"profile",
"scheduling_url",
"secret",
"slug",
"type",
"updated_at",
"uri"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the event type"
},
"kind": {
"type": "string",
"title": "Kind",
"description": "Indicates if the event type is \"solo\" (belongs to an individual user) or \"group\""
},
"name": {
"type": [
"string",
"null"
],
"title": "Name",
"description": "The event type name (in human-readable format)"
},
"slug": {
"type": [
"string",
"null"
],
"title": "Slug",
"description": "The portion of the event type's URL that identifies a specific web page (in a human-readable format)"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the event type is \"AdhocEventType\" (ad hoc event) or \"StandardEventType\" (standard event type)"
},
"color": {
"type": "string",
"title": "Color",
"description": "The hexadecimal color value of the event type's scheduling page"
},
"active": {
"type": "boolean",
"title": "Active",
"description": "Indicates if the event is active or not."
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The locale on the event type, used to determine the language of the event type's scheduling page"
},
"secret": {
"type": "boolean",
"title": "Secret",
"description": "Indicates if the event type is hidden on the owner's main scheduling page"
},
"is_paid": {
"type": "boolean",
"title": "Is Paid"
},
"profile": {
"anyOf": [
{
"type": "object",
"title": "Profile",
"required": [
"type",
"name",
"owner"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Human-readable name for the profile of the user that's associated with the event type"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the profile belongs to a \"user\" (individual) or \"team\""
},
"owner": {
"type": "string",
"title": "Owner",
"description": "The unique reference to the user associated with the profile"
}
},
"description": "The publicly visible profile of a User or a Team that's associated with the Event Type (note: some Event Types don't have profiles)"
},
{
"type": "null"
}
]
},
"duration": {
"type": [
"number",
"integer"
],
"title": "Duration",
"description": "The length of sessions booked with this event type"
},
"position": {
"type": "integer",
"title": "Position",
"description": "Position order of Event Type, starting with 0 (for display purposes)"
},
"locations": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "LocationConfiguration",
"properties": {
"kind": {
"type": [
"string",
"null"
],
"title": "Kind",
"default": null
},
"location": {
"type": [
"string",
"null"
],
"title": "Location",
"default": null
},
"phone_number": {
"type": [
"string",
"null"
],
"title": "Phone Number",
"default": null
},
"additional_info": {
"type": [
"string",
"null"
],
"title": "Additional Info",
"default": null
}
},
"description": "A configuration for an EventType's location"
},
{
"type": "null"
}
]
}
},
{
"type": "null"
}
],
"title": "Locations",
"description": "Configuration information for each possible location for this Event Type"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the event type was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"deleted_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Deleted At",
"description": "The moment the event type was deleted (e.g. \"2020-01-02T03:04:05.678123Z\"). Since event types can be deleted but their scheduled events remain it's useful to fetch a deleted event type when you still require event type data for a scheduled event."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment the event type was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"pooling_type": {
"type": [
"string",
"null"
],
"title": "Pooling Type",
"description": "Indicates if the event type is \"round robin\" (alternates between hosts) or \"collective\" (invitees pick a time when all participants are available) or “multi-pool” (considers availability delineated by pools of participants) or \"null\" (the event type doesn’t consider the availability of a group participants)"
},
"admin_managed": {
"type": "boolean",
"title": "Admin Managed",
"description": "Indicates if this event type is managed by an organization admin"
},
"internal_note": {
"type": [
"string",
"null"
],
"title": "Internal Note",
"description": "Contents of a note that may be associated with the event type"
},
"booking_method": {
"type": "string",
"title": "Booking Method",
"description": "Indicates if the event type is for a poll or an instant booking"
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user’s scheduling site where invitees book this event type"
},
"custom_questions": {
"type": "array",
"items": {
"type": "object",
"title": "EventTypeCustomQuestion",
"required": [
"name",
"type",
"position",
"enabled",
"required",
"answer_choices",
"include_other"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "The custom question that the host created for the event type."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of response that the invitee provides to the custom question; can be one or multiple lines of text, a phone number, or single- or multiple-select."
},
"enabled": {
"type": "boolean",
"title": "Enabled",
"description": "true if the question created by the host is turned ON and visible on the event booking page; false if turned OFF and invisible on the event booking page."
},
"position": {
"type": "integer",
"title": "Position",
"description": "The numerical position of the question on the event booking page after the name and email address fields."
},
"required": {
"type": "boolean",
"title": "Required",
"description": "true if a response to the question created by the host is required for invitees to book the event type; false if not required."
},
"include_other": {
"type": "boolean",
"title": "Include Other",
"description": "true if the custom question lets invitees record a written response in addition to single-select or multiple-select type of responses; false if it doesn’t."
},
"answer_choices": {
"type": "array",
"items": {
"type": "string"
},
"title": "Answer Choices",
"description": "The invitee’s option(s) for single_select or multi_select type of responses."
}
},
"description": "EventTypeCustomQuestion"
},
"title": "Custom Questions"
},
"description_html": {
"type": [
"string",
"null"
],
"title": "Description Html",
"description": "The event type's description (formatted with HTML)"
},
"duration_options": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
],
"title": "Duration Options",
"description": "Array of duration options. Always null for adhoc event types."
},
"description_plain": {
"type": [
"string",
"null"
],
"title": "Description Plain",
"description": "The event type's description (in non formatted text)"
}
},
"description": "A configuration for an Event Type"
}
},
"description": "CreateEventType201Response"
}
Original tool metadata
{
"name": "event_types-get_event_type",
"title": "get_event_type",
"description": "Use: Fetch full details for one event type by URI.\nWhen: Before updating an event type or confirming its current configuration.\nNeeds: Event type URI.\nDo: Use the returned fields as the baseline for any patch payload.\nAvoid: Constructing update payloads without reading current state first.\nThen: Proceed with `event_types-update_event_type` using the returned data as base.",
"inputSchema": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"description": "Event type URI. not a browsable link — never show to users."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "CreateEventType201Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "EventType",
"required": [
"active",
"admin_managed",
"booking_method",
"color",
"created_at",
"custom_questions",
"deleted_at",
"description_html",
"description_plain",
"duration",
"duration_options",
"internal_note",
"is_paid",
"kind",
"locale",
"locations",
"name",
"pooling_type",
"position",
"profile",
"scheduling_url",
"secret",
"slug",
"type",
"updated_at",
"uri"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the event type"
},
"kind": {
"type": "string",
"title": "Kind",
"description": "Indicates if the event type is \"solo\" (belongs to an individual user) or \"group\""
},
"name": {
"type": [
"string",
"null"
],
"title": "Name",
"description": "The event type name (in human-readable format)"
},
"slug": {
"type": [
"string",
"null"
],
"title": "Slug",
"description": "The portion of the event type's URL that identifies a specific web page (in a human-readable format)"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the event type is \"AdhocEventType\" (ad hoc event) or \"StandardEventType\" (standard event type)"
},
"color": {
"type": "string",
"title": "Color",
"description": "The hexadecimal color value of the event type's scheduling page"
},
"active": {
"type": "boolean",
"title": "Active",
"description": "Indicates if the event is active or not."
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The locale on the event type, used to determine the language of the event type's scheduling page"
},
"secret": {
"type": "boolean",
"title": "Secret",
"description": "Indicates if the event type is hidden on the owner's main scheduling page"
},
"is_paid": {
"type": "boolean",
"title": "Is Paid"
},
"profile": {
"anyOf": [
{
"type": "object",
"title": "Profile",
"required": [
"type",
"name",
"owner"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Human-readable name for the profile of the user that's associated with the event type"
},
"type": {
"type": "string",
"title": "Type",
"description": "Indicates if the profile belongs to a \"user\" (individual) or \"team\""
},
"owner": {
"type": "string",
"title": "Owner",
"description": "The unique reference to the user associated with the profile"
}
},
"description": "The publicly visible profile of a User or a Team that's associated with the Event Type (note: some Event Types don't have profiles)"
},
{
"type": "null"
}
]
},
"duration": {
"type": [
"number",
"integer"
],
"title": "Duration",
"description": "The length of sessions booked with this event type"
},
"position": {
"type": "integer",
"title": "Position",
"description": "Position order of Event Type, starting with 0 (for display purposes)"
},
"locations": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "LocationConfiguration",
"properties": {
"kind": {
"type": [
"string",
"null"
],
"title": "Kind",
"default": null
},
"location": {
"type": [
"string",
"null"
],
"title": "Location",
"default": null
},
"phone_number": {
"type": [
"string",
"null"
],
"title": "Phone Number",
"default": null
},
"additional_info": {
"type": [
"string",
"null"
],
"title": "Additional Info",
"default": null
}
},
"description": "A configuration for an EventType's location"
},
{
"type": "null"
}
]
}
},
{
"type": "null"
}
],
"title": "Locations",
"description": "Configuration information for each possible location for this Event Type"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the event type was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"deleted_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Deleted At",
"description": "The moment the event type was deleted (e.g. \"2020-01-02T03:04:05.678123Z\"). Since event types can be deleted but their scheduled events remain it's useful to fetch a deleted event type when you still require event type data for a scheduled event."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment the event type was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"pooling_type": {
"type": [
"string",
"null"
],
"title": "Pooling Type",
"description": "Indicates if the event type is \"round robin\" (alternates between hosts) or \"collective\" (invitees pick a time when all participants are available) or “multi-pool” (considers availability delineated by pools of participants) or \"null\" (the event type doesn’t consider the availability of a group participants)"
},
"admin_managed": {
"type": "boolean",
"title": "Admin Managed",
"description": "Indicates if this event type is managed by an organization admin"
},
"internal_note": {
"type": [
"string",
"null"
],
"title": "Internal Note",
"description": "Contents of a note that may be associated with the event type"
},
"booking_method": {
"type": "string",
"title": "Booking Method",
"description": "Indicates if the event type is for a poll or an instant booking"
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user’s scheduling site where invitees book this event type"
},
"custom_questions": {
"type": "array",
"items": {
"type": "object",
"title": "EventTypeCustomQuestion",
"required": [
"name",
"type",
"position",
"enabled",
"required",
"answer_choices",
"include_other"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "The custom question that the host created for the event type."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of response that the invitee provides to the custom question; can be one or multiple lines of text, a phone number, or single- or multiple-select."
},
"enabled": {
"type": "boolean",
"title": "Enabled",
"description": "true if the question created by the host is turned ON and visible on the event booking page; false if turned OFF and invisible on the event booking page."
},
"position": {
"type": "integer",
"title": "Position",
"description": "The numerical position of the question on the event booking page after the name and email address fields."
},
"required": {
"type": "boolean",
"title": "Required",
"description": "true if a response to the question created by the host is required for invitees to book the event type; false if not required."
},
"include_other": {
"type": "boolean",
"title": "Include Other",
"description": "true if the custom question lets invitees record a written response in addition to single-select or multiple-select type of responses; false if it doesn’t."
},
"answer_choices": {
"type": "array",
"items": {
"type": "string"
},
"title": "Answer Choices",
"description": "The invitee’s option(s) for single_select or multi_select type of responses."
}
},
"description": "EventTypeCustomQuestion"
},
"title": "Custom Questions"
},
"description_html": {
"type": [
"string",
"null"
],
"title": "Description Html",
"description": "The event type's description (formatted with HTML)"
},
"duration_options": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
],
"title": "Duration Options",
"description": "Array of duration options. Always null for adhoc event types."
},
"description_plain": {
"type": [
"string",
"null"
],
"title": "Description Plain",
"description": "The event type's description (in non formatted text)"
}
},
"description": "A configuration for an Event Type"
}
},
"description": "CreateEventType201Response"
},
"annotations": {
"title": "get_event_type",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
Shorten the title to an action and subject; move usage details into the description.
Description83/100
Use: List bookable time slots for an event type within a date range.
When: User wants slots, or to confirm availability before booking.
Needs: Event type URI and start/end date range (ISO 8601).
Do: Pass `start_time` verbatim to subsequent tool calls; do not rewrite UTC values.
Avoid: Stale data, or trusting a prior local label—re-check UTC `start_time` if questioned.
Then: Pass UTC `start_time` to `meetings-create_invitee`.
Describe the returned information so the agent knows whether it will answer the request.
Inputs67/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
event_type
The uri associated with the event type
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
start_time
Start time of the requested availability range. Date cannot be in the past.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
end_time
End time of the requested availability range. Date must be in the future and no greater than 31 days from start_time.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"title": "ListEventTypeAvailableTimes200Response",
"required": [
"collection"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "EventTypeAvailableTime",
"required": [
"status",
"invitees_remaining",
"start_time",
"scheduling_url"
],
"properties": {
"status": {
"type": "string",
"title": "Status",
"description": "Indicates that the open time slot is \"available\""
},
"start_time": {
"type": "string",
"title": "Start Time",
"format": "date-time",
"description": "The moment the event was scheduled to start in UTC time"
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user’s scheduling site where invitees book this event type"
},
"invitees_remaining": {
"type": [
"number",
"integer"
],
"title": "Invitees Remaining",
"description": "Total remaining invitees for this available time. For Group Event Type, more than one invitee can book in this available time. For all other Event Types, only one invitee can book in this available time."
}
},
"description": "An available meeting time slot for the given event type"
},
"title": "Collection",
"description": "The set of available times for the event type matching the criteria"
}
},
"description": "Service Response"
}
Original tool metadata
{
"name": "event_types-list_event_type_available_times",
"title": "list_event_type_available_times",
"description": "Use: List bookable time slots for an event type within a date range.\nWhen: User wants slots, or to confirm availability before booking.\nNeeds: Event type URI and start/end date range (ISO 8601).\nDo: Pass `start_time` verbatim to subsequent tool calls; do not rewrite UTC values.\nAvoid: Stale data, or trusting a prior local label—re-check UTC `start_time` if questioned.\nThen: Pass UTC `start_time` to `meetings-create_invitee`.",
"inputSchema": {
"type": "object",
"required": [
"event_type",
"start_time",
"end_time"
],
"properties": {
"end_time": {
"type": "string",
"format": "date-time",
"description": "End time of the requested availability range. Date must be in the future and no greater than 31 days from start_time."
},
"event_type": {
"type": "string",
"description": "The uri associated with the event type"
},
"start_time": {
"type": "string",
"format": "date-time",
"description": "Start time of the requested availability range. Date cannot be in the past."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "ListEventTypeAvailableTimes200Response",
"required": [
"collection"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "EventTypeAvailableTime",
"required": [
"status",
"invitees_remaining",
"start_time",
"scheduling_url"
],
"properties": {
"status": {
"type": "string",
"title": "Status",
"description": "Indicates that the open time slot is \"available\""
},
"start_time": {
"type": "string",
"title": "Start Time",
"format": "date-time",
"description": "The moment the event was scheduled to start in UTC time"
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user’s scheduling site where invitees book this event type"
},
"invitees_remaining": {
"type": [
"number",
"integer"
],
"title": "Invitees Remaining",
"description": "Total remaining invitees for this available time. For Group Event Type, more than one invitee can book in this available time. For all other Event Types, only one invitee can book in this available time."
}
},
"description": "An available meeting time slot for the given event type"
},
"title": "Collection",
"description": "The set of available times for the event type matching the criteria"
}
},
"description": "Service Response"
},
"annotations": {
"title": "list_event_type_available_times",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
Use: Read the current availability schedule (rules) for an event type.
When: Before calling `event_types-update_event_type_availability_schedule`.
Needs: Event type URI.
Do: Retain the full `rules` array verbatim—it is the required base for updates.
Avoid: Calling the update endpoint without first reading the current rules.
Then: Pass the rules to `event_types-update_event_type_availability_schedule` with only the needed edits.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
event_type
The URI associated with the event type
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
{
"type": "object",
"title": "GetEventTypeAvailability200Response",
"required": [
"collection",
"pagination"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "EventTypeAvailabilitySchedule",
"properties": {
"event_type": {
"type": [
"string",
"null"
],
"title": "Event Type",
"default": null,
"description": "The URI of the event type associated with the Event Type Availability Schedule"
},
"availability_rule": {
"anyOf": [
{
"type": "object",
"title": "EventTypeAvailabilityScheduleAvailabilityRule",
"properties": {
"uri": {
"type": [
"string",
"null"
],
"title": "Uri",
"default": null,
"description": "Canonical reference (unique identifier) for the Availability Schedule that is referenced in the Event Type."
},
"name": {
"type": [
"string",
"null"
],
"title": "Name",
"default": null,
"description": "The name of the Availability Schedule that is referenced in the Event Type."
},
"user": {
"type": [
"string",
"null"
],
"title": "User",
"default": null,
"description": "A URI reference to a user to be returned if availability_setting is not 'all'"
},
"rules": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRule",
"required": [
"type",
"intervals"
],
"properties": {
"date": {
"type": [
"string",
"null"
],
"title": "Date",
"default": null,
"description": "A specific date in the future that this should be applied to (i.e. \"2030-12-31\")."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of this Availability Rule; can be \"wday\" or a specific \"date\"."
},
"wday": {
"type": [
"string",
"null"
],
"title": "Wday",
"default": null,
"description": "The day of the week for which this Rule should be applied to."
},
"intervals": {
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRuleIntervalsInner",
"properties": {
"to": {
"type": [
"string",
"null"
],
"title": "To",
"default": null,
"description": "Format: `\"hh:mm\"`"
},
"from": {
"type": [
"string",
"null"
],
"title": "From",
"default": null,
"description": "Format: `\"hh:mm\"`"
}
},
"description": "AvailabilityRuleIntervalsInner"
},
"title": "Intervals",
"description": "The intervals to be applied to this Rule. Each interval represents when booking a meeting is allowed. If the interval array is empty, then there is no booking availability for that day. Time is in 24h format (i.e. \"17:30\") and local to the timezone in the Availability Schedule."
}
},
"description": "The rules for an availability schedule."
}
},
{
"type": "null"
}
],
"title": "Rules",
"default": null
},
"timezone": {
"type": [
"string",
"null"
],
"title": "Timezone",
"default": null,
"description": "The timezone for which this Event Type Availability Schedule is originated in."
}
},
"description": "EventTypeAvailabilityScheduleAvailabilityRule"
},
{
"type": "null"
}
],
"default": null
},
"availability_setting": {
"type": [
"string",
"null"
],
"title": "Availability Setting",
"default": "host",
"description": "The setting for event type availability specifies if all hosts follow the same schedule or if each host has their own unique schedule on the event type."
}
},
"description": "A configuration for an Event Type Availability Schedule"
},
"title": "Collection"
},
"pagination": {
"type": "object",
"title": "Pagination",
"required": [
"count",
"next_page",
"previous_page",
"next_page_token",
"previous_page_token"
],
"properties": {
"count": {
"type": "integer",
"title": "Count",
"maximum": 100,
"minimum": 0,
"description": "The number of rows to return"
},
"next_page": {
"type": [
"string",
"null"
],
"title": "Next Page",
"description": "URI to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page": {
"type": [
"string",
"null"
],
"title": "Previous Page",
"description": "URI to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
},
"next_page_token": {
"type": [
"string",
"null"
],
"title": "Next Page Token",
"description": "Token to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page_token": {
"type": [
"string",
"null"
],
"title": "Previous Page Token",
"description": "Token to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
}
},
"description": "Pagination"
}
},
"description": "GetEventTypeAvailability200Response"
}
Original tool metadata
{
"name": "event_types-list_event_type_availability_schedule",
"title": "list_event_type_availability_schedule",
"description": "Use: Read the current availability schedule (rules) for an event type.\nWhen: Before calling `event_types-update_event_type_availability_schedule`.\nNeeds: Event type URI.\nDo: Retain the full `rules` array verbatim—it is the required base for updates.\nAvoid: Calling the update endpoint without first reading the current rules.\nThen: Pass the rules to `event_types-update_event_type_availability_schedule` with only the needed edits.",
"inputSchema": {
"type": "object",
"required": [
"event_type"
],
"properties": {
"event_type": {
"type": "string",
"description": "The URI associated with the event type"
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "GetEventTypeAvailability200Response",
"required": [
"collection",
"pagination"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "EventTypeAvailabilitySchedule",
"properties": {
"event_type": {
"type": [
"string",
"null"
],
"title": "Event Type",
"default": null,
"description": "The URI of the event type associated with the Event Type Availability Schedule"
},
"availability_rule": {
"anyOf": [
{
"type": "object",
"title": "EventTypeAvailabilityScheduleAvailabilityRule",
"properties": {
"uri": {
"type": [
"string",
"null"
],
"title": "Uri",
"default": null,
"description": "Canonical reference (unique identifier) for the Availability Schedule that is referenced in the Event Type."
},
"name": {
"type": [
"string",
"null"
],
"title": "Name",
"default": null,
"description": "The name of the Availability Schedule that is referenced in the Event Type."
},
"user": {
"type": [
"string",
"null"
],
"title": "User",
"default": null,
"description": "A URI reference to a user to be returned if availability_setting is not 'all'"
},
"rules": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRule",
"required": [
"type",
"intervals"
],
"properties": {
"date": {
"type": [
"string",
"null"
],
"title": "Date",
"default": null,
"description": "A specific date in the future that this should be applied to (i.e. \"2030-12-31\")."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of this Availability Rule; can be \"wday\" or a specific \"date\"."
},
"wday": {
"type": [
"string",
"null"
],
"title": "Wday",
"default": null,
"description": "The day of the week for which this Rule should be applied to."
},
"intervals": {
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRuleIntervalsInner",
"properties": {
"to": {
"type": [
"string",
"null"
],
"title": "To",
"default": null,
"description": "Format: `\"hh:mm\"`"
},
"from": {
"type": [
"string",
"null"
],
"title": "From",
"default": null,
"description": "Format: `\"hh:mm\"`"
}
},
"description": "AvailabilityRuleIntervalsInner"
},
"title": "Intervals",
"description": "The intervals to be applied to this Rule. Each interval represents when booking a meeting is allowed. If the interval array is empty, then there is no booking availability for that day. Time is in 24h format (i.e. \"17:30\") and local to the timezone in the Availability Schedule."
}
},
"description": "The rules for an availability schedule."
}
},
{
"type": "null"
}
],
"title": "Rules",
"default": null
},
"timezone": {
"type": [
"string",
"null"
],
"title": "Timezone",
"default": null,
"description": "The timezone for which this Event Type Availability Schedule is originated in."
}
},
"description": "EventTypeAvailabilityScheduleAvailabilityRule"
},
{
"type": "null"
}
],
"default": null
},
"availability_setting": {
"type": [
"string",
"null"
],
"title": "Availability Setting",
"default": "host",
"description": "The setting for event type availability specifies if all hosts follow the same schedule or if each host has their own unique schedule on the event type."
}
},
"description": "A configuration for an Event Type Availability Schedule"
},
"title": "Collection"
},
"pagination": {
"type": "object",
"title": "Pagination",
"required": [
"count",
"next_page",
"previous_page",
"next_page_token",
"previous_page_token"
],
"properties": {
"count": {
"type": "integer",
"title": "Count",
"maximum": 100,
"minimum": 0,
"description": "The number of rows to return"
},
"next_page": {
"type": [
"string",
"null"
],
"title": "Next Page",
"description": "URI to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page": {
"type": [
"string",
"null"
],
"title": "Previous Page",
"description": "URI to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
},
"next_page_token": {
"type": [
"string",
"null"
],
"title": "Next Page Token",
"description": "Token to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page_token": {
"type": [
"string",
"null"
],
"title": "Previous Page Token",
"description": "Token to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
}
},
"description": "Pagination"
}
},
"description": "GetEventTypeAvailability200Response"
},
"annotations": {
"title": "list_event_type_availability_schedule",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description92/100
Use: Overwrite the availability schedule for an event type.
When: User requests schedule changes (hours, days, one-off date overrides) for an event type.
Needs: Event type URI and current rules from `event_types-list_event_type_availability_schedule`.
Do: Must copy existing rules verbatim, modify only requested entries, send full rules array with IANA timezone. wday rules need `wday` field; date rules need `date` field (YYYY-MM-DD); `intervals` is list of `{from, to}` in HH:MM 24h.
Avoid: Constructing rules from scratch or sending a partial array—this endpoint overwrites all rules.
Then: Re-read schedule with `event_types-list_event_type_availability_schedule` to confirm.
Describe the returned information so the agent knows whether it will answer the request.
Inputs58/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
event_type
Event Type uri in which to update the availability schedule
{
"type": "object",
"title": "UpdateEventTypeAvailability200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "EventTypeAvailabilitySchedule",
"properties": {
"event_type": {
"type": [
"string",
"null"
],
"title": "Event Type",
"default": null,
"description": "The URI of the event type associated with the Event Type Availability Schedule"
},
"availability_rule": {
"anyOf": [
{
"type": "object",
"title": "EventTypeAvailabilityScheduleAvailabilityRule",
"properties": {
"uri": {
"type": [
"string",
"null"
],
"title": "Uri",
"default": null,
"description": "Canonical reference (unique identifier) for the Availability Schedule that is referenced in the Event Type."
},
"name": {
"type": [
"string",
"null"
],
"title": "Name",
"default": null,
"description": "The name of the Availability Schedule that is referenced in the Event Type."
},
"user": {
"type": [
"string",
"null"
],
"title": "User",
"default": null,
"description": "A URI reference to a user to be returned if availability_setting is not 'all'"
},
"rules": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRule",
"required": [
"type",
"intervals"
],
"properties": {
"date": {
"type": [
"string",
"null"
],
"title": "Date",
"default": null,
"description": "A specific date in the future that this should be applied to (i.e. \"2030-12-31\")."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of this Availability Rule; can be \"wday\" or a specific \"date\"."
},
"wday": {
"type": [
"string",
"null"
],
"title": "Wday",
"default": null,
"description": "The day of the week for which this Rule should be applied to."
},
"intervals": {
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRuleIntervalsInner",
"properties": {
"to": {
"type": [
"string",
"null"
],
"title": "To",
"default": null,
"description": "Format: `\"hh:mm\"`"
},
"from": {
"type": [
"string",
"null"
],
"title": "From",
"default": null,
"description": "Format: `\"hh:mm\"`"
}
},
"description": "AvailabilityRuleIntervalsInner"
},
"title": "Intervals",
"description": "The intervals to be applied to this Rule. Each interval represents when booking a meeting is allowed. If the interval array is empty, then there is no booking availability for that day. Time is in 24h format (i.e. \"17:30\") and local to the timezone in the Availability Schedule."
}
},
"description": "The rules for an availability schedule."
}
},
{
"type": "null"
}
],
"title": "Rules",
"default": null
},
"timezone": {
"type": [
"string",
"null"
],
"title": "Timezone",
"default": null,
"description": "The timezone for which this Event Type Availability Schedule is originated in."
}
},
"description": "EventTypeAvailabilityScheduleAvailabilityRule"
},
{
"type": "null"
}
],
"default": null
},
"availability_setting": {
"type": [
"string",
"null"
],
"title": "Availability Setting",
"default": "host",
"description": "The setting for event type availability specifies if all hosts follow the same schedule or if each host has their own unique schedule on the event type."
}
},
"description": "A configuration for an Event Type Availability Schedule"
}
},
"description": "UpdateEventTypeAvailability200Response"
}
Original tool metadata
{
"name": "event_types-update_event_type_availability_schedule",
"title": "update_event_type_availability_schedule",
"description": "Use: Overwrite the availability schedule for an event type.\nWhen: User requests schedule changes (hours, days, one-off date overrides) for an event type.\nNeeds: Event type URI and current rules from `event_types-list_event_type_availability_schedule`.\nDo: Must copy existing rules verbatim, modify only requested entries, send full rules array with IANA timezone. wday rules need `wday` field; date rules need `date` field (YYYY-MM-DD); `intervals` is list of `{from, to}` in HH:MM 24h.\nAvoid: Constructing rules from scratch or sending a partial array—this endpoint overwrites all rules.\nThen: Re-read schedule with `event_types-list_event_type_availability_schedule` to confirm.",
"inputSchema": {
"type": "object",
"required": [
"event_type",
"update_event_type_availability_request"
],
"properties": {
"event_type": {
"type": "string",
"description": "Event Type uri in which to update the availability schedule"
},
"update_event_type_availability_request": {
"type": "object",
"required": [
"availability_rule"
],
"properties": {
"availability_rule": {
"type": "object",
"required": [
"timezone"
],
"properties": {
"user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Required when an admin or org owner is making the call to update a specific users availability schedule"
},
"rules": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"intervals"
],
"properties": {
"date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A specific date in the future that this should be applied to (i.e. \"2030-12-31\")."
},
"type": {
"type": "string",
"description": "The type of this Availability Rule; can be \"wday\" or a specific \"date\"."
},
"wday": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The day of the week for which this Rule should be applied to."
},
"intervals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"to": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Format: `\"hh:mm\"`"
},
"from": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Format: `\"hh:mm\"`"
}
},
"description": "AvailabilityRuleIntervalsInner"
},
"description": "The intervals to be applied to this Rule. Each interval represents when booking a meeting is allowed. If the interval array is empty, then there is no booking availability for that day. Time is in 24h format (i.e. \"17:30\") and local to the timezone in the Availability Schedule."
}
},
"description": "The rules for an availability schedule."
}
},
{
"type": "null"
}
],
"default": null,
"description": "The rules for an availability schedule.<br> <span style=\"color:red\">Warning: </span>Updating rules will overwrite all existing rules for the event type. Use the GET endpoint to first retrieve the existing rules and then pass the modified rules to the rules object."
},
"timezone": {
"type": "string",
"description": "The timezone for which this Event Type Availability Schedule is originated in."
}
},
"description": "UpdateEventTypeAvailabilityRequestAvailabilityRule"
},
"availability_setting": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": "host",
"description": "By default every host on the Event Type shares an identical schedule."
}
},
"description": "(required)"
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "UpdateEventTypeAvailability200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "EventTypeAvailabilitySchedule",
"properties": {
"event_type": {
"type": [
"string",
"null"
],
"title": "Event Type",
"default": null,
"description": "The URI of the event type associated with the Event Type Availability Schedule"
},
"availability_rule": {
"anyOf": [
{
"type": "object",
"title": "EventTypeAvailabilityScheduleAvailabilityRule",
"properties": {
"uri": {
"type": [
"string",
"null"
],
"title": "Uri",
"default": null,
"description": "Canonical reference (unique identifier) for the Availability Schedule that is referenced in the Event Type."
},
"name": {
"type": [
"string",
"null"
],
"title": "Name",
"default": null,
"description": "The name of the Availability Schedule that is referenced in the Event Type."
},
"user": {
"type": [
"string",
"null"
],
"title": "User",
"default": null,
"description": "A URI reference to a user to be returned if availability_setting is not 'all'"
},
"rules": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRule",
"required": [
"type",
"intervals"
],
"properties": {
"date": {
"type": [
"string",
"null"
],
"title": "Date",
"default": null,
"description": "A specific date in the future that this should be applied to (i.e. \"2030-12-31\")."
},
"type": {
"type": "string",
"title": "Type",
"description": "The type of this Availability Rule; can be \"wday\" or a specific \"date\"."
},
"wday": {
"type": [
"string",
"null"
],
"title": "Wday",
"default": null,
"description": "The day of the week for which this Rule should be applied to."
},
"intervals": {
"type": "array",
"items": {
"type": "object",
"title": "AvailabilityRuleIntervalsInner",
"properties": {
"to": {
"type": [
"string",
"null"
],
"title": "To",
"default": null,
"description": "Format: `\"hh:mm\"`"
},
"from": {
"type": [
"string",
"null"
],
"title": "From",
"default": null,
"description": "Format: `\"hh:mm\"`"
}
},
"description": "AvailabilityRuleIntervalsInner"
},
"title": "Intervals",
"description": "The intervals to be applied to this Rule. Each interval represents when booking a meeting is allowed. If the interval array is empty, then there is no booking availability for that day. Time is in 24h format (i.e. \"17:30\") and local to the timezone in the Availability Schedule."
}
},
"description": "The rules for an availability schedule."
}
},
{
"type": "null"
}
],
"title": "Rules",
"default": null
},
"timezone": {
"type": [
"string",
"null"
],
"title": "Timezone",
"default": null,
"description": "The timezone for which this Event Type Availability Schedule is originated in."
}
},
"description": "EventTypeAvailabilityScheduleAvailabilityRule"
},
{
"type": "null"
}
],
"default": null
},
"availability_setting": {
"type": [
"string",
"null"
],
"title": "Availability Setting",
"default": "host",
"description": "The setting for event type availability specifies if all hosts follow the same schedule or if each host has their own unique schedule on the event type."
}
},
"description": "A configuration for an Event Type Availability Schedule"
}
},
"description": "UpdateEventTypeAvailability200Response"
},
"annotations": {
"title": "update_event_type_availability_schedule",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
Shorten the title to an action and subject; move usage details into the description.
Description91/100
Use: List allowed meeting location kinds for a user.
When: Before creating bookings that need a `location` payload.
Needs: User URI from `users-get_current_user`.
Do: Read supported location `kind` values; choose one compatible with the event type.
Avoid: Submitting a location kind not configured for the host or event type.
Then: Use chosen kind in `meetings-create_invitee` location payload.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
user
The URI associated with the user
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description86/100
Use: List scheduled meetings for user/org.
When: Upcoming/past meetings or to find meetings by date.
Needs: User/org URI via `users-get_current_user`.
Do: Filter status (active/canceled), date range; carry `uri`.
Avoid: Fetching unfiltered when the user has a specific date. Not for a yes/no busy/free check phrased as "meetings" (e.g. "do I have any meetings tomorrow") — use `availability-list_user_busy_times` instead.
Then: Enrich via `meetings-list_event_invitees` before listing/naming meetings, unless asked for only a count; then `uri` in `meetings-get_event`/`meetings-cancel_event`.
The description explains the capability, when to use it, and what to expect.
Inputs80/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
user
Return events that are scheduled with the user associated with this URI
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
organization
Return events that are scheduled with the organization associated with this URI
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
invitee_email
Return events that are scheduled with the invitee associated with this email address
Clear enough to supply this argument.
status
Whether the scheduled event is `active` or `canceled`
Clear enough to supply this argument.
sort
Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values. Supported fields are: start_time. Sort direction is specified as: asc, desc.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
min_start_time
Include events with start times after this time (sample time format: "2020-01-02T03:04:05.678123Z"). This time should use the UTC timezone.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
max_start_time
Include events with start times prior to this time (sample time format: "2020-01-02T03:04:05.678123Z"). This time should use the UTC timezone.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
page_token
The token to pass to get the next or previous portion of the collection
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
count
The number of rows to return
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
group
Return events that are scheduled with the group associated with this URI
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Use: Fetch details for a single scheduled meeting.
When: User asks about a specific meeting or before canceling/examining invitees.
Needs: Meeting URI from `meetings-list_events`.
Do: Use returned `event_type`, `start_time`, `end_time`, and `location` for display or next actions.
Avoid: Calling this without a known meeting URI. list meetings first.
Then: Use meeting URI in `meetings-list_event_invitees` or `meetings-cancel_event`.
The description explains the capability, when to use it, and what to expect.
Inputs97/100
Input documentation gives an agent enough context to populate the arguments.
uri
Scheduled meeting URI. not a browsable link — never show to users.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Use: Cancel a scheduled meeting on behalf of the connected host
When: User confirms they want to cancel a specific meeting.
Needs: Meeting URI from `meetings-list_events` or `meetings-get_event`.
Do: Pass meeting URI and optional cancellation reason.
Avoid: Canceling without confirmation; this notifies all invitees. For reschedule, surface `reschedule_url` instead.
Then: Inform user the meeting is canceled and optionally list remaining meetings.
Describe the returned information so the agent knows whether it will answer the request.
Inputs88/100
Explain what happens when this optional value is omitted.
uri
Scheduled meeting URI. NOT the same as the invitee `cancel_url` (which is the public link you send to a human). not a browsable link — never show to users.
{
"type": "object",
"title": "CreateScheduledEventCancellation201Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "Cancellation",
"required": [
"canceled_by",
"reason",
"canceler_type",
"created_at"
],
"properties": {
"reason": {
"type": [
"string",
"null"
],
"title": "Reason",
"description": "Reason that the cancellation occurred"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the cancellation was created"
},
"canceled_by": {
"type": "string",
"title": "Canceled By",
"description": "Name of the person whom canceled"
},
"canceler_type": {
"type": "string",
"title": "Canceler Type"
}
},
"description": "Provides data pertaining to the cancellation of the Event or the Invitee"
}
},
"description": "CreateScheduledEventCancellation201Response"
}
Original tool metadata
{
"name": "meetings-cancel_event",
"title": "cancel_scheduled_event",
"description": "Use: Cancel a scheduled meeting on behalf of the connected host\nWhen: User confirms they want to cancel a specific meeting.\nNeeds: Meeting URI from `meetings-list_events` or `meetings-get_event`.\nDo: Pass meeting URI and optional cancellation reason.\nAvoid: Canceling without confirmation; this notifies all invitees. For reschedule, surface `reschedule_url` instead.\nThen: Inform user the meeting is canceled and optionally list remaining meetings.",
"inputSchema": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"description": "Scheduled meeting URI. NOT the same as the invitee `cancel_url` (which is the public link you send to a human). not a browsable link — never show to users."
},
"create_scheduled_event_cancellation_request": {
"anyOf": [
{
"type": "object",
"properties": {
"reason": {
"anyOf": [
{
"type": "string",
"maxLength": 10000
},
{
"type": "null"
}
],
"default": null,
"description": "Reason for cancellation"
}
},
"description": "CreateScheduledEventCancellationRequest"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional cancellation reason."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "CreateScheduledEventCancellation201Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "Cancellation",
"required": [
"canceled_by",
"reason",
"canceler_type",
"created_at"
],
"properties": {
"reason": {
"type": [
"string",
"null"
],
"title": "Reason",
"description": "Reason that the cancellation occurred"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the cancellation was created"
},
"canceled_by": {
"type": "string",
"title": "Canceled By",
"description": "Name of the person whom canceled"
},
"canceler_type": {
"type": "string",
"title": "Canceler Type"
}
},
"description": "Provides data pertaining to the cancellation of the Event or the Invitee"
}
},
"description": "CreateScheduledEventCancellation201Response"
},
"annotations": {
"title": "cancel_scheduled_event",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description88/100
Use: Book a meeting slot for an invitee on a Calendly event type.
When: User provides invitee name, email, and a confirmed available time slot.
Needs: Event type URI, `start_time` from `event_types-list_event_type_available_times`, invitee name and email. Include `location` if the event type has configured locations.
Do: Set invitee name/email as the person being booked; host is the connected user from `users-get_current_user`. Never swap host and invitee fields.
Avoid: Booking without confirming slot availability first, or omitting `location` when event type requires it.
Then: Confirm booking with invitee details and meeting URI.
Describe the returned information so the agent knows whether it will answer the request.
Inputs71/100
46 of 47 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
post_invitee_request › event_type
Canonical reference (unique identifier) for the event type being scheduled
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
post_invitee_request › start_time
The start time in UTC of the scheduled event
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
post_invitee_request › invitee › name
The full name of the invitee. **Required if** `first_name` **is not provided**
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
post_invitee_request › invitee › first_name
The first name of the invitee. **Required if** `name` **is not provided**
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
post_invitee_request › invitee › last_name
The last name of the invitee
Clear enough to supply this argument.
post_invitee_request › invitee › email
The email of the invitee
Clear enough to supply this argument.
post_invitee_request › invitee › timezone
The timezone of the invitee
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Align the output schema with the tool’s documented result.
View output schema
{
"type": "object",
"title": "GetScheduledEventInvitees200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "Invitee",
"required": [
"uri",
"email",
"first_name",
"last_name",
"name",
"status",
"questions_and_answers",
"timezone",
"event",
"created_at",
"updated_at",
"tracking",
"text_reminder_number",
"rescheduled",
"old_invitee",
"new_invitee",
"cancel_url",
"reschedule_url",
"routing_form_submission",
"payment",
"no_show",
"reconfirmation",
"scheduling_method",
"invitee_scheduled_by"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the invitee"
},
"name": {
"type": "string",
"title": "Name",
"description": "The invitee’s name (in human-readable format)"
},
"email": {
"type": "string",
"title": "Email",
"description": "The invitee’s email address"
},
"event": {
"type": "string",
"title": "Event",
"description": "A reference to the event"
},
"status": {
"type": "string",
"title": "Status",
"description": "Indicates if the invitee is \"active\" or \"canceled\""
},
"no_show": {
"anyOf": [
{
"type": "object",
"title": "InviteeNoShow",
"required": [
"uri",
"created_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the no show"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the no show was created"
}
},
"description": "Provides data pertaining to the associated no show for the Invitee"
},
{
"type": "null"
}
]
},
"payment": {
"anyOf": [
{
"type": "object",
"title": "InviteePayment",
"required": [
"external_id",
"provider",
"amount",
"currency",
"terms",
"successful"
],
"properties": {
"terms": {
"type": [
"string",
"null"
],
"title": "Terms",
"description": "Terms of the payment"
},
"amount": {
"type": [
"number",
"integer"
],
"title": "Amount",
"description": "The amount of the payment"
},
"currency": {
"type": "string",
"title": "Currency",
"description": "The currency format that the payment is in."
},
"provider": {
"type": "string",
"title": "Provider",
"description": "Payment provider"
},
"successful": {
"type": "boolean",
"title": "Successful",
"description": "Indicates whether the payment was successfully processed"
},
"external_id": {
"type": "string",
"title": "External Id",
"description": "Unique identifier for the payment"
}
},
"description": "Invitee payment"
},
{
"type": "null"
}
]
},
"timezone": {
"type": [
"string",
"null"
],
"title": "Timezone",
"description": "Time zone to use when displaying time to the invitee"
},
"tracking": {
"type": "object",
"title": "InviteeTracking",
"required": [
"utm_campaign",
"utm_source",
"utm_medium",
"utm_content",
"utm_term",
"salesforce_uuid"
],
"properties": {
"utm_term": {
"type": [
"string",
"null"
],
"title": "Utm Term",
"description": "The UTM parameter used to track keywords"
},
"utm_medium": {
"type": [
"string",
"null"
],
"title": "Utm Medium",
"description": "The UTM parameter that identifies the type of input (e.g. Cost Per Click (CPC), social media, affiliate or QR code)"
},
"utm_source": {
"type": [
"string",
"null"
],
"title": "Utm Source",
"description": "The UTM parameter that identifies the source (platform where the traffic originates)"
},
"utm_content": {
"type": [
"string",
"null"
],
"title": "Utm Content",
"description": "UTM content tracking parameter"
},
"utm_campaign": {
"type": [
"string",
"null"
],
"title": "Utm Campaign",
"description": "The UTM parameter used to track a campaign"
},
"salesforce_uuid": {
"type": [
"string",
"null"
],
"title": "Salesforce Uuid",
"description": "The Salesforce record unique identifier"
}
},
"description": "The UTM and Salesforce tracking parameters associated with an Invitee"
},
"last_name": {
"type": [
"string",
"null"
],
"title": "Last Name",
"description": "The last name of the invitee who booked the event when the event type is configured to use separate fields for first name and last name. Null when event type is configured to use a single field for name."
},
"cancel_url": {
"type": "string",
"title": "Cancel Url",
"description": "Link to cancelling the event for the invitee"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the event was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"first_name": {
"type": [
"string",
"null"
],
"title": "First Name",
"description": "The first name of the invitee who booked the event when the event type is configured to use separate fields for first name and last name. Null when event type is configured to use a single field for name."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the event was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"new_invitee": {
"type": [
"string",
"null"
],
"title": "New Invitee",
"description": "Link to new invitee, after reschedule"
},
"old_invitee": {
"type": [
"string",
"null"
],
"title": "Old Invitee",
"description": "Reference to old Invitee instance that got rescheduled"
},
"rescheduled": {
"type": "boolean",
"title": "Rescheduled",
"description": "Indicates if this invitee has rescheduled. If `true`, a reference to the new Invitee instance is provided in the `new_invitee` field."
},
"cancellation": {
"anyOf": [
{
"type": "object",
"title": "Cancellation",
"required": [
"canceled_by",
"reason",
"canceler_type",
"created_at"
],
"properties": {
"reason": {
"type": [
"string",
"null"
],
"title": "Reason",
"description": "Reason that the cancellation occurred"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the cancellation was created"
},
"canceled_by": {
"type": "string",
"title": "Canceled By",
"description": "Name of the person whom canceled"
},
"canceler_type": {
"type": "string",
"title": "Canceler Type"
}
},
"description": "Provides data pertaining to the cancellation of the Event or the Invitee"
},
{
"type": "null"
}
],
"default": null
},
"reconfirmation": {
"anyOf": [
{
"type": "object",
"title": "InviteeReconfirmation",
"required": [
"created_at",
"confirmed_at"
],
"properties": {
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "When the reconfirmation was created."
},
"confirmed_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Confirmed At",
"description": "When the Invitee confirmed their attendance."
}
},
"description": "Assuming reconfirmation is enabled for the event type, when reconfirmation is requested this object is present with a `created_at` that reflects when the reconfirmation notification was sent. Once the invitee has reconfirmed the `confirmed_at` attribute will change from `null` to a timestamp that reflects when they took action."
},
{
"type": "null"
}
]
},
"reschedule_url": {
"type": "string",
"title": "Reschedule Url",
"description": "Link to rescheduling the event for the invitee"
},
"scheduling_method": {
"type": [
"string",
"null"
],
"title": "Scheduling Method",
"description": "The method used to schedule the event"
},
"invitee_scheduled_by": {
"type": [
"string",
"null"
],
"title": "Invitee Scheduled By",
"description": "Reference to user URI who scheduled the event"
},
"text_reminder_number": {
"type": [
"string",
"null"
],
"title": "Text Reminder Number",
"description": "The phone number to use when sending text (SMS) reminders"
},
"questions_and_answers": {
"type": "array",
"items": {
"type": "object",
"title": "InviteeQuestionAndAnswer",
"required": [
"question",
"answer",
"position"
],
"properties": {
"answer": {
"type": "string",
"title": "Answer",
"description": "The invitee's response to the question"
},
"position": {
"type": "integer",
"title": "Position",
"description": "The position of the question in relation to others"
},
"question": {
"type": "string",
"title": "Question",
"description": "A question for the invitee. String is case sensitive and must exactly match the question."
}
},
"description": "A response to a question on a booking page form. Required questions must be included in the body and match on the question string exactly."
},
"title": "Questions And Answers",
"minItems": 0,
"description": "A collection of the invitee's responses to questions on the event booking confirmation form"
},
"routing_form_submission": {
"type": [
"string",
"null"
],
"title": "Routing Form Submission",
"description": "Reference to a routing form submission that redirected the invitee to a booking page."
}
},
"description": "An individual who has been invited to meet with a Calendly member"
}
},
"description": "GetScheduledEventInvitees200Response"
}
Original tool metadata
{
"name": "meetings-create_invitee",
"title": "create_invitee",
"description": "Use: Book a meeting slot for an invitee on a Calendly event type.\nWhen: User provides invitee name, email, and a confirmed available time slot.\nNeeds: Event type URI, `start_time` from `event_types-list_event_type_available_times`, invitee name and email. Include `location` if the event type has configured locations.\nDo: Set invitee name/email as the person being booked; host is the connected user from `users-get_current_user`. Never swap host and invitee fields.\nAvoid: Booking without confirming slot availability first, or omitting `location` when event type requires it.\nThen: Confirm booking with invitee details and meeting URI.",
"inputSchema": {
"type": "object",
"required": [
"post_invitee_request"
],
"properties": {
"post_invitee_request": {
"type": "object",
"required": [
"event_type",
"start_time",
"invitee"
],
"properties": {
"invitee": {
"type": "object",
"required": [
"email",
"timezone"
],
"properties": {
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The full name of the invitee. **Required if** `first_name` **is not provided**"
},
"email": {
"type": "string",
"description": "The email of the invitee"
},
"timezone": {
"type": "string",
"description": "The timezone of the invitee"
},
"last_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The last name of the invitee"
},
"first_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The first name of the invitee. **Required if** `name` **is not provided**"
},
"text_reminder_number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Invitee's phone number for SMS reminders. Must be a valid phone number (e.g. +14155551234)"
}
},
"description": "PostInviteeRequestInvitee"
},
"location": {
"anyOf": [
{
"type": "object",
"properties": {
"one_of_schemas": {
"type": "array",
"items": {
"type": "string"
},
"default": [
"InviteeCustomLocation",
"InviteeGoogleConference",
"InviteeGotoMeetingConference",
"InviteeInPersonMeeting",
"InviteeInboundCall",
"InviteeInviteeSpecifiedLocation",
"InviteeMicrosoftTeamsConference",
"InviteeOutboundCall",
"InviteeWebExConference",
"InviteeZoomConference"
],
"uniqueItems": true
},
"actual_instance": {
"anyOf": [
{
"type": "object",
"required": [
"kind",
"location"
],
"properties": {
"kind": {
"type": "string",
"description": "The event location doesn't fall into a standard category defined by the event host (publisher)"
},
"location": {
"type": "string",
"description": "The specific custom location"
}
},
"description": "Information for a Custom Location"
},
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "The event location is a Google Meet or Hangouts conference"
}
},
"description": "Information for a Google Conference"
},
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "The event location is a GoToMeeting conference"
}
},
"description": "Information for a GotoMeeting Conference"
},
{
"type": "object",
"required": [
"kind",
"location"
],
"properties": {
"kind": {
"type": "string",
"description": "Indicates that the event will be an in-person meeting."
},
"location": {
"type": "string",
"description": "The specific physical location"
}
},
"description": "Information for an In Person Meeting"
},
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "Indicates that the invitee will call the event host"
}
},
"description": "Information for an Inbound Call"
},
{
"type": "object",
"required": [
"kind",
"location"
],
"properties": {
"kind": {
"type": "string",
"description": "Indicates that the event location will be selected by the invitee"
},
"location": {
"type": "string",
"description": "The event location description provided by the invitee"
}
},
"description": "Information for an Invitee Specified Location"
},
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "The event location is a Microsoft Teams conference"
}
},
"description": "Information for a Microsoft Teams Conference"
},
{
"type": "object",
"required": [
"kind",
"location"
],
"properties": {
"kind": {
"type": "string",
"description": "Indicates that the event host (publisher) will call the invitee"
},
"location": {
"type": "string",
"description": "The phone number the event host (publisher) will use to call the invitee"
}
},
"description": "Information about an Outbound Call"
},
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "The event location is a WebEx conference"
}
},
"description": "Information about a WebEx Conference"
},
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "The event location is a Zoom conference"
}
},
"description": "Information about a Zoom Conference"
},
{
"type": "null"
}
],
"default": null
},
"oneof_schema_1_validator": {
"anyOf": [
{
"type": "object",
"required": [
"kind",
"location"
],
"properties": {
"kind": {
"type": "string",
"description": "Indicates that the event will be an in-person meeting."
},
"location": {
"type": "string",
"description": "The specific physical location"
}
},
"description": "Information for an In Person Meeting"
},
{
"type": "null"
}
],
"default": null
},
"oneof_schema_2_validator": {
"anyOf": [
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "Indicates that the invitee will call the event host"
}
},
"description": "Information for an Inbound Call"
},
{
"type": "null"
}
],
"default": null
},
"oneof_schema_3_validator": {
"anyOf": [
{
"type": "object",
"required": [
"kind",
"location"
],
"properties": {
"kind": {
"type": "string",
"description": "Indicates that the event host (publisher) will call the invitee"
},
"location": {
"type": "string",
"description": "The phone number the event host (publisher) will use to call the invitee"
}
},
"description": "Information about an Outbound Call"
},
{
"type": "null"
}
],
"default": null
},
"oneof_schema_4_validator": {
"anyOf": [
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "The event location is a Zoom conference"
}
},
"description": "Information about a Zoom Conference"
},
{
"type": "null"
}
],
"default": null
},
"oneof_schema_5_validator": {
"anyOf": [
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "The event location is a Google Meet or Hangouts conference"
}
},
"description": "Information for a Google Conference"
},
{
"type": "null"
}
],
"default": null
},
"oneof_schema_6_validator": {
"anyOf": [
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "The event location is a GoToMeeting conference"
}
},
"description": "Information for a GotoMeeting Conference"
},
{
"type": "null"
}
],
"default": null
},
"oneof_schema_7_validator": {
"anyOf": [
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "The event location is a Microsoft Teams conference"
}
},
"description": "Information for a Microsoft Teams Conference"
},
{
"type": "null"
}
],
"default": null
},
"oneof_schema_8_validator": {
"anyOf": [
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"description": "The event location is a WebEx conference"
}
},
"description": "Information about a WebEx Conference"
},
{
"type": "null"
}
],
"default": null
},
"oneof_schema_9_validator": {
"anyOf": [
{
"type": "object",
"required": [
"kind",
"location"
],
"properties": {
"kind": {
"type": "string",
"description": "Indicates that the event location will be selected by the invitee"
},
"location": {
"type": "string",
"description": "The event location description provided by the invitee"
}
},
"description": "Information for an Invitee Specified Location"
},
{
"type": "null"
}
],
"default": null
},
"oneof_schema_10_validator": {
"anyOf": [
{
"type": "object",
"required": [
"kind",
"location"
],
"properties": {
"kind": {
"type": "string",
"description": "The event location doesn't fall into a standard category defined by the event host (publisher)"
},
"location": {
"type": "string",
"description": "The specific custom location"
}
},
"description": "Information for a Custom Location"
},
{
"type": "null"
}
],
"default": null
}
},
"description": "The polymorphic base type for an event location that Calendly supports. Note: - Location.kind must be supplied if location is defined. - Location must match location specified on the EventType. - Do not pass the location object for an EventType with a round_robin pooling_type.\n\nExample data: {\"kind\": \"zoom_conference\"} representing an instance of ZoomConference.\nData should follow the schema of one of the supported types; do not provide the fields of this base type which are only for implementing polymorphism."
},
{
"type": "null"
}
],
"default": null
},
"tracking": {
"anyOf": [
{
"type": "object",
"required": [
"utm_campaign",
"utm_source",
"utm_medium",
"utm_content",
"utm_term",
"salesforce_uuid"
],
"properties": {
"utm_term": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The UTM parameter used to track keywords"
},
"utm_medium": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The UTM parameter that identifies the type of input (e.g. Cost Per Click (CPC), social media, affiliate or QR code)"
},
"utm_source": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The UTM parameter that identifies the source (platform where the traffic originates)"
},
"utm_content": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "UTM content tracking parameter"
},
"utm_campaign": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The UTM parameter used to track a campaign"
},
"salesforce_uuid": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The Salesforce record unique identifier"
}
},
"description": "The UTM and Salesforce tracking parameters associated with an Invitee"
},
{
"type": "null"
}
],
"default": null
},
"event_type": {
"type": "string",
"description": "Canonical reference (unique identifier) for the event type being scheduled "
},
"start_time": {
"type": "string",
"format": "date-time",
"description": "The start time in UTC of the scheduled event"
},
"event_guests": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10
},
{
"type": "null"
}
],
"default": null,
"description": "Emails of invitee guests. Max 10."
},
"questions_and_answers": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"required": [
"question",
"answer",
"position"
],
"properties": {
"answer": {
"type": "string",
"description": "The invitee's response to the question"
},
"position": {
"type": "integer",
"description": "The position of the question in relation to others"
},
"question": {
"type": "string",
"description": "A question for the invitee. String is case sensitive and must exactly match the question."
}
},
"description": "A response to a question on a booking page form. Required questions must be included in the body and match on the question string exactly."
}
},
{
"type": "null"
}
],
"default": null
}
},
"description": "(required)"
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "GetScheduledEventInvitees200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "Invitee",
"required": [
"uri",
"email",
"first_name",
"last_name",
"name",
"status",
"questions_and_answers",
"timezone",
"event",
"created_at",
"updated_at",
"tracking",
"text_reminder_number",
"rescheduled",
"old_invitee",
"new_invitee",
"cancel_url",
"reschedule_url",
"routing_form_submission",
"payment",
"no_show",
"reconfirmation",
"scheduling_method",
"invitee_scheduled_by"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the invitee"
},
"name": {
"type": "string",
"title": "Name",
"description": "The invitee’s name (in human-readable format)"
},
"email": {
"type": "string",
"title": "Email",
"description": "The invitee’s email address"
},
"event": {
"type": "string",
"title": "Event",
"description": "A reference to the event"
},
"status": {
"type": "string",
"title": "Status",
"description": "Indicates if the invitee is \"active\" or \"canceled\""
},
"no_show": {
"anyOf": [
{
"type": "object",
"title": "InviteeNoShow",
"required": [
"uri",
"created_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the no show"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the no show was created"
}
},
"description": "Provides data pertaining to the associated no show for the Invitee"
},
{
"type": "null"
}
]
},
"payment": {
"anyOf": [
{
"type": "object",
"title": "InviteePayment",
"required": [
"external_id",
"provider",
"amount",
"currency",
"terms",
"successful"
],
"properties": {
"terms": {
"type": [
"string",
"null"
],
"title": "Terms",
"description": "Terms of the payment"
},
"amount": {
"type": [
"number",
"integer"
],
"title": "Amount",
"description": "The amount of the payment"
},
"currency": {
"type": "string",
"title": "Currency",
"description": "The currency format that the payment is in."
},
"provider": {
"type": "string",
"title": "Provider",
"description": "Payment provider"
},
"successful": {
"type": "boolean",
"title": "Successful",
"description": "Indicates whether the payment was successfully processed"
},
"external_id": {
"type": "string",
"title": "External Id",
"description": "Unique identifier for the payment"
}
},
"description": "Invitee payment"
},
{
"type": "null"
}
]
},
"timezone": {
"type": [
"string",
"null"
],
"title": "Timezone",
"description": "Time zone to use when displaying time to the invitee"
},
"tracking": {
"type": "object",
"title": "InviteeTracking",
"required": [
"utm_campaign",
"utm_source",
"utm_medium",
"utm_content",
"utm_term",
"salesforce_uuid"
],
"properties": {
"utm_term": {
"type": [
"string",
"null"
],
"title": "Utm Term",
"description": "The UTM parameter used to track keywords"
},
"utm_medium": {
"type": [
"string",
"null"
],
"title": "Utm Medium",
"description": "The UTM parameter that identifies the type of input (e.g. Cost Per Click (CPC), social media, affiliate or QR code)"
},
"utm_source": {
"type": [
"string",
"null"
],
"title": "Utm Source",
"description": "The UTM parameter that identifies the source (platform where the traffic originates)"
},
"utm_content": {
"type": [
"string",
"null"
],
"title": "Utm Content",
"description": "UTM content tracking parameter"
},
"utm_campaign": {
"type": [
"string",
"null"
],
"title": "Utm Campaign",
"description": "The UTM parameter used to track a campaign"
},
"salesforce_uuid": {
"type": [
"string",
"null"
],
"title": "Salesforce Uuid",
"description": "The Salesforce record unique identifier"
}
},
"description": "The UTM and Salesforce tracking parameters associated with an Invitee"
},
"last_name": {
"type": [
"string",
"null"
],
"title": "Last Name",
"description": "The last name of the invitee who booked the event when the event type is configured to use separate fields for first name and last name. Null when event type is configured to use a single field for name."
},
"cancel_url": {
"type": "string",
"title": "Cancel Url",
"description": "Link to cancelling the event for the invitee"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the event was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"first_name": {
"type": [
"string",
"null"
],
"title": "First Name",
"description": "The first name of the invitee who booked the event when the event type is configured to use separate fields for first name and last name. Null when event type is configured to use a single field for name."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the event was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"new_invitee": {
"type": [
"string",
"null"
],
"title": "New Invitee",
"description": "Link to new invitee, after reschedule"
},
"old_invitee": {
"type": [
"string",
"null"
],
"title": "Old Invitee",
"description": "Reference to old Invitee instance that got rescheduled"
},
"rescheduled": {
"type": "boolean",
"title": "Rescheduled",
"description": "Indicates if this invitee has rescheduled. If `true`, a reference to the new Invitee instance is provided in the `new_invitee` field."
},
"cancellation": {
"anyOf": [
{
"type": "object",
"title": "Cancellation",
"required": [
"canceled_by",
"reason",
"canceler_type",
"created_at"
],
"properties": {
"reason": {
"type": [
"string",
"null"
],
"title": "Reason",
"description": "Reason that the cancellation occurred"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the cancellation was created"
},
"canceled_by": {
"type": "string",
"title": "Canceled By",
"description": "Name of the person whom canceled"
},
"canceler_type": {
"type": "string",
"title": "Canceler Type"
}
},
"description": "Provides data pertaining to the cancellation of the Event or the Invitee"
},
{
"type": "null"
}
],
"default": null
},
"reconfirmation": {
"anyOf": [
{
"type": "object",
"title": "InviteeReconfirmation",
"required": [
"created_at",
"confirmed_at"
],
"properties": {
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "When the reconfirmation was created."
},
"confirmed_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Confirmed At",
"description": "When the Invitee confirmed their attendance."
}
},
"description": "Assuming reconfirmation is enabled for the event type, when reconfirmation is requested this object is present with a `created_at` that reflects when the reconfirmation notification was sent. Once the invitee has reconfirmed the `confirmed_at` attribute will change from `null` to a timestamp that reflects when they took action."
},
{
"type": "null"
}
]
},
"reschedule_url": {
"type": "string",
"title": "Reschedule Url",
"description": "Link to rescheduling the event for the invitee"
},
"scheduling_method": {
"type": [
"string",
"null"
],
"title": "Scheduling Method",
"description": "The method used to schedule the event"
},
"invitee_scheduled_by": {
"type": [
"string",
"null"
],
"title": "Invitee Scheduled By",
"description": "Reference to user URI who scheduled the event"
},
"text_reminder_number": {
"type": [
"string",
"null"
],
"title": "Text Reminder Number",
"description": "The phone number to use when sending text (SMS) reminders"
},
"questions_and_answers": {
"type": "array",
"items": {
"type": "object",
"title": "InviteeQuestionAndAnswer",
"required": [
"question",
"answer",
"position"
],
"properties": {
"answer": {
"type": "string",
"title": "Answer",
"description": "The invitee's response to the question"
},
"position": {
"type": "integer",
"title": "Position",
"description": "The position of the question in relation to others"
},
"question": {
"type": "string",
"title": "Question",
"description": "A question for the invitee. String is case sensitive and must exactly match the question."
}
},
"description": "A response to a question on a booking page form. Required questions must be included in the body and match on the question string exactly."
},
"title": "Questions And Answers",
"minItems": 0,
"description": "A collection of the invitee's responses to questions on the event booking confirmation form"
},
"routing_form_submission": {
"type": [
"string",
"null"
],
"title": "Routing Form Submission",
"description": "Reference to a routing form submission that redirected the invitee to a booking page."
}
},
"description": "An individual who has been invited to meet with a Calendly member"
}
},
"description": "GetScheduledEventInvitees200Response"
},
"annotations": {
"title": "create_invitee",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Use: List all invitees for a scheduled meeting.
When: User asks who is attending a meeting or you need invitee URIs.
Needs: Meeting URI from `meetings-list_events`.
Do: Use returned invitee `uri` for no-show marking or detail lookups.
Avoid: Calling without a meeting URI. list meetings first.
Then: Use invitee URI in `meetings-get_event_invitee` or `meetings-create_invitee_no_show`. For reschedule, surface each invitee's `reschedule_url`.
Describe the returned information so the agent knows whether it will answer the request.
Inputs63/100
Resolve the mismatch between this description and its schema constraints.
uri
Scheduled meeting URI. not a browsable link — never show to users.
Clear enough to supply this argument.
status
Indicates if the invitee "canceled" or still "active"
Resolve the mismatch between this description and its schema constraints.
sort
Order results by the **created_at** field and direction specified: ascending ("asc") or descending ("desc")
Clear enough to supply this argument.
email
Indicates if the results should be filtered by email address
Explain the meaning of this value, not just its name.
page_token
The token to pass to get the next or previous portion of the collection
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
count
The number of rows to return
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"title": "ListEventInvitees200Response",
"required": [
"collection",
"pagination"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "Invitee",
"required": [
"uri",
"email",
"first_name",
"last_name",
"name",
"status",
"questions_and_answers",
"timezone",
"event",
"created_at",
"updated_at",
"tracking",
"text_reminder_number",
"rescheduled",
"old_invitee",
"new_invitee",
"cancel_url",
"reschedule_url",
"routing_form_submission",
"payment",
"no_show",
"reconfirmation",
"scheduling_method",
"invitee_scheduled_by"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the invitee"
},
"name": {
"type": "string",
"title": "Name",
"description": "The invitee’s name (in human-readable format)"
},
"email": {
"type": "string",
"title": "Email",
"description": "The invitee’s email address"
},
"event": {
"type": "string",
"title": "Event",
"description": "A reference to the event"
},
"status": {
"type": "string",
"title": "Status",
"description": "Indicates if the invitee is \"active\" or \"canceled\""
},
"no_show": {
"anyOf": [
{
"type": "object",
"title": "InviteeNoShow",
"required": [
"uri",
"created_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the no show"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the no show was created"
}
},
"description": "Provides data pertaining to the associated no show for the Invitee"
},
{
"type": "null"
}
]
},
"payment": {
"anyOf": [
{
"type": "object",
"title": "InviteePayment",
"required": [
"external_id",
"provider",
"amount",
"currency",
"terms",
"successful"
],
"properties": {
"terms": {
"type": [
"string",
"null"
],
"title": "Terms",
"description": "Terms of the payment"
},
"amount": {
"type": [
"number",
"integer"
],
"title": "Amount",
"description": "The amount of the payment"
},
"currency": {
"type": "string",
"title": "Currency",
"description": "The currency format that the payment is in."
},
"provider": {
"type": "string",
"title": "Provider",
"description": "Payment provider"
},
"successful": {
"type": "boolean",
"title": "Successful",
"description": "Indicates whether the payment was successfully processed"
},
"external_id": {
"type": "string",
"title": "External Id",
"description": "Unique identifier for the payment"
}
},
"description": "Invitee payment"
},
{
"type": "null"
}
]
},
"timezone": {
"type": [
"string",
"null"
],
"title": "Timezone",
"description": "Time zone to use when displaying time to the invitee"
},
"tracking": {
"type": "object",
"title": "InviteeTracking",
"required": [
"utm_campaign",
"utm_source",
"utm_medium",
"utm_content",
"utm_term",
"salesforce_uuid"
],
"properties": {
"utm_term": {
"type": [
"string",
"null"
],
"title": "Utm Term",
"description": "The UTM parameter used to track keywords"
},
"utm_medium": {
"type": [
"string",
"null"
],
"title": "Utm Medium",
"description": "The UTM parameter that identifies the type of input (e.g. Cost Per Click (CPC), social media, affiliate or QR code)"
},
"utm_source": {
"type": [
"string",
"null"
],
"title": "Utm Source",
"description": "The UTM parameter that identifies the source (platform where the traffic originates)"
},
"utm_content": {
"type": [
"string",
"null"
],
"title": "Utm Content",
"description": "UTM content tracking parameter"
},
"utm_campaign": {
"type": [
"string",
"null"
],
"title": "Utm Campaign",
"description": "The UTM parameter used to track a campaign"
},
"salesforce_uuid": {
"type": [
"string",
"null"
],
"title": "Salesforce Uuid",
"description": "The Salesforce record unique identifier"
}
},
"description": "The UTM and Salesforce tracking parameters associated with an Invitee"
},
"last_name": {
"type": [
"string",
"null"
],
"title": "Last Name",
"description": "The last name of the invitee who booked the event when the event type is configured to use separate fields for first name and last name. Null when event type is configured to use a single field for name."
},
"cancel_url": {
"type": "string",
"title": "Cancel Url",
"description": "Link to cancelling the event for the invitee"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the event was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"first_name": {
"type": [
"string",
"null"
],
"title": "First Name",
"description": "The first name of the invitee who booked the event when the event type is configured to use separate fields for first name and last name. Null when event type is configured to use a single field for name."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the event was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"new_invitee": {
"type": [
"string",
"null"
],
"title": "New Invitee",
"description": "Link to new invitee, after reschedule"
},
"old_invitee": {
"type": [
"string",
"null"
],
"title": "Old Invitee",
"description": "Reference to old Invitee instance that got rescheduled"
},
"rescheduled": {
"type": "boolean",
"title": "Rescheduled",
"description": "Indicates if this invitee has rescheduled. If `true`, a reference to the new Invitee instance is provided in the `new_invitee` field."
},
"cancellation": {
"anyOf": [
{
"type": "object",
"title": "Cancellation",
"required": [
"canceled_by",
"reason",
"canceler_type",
"created_at"
],
"properties": {
"reason": {
"type": [
"string",
"null"
],
"title": "Reason",
"description": "Reason that the cancellation occurred"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the cancellation was created"
},
"canceled_by": {
"type": "string",
"title": "Canceled By",
"description": "Name of the person whom canceled"
},
"canceler_type": {
"type": "string",
"title": "Canceler Type"
}
},
"description": "Provides data pertaining to the cancellation of the Event or the Invitee"
},
{
"type": "null"
}
],
"default": null
},
"reconfirmation": {
"anyOf": [
{
"type": "object",
"title": "InviteeReconfirmation",
"required": [
"created_at",
"confirmed_at"
],
"properties": {
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "When the reconfirmation was created."
},
"confirmed_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Confirmed At",
"description": "When the Invitee confirmed their attendance."
}
},
"description": "Assuming reconfirmation is enabled for the event type, when reconfirmation is requested this object is present with a `created_at` that reflects when the reconfirmation notification was sent. Once the invitee has reconfirmed the `confirmed_at` attribute will change from `null` to a timestamp that reflects when they took action."
},
{
"type": "null"
}
]
},
"reschedule_url": {
"type": "string",
"title": "Reschedule Url",
"description": "Link to rescheduling the event for the invitee"
},
"scheduling_method": {
"type": [
"string",
"null"
],
"title": "Scheduling Method",
"description": "The method used to schedule the event"
},
"invitee_scheduled_by": {
"type": [
"string",
"null"
],
"title": "Invitee Scheduled By",
"description": "Reference to user URI who scheduled the event"
},
"text_reminder_number": {
"type": [
"string",
"null"
],
"title": "Text Reminder Number",
"description": "The phone number to use when sending text (SMS) reminders"
},
"questions_and_answers": {
"type": "array",
"items": {
"type": "object",
"title": "InviteeQuestionAndAnswer",
"required": [
"question",
"answer",
"position"
],
"properties": {
"answer": {
"type": "string",
"title": "Answer",
"description": "The invitee's response to the question"
},
"position": {
"type": "integer",
"title": "Position",
"description": "The position of the question in relation to others"
},
"question": {
"type": "string",
"title": "Question",
"description": "A question for the invitee. String is case sensitive and must exactly match the question."
}
},
"description": "A response to a question on a booking page form. Required questions must be included in the body and match on the question string exactly."
},
"title": "Questions And Answers",
"minItems": 0,
"description": "A collection of the invitee's responses to questions on the event booking confirmation form"
},
"routing_form_submission": {
"type": [
"string",
"null"
],
"title": "Routing Form Submission",
"description": "Reference to a routing form submission that redirected the invitee to a booking page."
}
},
"description": "An individual who has been invited to meet with a Calendly member"
},
"title": "Collection",
"description": "The set of event invitees matching the criteria"
},
"pagination": {
"type": "object",
"title": "Pagination",
"required": [
"count",
"next_page",
"previous_page",
"next_page_token",
"previous_page_token"
],
"properties": {
"count": {
"type": "integer",
"title": "Count",
"maximum": 100,
"minimum": 0,
"description": "The number of rows to return"
},
"next_page": {
"type": [
"string",
"null"
],
"title": "Next Page",
"description": "URI to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page": {
"type": [
"string",
"null"
],
"title": "Previous Page",
"description": "URI to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
},
"next_page_token": {
"type": [
"string",
"null"
],
"title": "Next Page Token",
"description": "Token to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page_token": {
"type": [
"string",
"null"
],
"title": "Previous Page Token",
"description": "Token to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
}
},
"description": "Pagination"
}
},
"description": "Service response"
}
Original tool metadata
{
"name": "meetings-list_event_invitees",
"title": "list_event_invitees",
"description": "Use: List all invitees for a scheduled meeting.\nWhen: User asks who is attending a meeting or you need invitee URIs.\nNeeds: Meeting URI from `meetings-list_events`.\nDo: Use returned invitee `uri` for no-show marking or detail lookups.\nAvoid: Calling without a meeting URI. list meetings first.\nThen: Use invitee URI in `meetings-get_event_invitee` or `meetings-create_invitee_no_show`. For reschedule, surface each invitee's `reschedule_url`.",
"inputSchema": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"description": "Scheduled meeting URI. not a browsable link — never show to users."
},
"sort": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Order results by the **created_at** field and direction specified: ascending (\"asc\") or descending (\"desc\")"
},
"count": {
"anyOf": [
{
"type": "integer",
"maximum": 100,
"minimum": 1
},
{
"type": "null"
}
],
"default": null,
"description": "The number of rows to return"
},
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates if the results should be filtered by email address"
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates if the invitee \"canceled\" or still \"active\""
},
"page_token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The token to pass to get the next or previous portion of the collection"
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "ListEventInvitees200Response",
"required": [
"collection",
"pagination"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "Invitee",
"required": [
"uri",
"email",
"first_name",
"last_name",
"name",
"status",
"questions_and_answers",
"timezone",
"event",
"created_at",
"updated_at",
"tracking",
"text_reminder_number",
"rescheduled",
"old_invitee",
"new_invitee",
"cancel_url",
"reschedule_url",
"routing_form_submission",
"payment",
"no_show",
"reconfirmation",
"scheduling_method",
"invitee_scheduled_by"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the invitee"
},
"name": {
"type": "string",
"title": "Name",
"description": "The invitee’s name (in human-readable format)"
},
"email": {
"type": "string",
"title": "Email",
"description": "The invitee’s email address"
},
"event": {
"type": "string",
"title": "Event",
"description": "A reference to the event"
},
"status": {
"type": "string",
"title": "Status",
"description": "Indicates if the invitee is \"active\" or \"canceled\""
},
"no_show": {
"anyOf": [
{
"type": "object",
"title": "InviteeNoShow",
"required": [
"uri",
"created_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the no show"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the no show was created"
}
},
"description": "Provides data pertaining to the associated no show for the Invitee"
},
{
"type": "null"
}
]
},
"payment": {
"anyOf": [
{
"type": "object",
"title": "InviteePayment",
"required": [
"external_id",
"provider",
"amount",
"currency",
"terms",
"successful"
],
"properties": {
"terms": {
"type": [
"string",
"null"
],
"title": "Terms",
"description": "Terms of the payment"
},
"amount": {
"type": [
"number",
"integer"
],
"title": "Amount",
"description": "The amount of the payment"
},
"currency": {
"type": "string",
"title": "Currency",
"description": "The currency format that the payment is in."
},
"provider": {
"type": "string",
"title": "Provider",
"description": "Payment provider"
},
"successful": {
"type": "boolean",
"title": "Successful",
"description": "Indicates whether the payment was successfully processed"
},
"external_id": {
"type": "string",
"title": "External Id",
"description": "Unique identifier for the payment"
}
},
"description": "Invitee payment"
},
{
"type": "null"
}
]
},
"timezone": {
"type": [
"string",
"null"
],
"title": "Timezone",
"description": "Time zone to use when displaying time to the invitee"
},
"tracking": {
"type": "object",
"title": "InviteeTracking",
"required": [
"utm_campaign",
"utm_source",
"utm_medium",
"utm_content",
"utm_term",
"salesforce_uuid"
],
"properties": {
"utm_term": {
"type": [
"string",
"null"
],
"title": "Utm Term",
"description": "The UTM parameter used to track keywords"
},
"utm_medium": {
"type": [
"string",
"null"
],
"title": "Utm Medium",
"description": "The UTM parameter that identifies the type of input (e.g. Cost Per Click (CPC), social media, affiliate or QR code)"
},
"utm_source": {
"type": [
"string",
"null"
],
"title": "Utm Source",
"description": "The UTM parameter that identifies the source (platform where the traffic originates)"
},
"utm_content": {
"type": [
"string",
"null"
],
"title": "Utm Content",
"description": "UTM content tracking parameter"
},
"utm_campaign": {
"type": [
"string",
"null"
],
"title": "Utm Campaign",
"description": "The UTM parameter used to track a campaign"
},
"salesforce_uuid": {
"type": [
"string",
"null"
],
"title": "Salesforce Uuid",
"description": "The Salesforce record unique identifier"
}
},
"description": "The UTM and Salesforce tracking parameters associated with an Invitee"
},
"last_name": {
"type": [
"string",
"null"
],
"title": "Last Name",
"description": "The last name of the invitee who booked the event when the event type is configured to use separate fields for first name and last name. Null when event type is configured to use a single field for name."
},
"cancel_url": {
"type": "string",
"title": "Cancel Url",
"description": "Link to cancelling the event for the invitee"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the event was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"first_name": {
"type": [
"string",
"null"
],
"title": "First Name",
"description": "The first name of the invitee who booked the event when the event type is configured to use separate fields for first name and last name. Null when event type is configured to use a single field for name."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the event was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"new_invitee": {
"type": [
"string",
"null"
],
"title": "New Invitee",
"description": "Link to new invitee, after reschedule"
},
"old_invitee": {
"type": [
"string",
"null"
],
"title": "Old Invitee",
"description": "Reference to old Invitee instance that got rescheduled"
},
"rescheduled": {
"type": "boolean",
"title": "Rescheduled",
"description": "Indicates if this invitee has rescheduled. If `true`, a reference to the new Invitee instance is provided in the `new_invitee` field."
},
"cancellation": {
"anyOf": [
{
"type": "object",
"title": "Cancellation",
"required": [
"canceled_by",
"reason",
"canceler_type",
"created_at"
],
"properties": {
"reason": {
"type": [
"string",
"null"
],
"title": "Reason",
"description": "Reason that the cancellation occurred"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the cancellation was created"
},
"canceled_by": {
"type": "string",
"title": "Canceled By",
"description": "Name of the person whom canceled"
},
"canceler_type": {
"type": "string",
"title": "Canceler Type"
}
},
"description": "Provides data pertaining to the cancellation of the Event or the Invitee"
},
{
"type": "null"
}
],
"default": null
},
"reconfirmation": {
"anyOf": [
{
"type": "object",
"title": "InviteeReconfirmation",
"required": [
"created_at",
"confirmed_at"
],
"properties": {
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "When the reconfirmation was created."
},
"confirmed_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Confirmed At",
"description": "When the Invitee confirmed their attendance."
}
},
"description": "Assuming reconfirmation is enabled for the event type, when reconfirmation is requested this object is present with a `created_at` that reflects when the reconfirmation notification was sent. Once the invitee has reconfirmed the `confirmed_at` attribute will change from `null` to a timestamp that reflects when they took action."
},
{
"type": "null"
}
]
},
"reschedule_url": {
"type": "string",
"title": "Reschedule Url",
"description": "Link to rescheduling the event for the invitee"
},
"scheduling_method": {
"type": [
"string",
"null"
],
"title": "Scheduling Method",
"description": "The method used to schedule the event"
},
"invitee_scheduled_by": {
"type": [
"string",
"null"
],
"title": "Invitee Scheduled By",
"description": "Reference to user URI who scheduled the event"
},
"text_reminder_number": {
"type": [
"string",
"null"
],
"title": "Text Reminder Number",
"description": "The phone number to use when sending text (SMS) reminders"
},
"questions_and_answers": {
"type": "array",
"items": {
"type": "object",
"title": "InviteeQuestionAndAnswer",
"required": [
"question",
"answer",
"position"
],
"properties": {
"answer": {
"type": "string",
"title": "Answer",
"description": "The invitee's response to the question"
},
"position": {
"type": "integer",
"title": "Position",
"description": "The position of the question in relation to others"
},
"question": {
"type": "string",
"title": "Question",
"description": "A question for the invitee. String is case sensitive and must exactly match the question."
}
},
"description": "A response to a question on a booking page form. Required questions must be included in the body and match on the question string exactly."
},
"title": "Questions And Answers",
"minItems": 0,
"description": "A collection of the invitee's responses to questions on the event booking confirmation form"
},
"routing_form_submission": {
"type": [
"string",
"null"
],
"title": "Routing Form Submission",
"description": "Reference to a routing form submission that redirected the invitee to a booking page."
}
},
"description": "An individual who has been invited to meet with a Calendly member"
},
"title": "Collection",
"description": "The set of event invitees matching the criteria"
},
"pagination": {
"type": "object",
"title": "Pagination",
"required": [
"count",
"next_page",
"previous_page",
"next_page_token",
"previous_page_token"
],
"properties": {
"count": {
"type": "integer",
"title": "Count",
"maximum": 100,
"minimum": 0,
"description": "The number of rows to return"
},
"next_page": {
"type": [
"string",
"null"
],
"title": "Next Page",
"description": "URI to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page": {
"type": [
"string",
"null"
],
"title": "Previous Page",
"description": "URI to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
},
"next_page_token": {
"type": [
"string",
"null"
],
"title": "Next Page Token",
"description": "Token to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page_token": {
"type": [
"string",
"null"
],
"title": "Previous Page Token",
"description": "Token to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
}
},
"description": "Pagination"
}
},
"description": "Service response"
},
"annotations": {
"title": "list_event_invitees",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Use: Fetch details for a single meeting invitee.
When: User asks about a specific attendee's booking details.
Needs: Meeting URI from `meetings-list_events` and Invitee URI from `meetings-list_event_invitees`.
Do: Use returned fields for display or no-show status. Reschedule: surface `reschedule_url`.
Avoid: Calling without known meeting and invitee URIs.
Then: Use invitee URI in no-show tools if needed.
The description explains the capability, when to use it, and what to expect.
Inputs91/100
Input documentation gives an agent enough context to populate the arguments.
event_uri
Scheduled meeting URI. not a browsable link — never show to users.
Clear enough to supply this argument.
invitee_uri
Meeting invitee URI. not a browsable link — never show to users.
{
"type": "object",
"title": "GetScheduledEventInvitees200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "Invitee",
"required": [
"uri",
"email",
"first_name",
"last_name",
"name",
"status",
"questions_and_answers",
"timezone",
"event",
"created_at",
"updated_at",
"tracking",
"text_reminder_number",
"rescheduled",
"old_invitee",
"new_invitee",
"cancel_url",
"reschedule_url",
"routing_form_submission",
"payment",
"no_show",
"reconfirmation",
"scheduling_method",
"invitee_scheduled_by"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the invitee"
},
"name": {
"type": "string",
"title": "Name",
"description": "The invitee’s name (in human-readable format)"
},
"email": {
"type": "string",
"title": "Email",
"description": "The invitee’s email address"
},
"event": {
"type": "string",
"title": "Event",
"description": "A reference to the event"
},
"status": {
"type": "string",
"title": "Status",
"description": "Indicates if the invitee is \"active\" or \"canceled\""
},
"no_show": {
"anyOf": [
{
"type": "object",
"title": "InviteeNoShow",
"required": [
"uri",
"created_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the no show"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the no show was created"
}
},
"description": "Provides data pertaining to the associated no show for the Invitee"
},
{
"type": "null"
}
]
},
"payment": {
"anyOf": [
{
"type": "object",
"title": "InviteePayment",
"required": [
"external_id",
"provider",
"amount",
"currency",
"terms",
"successful"
],
"properties": {
"terms": {
"type": [
"string",
"null"
],
"title": "Terms",
"description": "Terms of the payment"
},
"amount": {
"type": [
"number",
"integer"
],
"title": "Amount",
"description": "The amount of the payment"
},
"currency": {
"type": "string",
"title": "Currency",
"description": "The currency format that the payment is in."
},
"provider": {
"type": "string",
"title": "Provider",
"description": "Payment provider"
},
"successful": {
"type": "boolean",
"title": "Successful",
"description": "Indicates whether the payment was successfully processed"
},
"external_id": {
"type": "string",
"title": "External Id",
"description": "Unique identifier for the payment"
}
},
"description": "Invitee payment"
},
{
"type": "null"
}
]
},
"timezone": {
"type": [
"string",
"null"
],
"title": "Timezone",
"description": "Time zone to use when displaying time to the invitee"
},
"tracking": {
"type": "object",
"title": "InviteeTracking",
"required": [
"utm_campaign",
"utm_source",
"utm_medium",
"utm_content",
"utm_term",
"salesforce_uuid"
],
"properties": {
"utm_term": {
"type": [
"string",
"null"
],
"title": "Utm Term",
"description": "The UTM parameter used to track keywords"
},
"utm_medium": {
"type": [
"string",
"null"
],
"title": "Utm Medium",
"description": "The UTM parameter that identifies the type of input (e.g. Cost Per Click (CPC), social media, affiliate or QR code)"
},
"utm_source": {
"type": [
"string",
"null"
],
"title": "Utm Source",
"description": "The UTM parameter that identifies the source (platform where the traffic originates)"
},
"utm_content": {
"type": [
"string",
"null"
],
"title": "Utm Content",
"description": "UTM content tracking parameter"
},
"utm_campaign": {
"type": [
"string",
"null"
],
"title": "Utm Campaign",
"description": "The UTM parameter used to track a campaign"
},
"salesforce_uuid": {
"type": [
"string",
"null"
],
"title": "Salesforce Uuid",
"description": "The Salesforce record unique identifier"
}
},
"description": "The UTM and Salesforce tracking parameters associated with an Invitee"
},
"last_name": {
"type": [
"string",
"null"
],
"title": "Last Name",
"description": "The last name of the invitee who booked the event when the event type is configured to use separate fields for first name and last name. Null when event type is configured to use a single field for name."
},
"cancel_url": {
"type": "string",
"title": "Cancel Url",
"description": "Link to cancelling the event for the invitee"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the event was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"first_name": {
"type": [
"string",
"null"
],
"title": "First Name",
"description": "The first name of the invitee who booked the event when the event type is configured to use separate fields for first name and last name. Null when event type is configured to use a single field for name."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the event was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"new_invitee": {
"type": [
"string",
"null"
],
"title": "New Invitee",
"description": "Link to new invitee, after reschedule"
},
"old_invitee": {
"type": [
"string",
"null"
],
"title": "Old Invitee",
"description": "Reference to old Invitee instance that got rescheduled"
},
"rescheduled": {
"type": "boolean",
"title": "Rescheduled",
"description": "Indicates if this invitee has rescheduled. If `true`, a reference to the new Invitee instance is provided in the `new_invitee` field."
},
"cancellation": {
"anyOf": [
{
"type": "object",
"title": "Cancellation",
"required": [
"canceled_by",
"reason",
"canceler_type",
"created_at"
],
"properties": {
"reason": {
"type": [
"string",
"null"
],
"title": "Reason",
"description": "Reason that the cancellation occurred"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the cancellation was created"
},
"canceled_by": {
"type": "string",
"title": "Canceled By",
"description": "Name of the person whom canceled"
},
"canceler_type": {
"type": "string",
"title": "Canceler Type"
}
},
"description": "Provides data pertaining to the cancellation of the Event or the Invitee"
},
{
"type": "null"
}
],
"default": null
},
"reconfirmation": {
"anyOf": [
{
"type": "object",
"title": "InviteeReconfirmation",
"required": [
"created_at",
"confirmed_at"
],
"properties": {
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "When the reconfirmation was created."
},
"confirmed_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Confirmed At",
"description": "When the Invitee confirmed their attendance."
}
},
"description": "Assuming reconfirmation is enabled for the event type, when reconfirmation is requested this object is present with a `created_at` that reflects when the reconfirmation notification was sent. Once the invitee has reconfirmed the `confirmed_at` attribute will change from `null` to a timestamp that reflects when they took action."
},
{
"type": "null"
}
]
},
"reschedule_url": {
"type": "string",
"title": "Reschedule Url",
"description": "Link to rescheduling the event for the invitee"
},
"scheduling_method": {
"type": [
"string",
"null"
],
"title": "Scheduling Method",
"description": "The method used to schedule the event"
},
"invitee_scheduled_by": {
"type": [
"string",
"null"
],
"title": "Invitee Scheduled By",
"description": "Reference to user URI who scheduled the event"
},
"text_reminder_number": {
"type": [
"string",
"null"
],
"title": "Text Reminder Number",
"description": "The phone number to use when sending text (SMS) reminders"
},
"questions_and_answers": {
"type": "array",
"items": {
"type": "object",
"title": "InviteeQuestionAndAnswer",
"required": [
"question",
"answer",
"position"
],
"properties": {
"answer": {
"type": "string",
"title": "Answer",
"description": "The invitee's response to the question"
},
"position": {
"type": "integer",
"title": "Position",
"description": "The position of the question in relation to others"
},
"question": {
"type": "string",
"title": "Question",
"description": "A question for the invitee. String is case sensitive and must exactly match the question."
}
},
"description": "A response to a question on a booking page form. Required questions must be included in the body and match on the question string exactly."
},
"title": "Questions And Answers",
"minItems": 0,
"description": "A collection of the invitee's responses to questions on the event booking confirmation form"
},
"routing_form_submission": {
"type": [
"string",
"null"
],
"title": "Routing Form Submission",
"description": "Reference to a routing form submission that redirected the invitee to a booking page."
}
},
"description": "An individual who has been invited to meet with a Calendly member"
}
},
"description": "GetScheduledEventInvitees200Response"
}
Original tool metadata
{
"name": "meetings-get_event_invitee",
"title": "get_event_invitee",
"description": "Use: Fetch details for a single meeting invitee.\nWhen: User asks about a specific attendee's booking details.\nNeeds: Meeting URI from `meetings-list_events` and Invitee URI from `meetings-list_event_invitees`.\nDo: Use returned fields for display or no-show status. Reschedule: surface `reschedule_url`.\nAvoid: Calling without known meeting and invitee URIs.\nThen: Use invitee URI in no-show tools if needed.",
"inputSchema": {
"type": "object",
"required": [
"event_uri",
"invitee_uri"
],
"properties": {
"event_uri": {
"type": "string",
"description": "Scheduled meeting URI. not a browsable link — never show to users."
},
"invitee_uri": {
"type": "string",
"description": "Meeting invitee URI. not a browsable link — never show to users."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "GetScheduledEventInvitees200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "Invitee",
"required": [
"uri",
"email",
"first_name",
"last_name",
"name",
"status",
"questions_and_answers",
"timezone",
"event",
"created_at",
"updated_at",
"tracking",
"text_reminder_number",
"rescheduled",
"old_invitee",
"new_invitee",
"cancel_url",
"reschedule_url",
"routing_form_submission",
"payment",
"no_show",
"reconfirmation",
"scheduling_method",
"invitee_scheduled_by"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the invitee"
},
"name": {
"type": "string",
"title": "Name",
"description": "The invitee’s name (in human-readable format)"
},
"email": {
"type": "string",
"title": "Email",
"description": "The invitee’s email address"
},
"event": {
"type": "string",
"title": "Event",
"description": "A reference to the event"
},
"status": {
"type": "string",
"title": "Status",
"description": "Indicates if the invitee is \"active\" or \"canceled\""
},
"no_show": {
"anyOf": [
{
"type": "object",
"title": "InviteeNoShow",
"required": [
"uri",
"created_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the no show"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the no show was created"
}
},
"description": "Provides data pertaining to the associated no show for the Invitee"
},
{
"type": "null"
}
]
},
"payment": {
"anyOf": [
{
"type": "object",
"title": "InviteePayment",
"required": [
"external_id",
"provider",
"amount",
"currency",
"terms",
"successful"
],
"properties": {
"terms": {
"type": [
"string",
"null"
],
"title": "Terms",
"description": "Terms of the payment"
},
"amount": {
"type": [
"number",
"integer"
],
"title": "Amount",
"description": "The amount of the payment"
},
"currency": {
"type": "string",
"title": "Currency",
"description": "The currency format that the payment is in."
},
"provider": {
"type": "string",
"title": "Provider",
"description": "Payment provider"
},
"successful": {
"type": "boolean",
"title": "Successful",
"description": "Indicates whether the payment was successfully processed"
},
"external_id": {
"type": "string",
"title": "External Id",
"description": "Unique identifier for the payment"
}
},
"description": "Invitee payment"
},
{
"type": "null"
}
]
},
"timezone": {
"type": [
"string",
"null"
],
"title": "Timezone",
"description": "Time zone to use when displaying time to the invitee"
},
"tracking": {
"type": "object",
"title": "InviteeTracking",
"required": [
"utm_campaign",
"utm_source",
"utm_medium",
"utm_content",
"utm_term",
"salesforce_uuid"
],
"properties": {
"utm_term": {
"type": [
"string",
"null"
],
"title": "Utm Term",
"description": "The UTM parameter used to track keywords"
},
"utm_medium": {
"type": [
"string",
"null"
],
"title": "Utm Medium",
"description": "The UTM parameter that identifies the type of input (e.g. Cost Per Click (CPC), social media, affiliate or QR code)"
},
"utm_source": {
"type": [
"string",
"null"
],
"title": "Utm Source",
"description": "The UTM parameter that identifies the source (platform where the traffic originates)"
},
"utm_content": {
"type": [
"string",
"null"
],
"title": "Utm Content",
"description": "UTM content tracking parameter"
},
"utm_campaign": {
"type": [
"string",
"null"
],
"title": "Utm Campaign",
"description": "The UTM parameter used to track a campaign"
},
"salesforce_uuid": {
"type": [
"string",
"null"
],
"title": "Salesforce Uuid",
"description": "The Salesforce record unique identifier"
}
},
"description": "The UTM and Salesforce tracking parameters associated with an Invitee"
},
"last_name": {
"type": [
"string",
"null"
],
"title": "Last Name",
"description": "The last name of the invitee who booked the event when the event type is configured to use separate fields for first name and last name. Null when event type is configured to use a single field for name."
},
"cancel_url": {
"type": "string",
"title": "Cancel Url",
"description": "Link to cancelling the event for the invitee"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the event was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"first_name": {
"type": [
"string",
"null"
],
"title": "First Name",
"description": "The first name of the invitee who booked the event when the event type is configured to use separate fields for first name and last name. Null when event type is configured to use a single field for name."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the event was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"new_invitee": {
"type": [
"string",
"null"
],
"title": "New Invitee",
"description": "Link to new invitee, after reschedule"
},
"old_invitee": {
"type": [
"string",
"null"
],
"title": "Old Invitee",
"description": "Reference to old Invitee instance that got rescheduled"
},
"rescheduled": {
"type": "boolean",
"title": "Rescheduled",
"description": "Indicates if this invitee has rescheduled. If `true`, a reference to the new Invitee instance is provided in the `new_invitee` field."
},
"cancellation": {
"anyOf": [
{
"type": "object",
"title": "Cancellation",
"required": [
"canceled_by",
"reason",
"canceler_type",
"created_at"
],
"properties": {
"reason": {
"type": [
"string",
"null"
],
"title": "Reason",
"description": "Reason that the cancellation occurred"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the cancellation was created"
},
"canceled_by": {
"type": "string",
"title": "Canceled By",
"description": "Name of the person whom canceled"
},
"canceler_type": {
"type": "string",
"title": "Canceler Type"
}
},
"description": "Provides data pertaining to the cancellation of the Event or the Invitee"
},
{
"type": "null"
}
],
"default": null
},
"reconfirmation": {
"anyOf": [
{
"type": "object",
"title": "InviteeReconfirmation",
"required": [
"created_at",
"confirmed_at"
],
"properties": {
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "When the reconfirmation was created."
},
"confirmed_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Confirmed At",
"description": "When the Invitee confirmed their attendance."
}
},
"description": "Assuming reconfirmation is enabled for the event type, when reconfirmation is requested this object is present with a `created_at` that reflects when the reconfirmation notification was sent. Once the invitee has reconfirmed the `confirmed_at` attribute will change from `null` to a timestamp that reflects when they took action."
},
{
"type": "null"
}
]
},
"reschedule_url": {
"type": "string",
"title": "Reschedule Url",
"description": "Link to rescheduling the event for the invitee"
},
"scheduling_method": {
"type": [
"string",
"null"
],
"title": "Scheduling Method",
"description": "The method used to schedule the event"
},
"invitee_scheduled_by": {
"type": [
"string",
"null"
],
"title": "Invitee Scheduled By",
"description": "Reference to user URI who scheduled the event"
},
"text_reminder_number": {
"type": [
"string",
"null"
],
"title": "Text Reminder Number",
"description": "The phone number to use when sending text (SMS) reminders"
},
"questions_and_answers": {
"type": "array",
"items": {
"type": "object",
"title": "InviteeQuestionAndAnswer",
"required": [
"question",
"answer",
"position"
],
"properties": {
"answer": {
"type": "string",
"title": "Answer",
"description": "The invitee's response to the question"
},
"position": {
"type": "integer",
"title": "Position",
"description": "The position of the question in relation to others"
},
"question": {
"type": "string",
"title": "Question",
"description": "A question for the invitee. String is case sensitive and must exactly match the question."
}
},
"description": "A response to a question on a booking page form. Required questions must be included in the body and match on the question string exactly."
},
"title": "Questions And Answers",
"minItems": 0,
"description": "A collection of the invitee's responses to questions on the event booking confirmation form"
},
"routing_form_submission": {
"type": [
"string",
"null"
],
"title": "Routing Form Submission",
"description": "Reference to a routing form submission that redirected the invitee to a booking page."
}
},
"description": "An individual who has been invited to meet with a Calendly member"
}
},
"description": "GetScheduledEventInvitees200Response"
},
"annotations": {
"title": "get_event_invitee",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Use: Mark an invitee as a no-show for a past meeting.
When: User reports an invitee did not attend.
Needs: Invitee URI from `meetings-list_event_invitees`.
Do: Pass invitee URI; operation is idempotent.
Avoid: Marking no-show before the meeting end time.
Then: Confirm no-show is recorded and carry forward the no-show URI.
The description explains the capability, when to use it, and what to expect.
Inputs0/100
0 of 1 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
create_invitee_no_show_request › invitee
Not provided
Missing description. Explain what this value means and how to supply it.
{
"type": "object",
"title": "GetInviteeNoShow200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "InviteeNoShow",
"required": [
"uri",
"created_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the no show"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the no show was created"
}
},
"description": "Provides data pertaining to the associated no show for the Invitee"
}
},
"description": "GetInviteeNoShow200Response"
}
Original tool metadata
{
"name": "meetings-create_invitee_no_show",
"title": "create_invitee_no_show",
"description": "Use: Mark an invitee as a no-show for a past meeting.\nWhen: User reports an invitee did not attend.\nNeeds: Invitee URI from `meetings-list_event_invitees`.\nDo: Pass invitee URI; operation is idempotent.\nAvoid: Marking no-show before the meeting end time.\nThen: Confirm no-show is recorded and carry forward the no-show URI.",
"inputSchema": {
"type": "object",
"required": [
"create_invitee_no_show_request"
],
"properties": {
"create_invitee_no_show_request": {
"type": "object",
"properties": {
"invitee": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"description": "(required)"
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "GetInviteeNoShow200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "InviteeNoShow",
"required": [
"uri",
"created_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the no show"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the no show was created"
}
},
"description": "Provides data pertaining to the associated no show for the Invitee"
}
},
"description": "GetInviteeNoShow200Response"
},
"annotations": {
"title": "create_invitee_no_show",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Use: Fetch the no-show record for a meeting invitee.
When: User asks whether a no-show was recorded for an invitee.
Needs: No-show URI from `meetings-create_invitee_no_show`.
Do: Check returned record for no-show status and timestamp.
Avoid: Calling if no no-show has been recorded—returns 404.
Then: Report no-show status to user.
Describe the returned information so the agent knows whether it will answer the request.
Inputs93/100
Input documentation gives an agent enough context to populate the arguments.
uri
Invitee no-show URI. not a browsable link — never show to users.
{
"type": "object",
"title": "GetInviteeNoShow200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "InviteeNoShow",
"required": [
"uri",
"created_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the no show"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the no show was created"
}
},
"description": "Provides data pertaining to the associated no show for the Invitee"
}
},
"description": "GetInviteeNoShow200Response"
}
Original tool metadata
{
"name": "meetings-get_invitee_no_show",
"title": "get_invitee_no_show",
"description": "Use: Fetch the no-show record for a meeting invitee.\nWhen: User asks whether a no-show was recorded for an invitee.\nNeeds: No-show URI from `meetings-create_invitee_no_show`.\nDo: Check returned record for no-show status and timestamp.\nAvoid: Calling if no no-show has been recorded—returns 404.\nThen: Report no-show status to user.",
"inputSchema": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"description": "Invitee no-show URI. not a browsable link — never show to users."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "GetInviteeNoShow200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "InviteeNoShow",
"required": [
"uri",
"created_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the no show"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the no show was created"
}
},
"description": "Provides data pertaining to the associated no show for the Invitee"
}
},
"description": "GetInviteeNoShow200Response"
},
"annotations": {
"title": "get_invitee_no_show",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Use: Remove a no-show mark from an invitee.
When: User asks to undo a no-show marking.
Needs: No-show URI from `meetings-create_invitee_no_show`.
Do: Pass no-show URI; operation is idempotent.
Avoid: Calling without confirming a no-show record exists.
Then: Confirm no-show has been removed.
The description explains the capability, when to use it, and what to expect.
Inputs94/100
Input documentation gives an agent enough context to populate the arguments.
uri
Invitee no-show URI. not a browsable link — never show to users.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "meetings-delete_invitee_no_show",
"title": "delete_invitee_no_show",
"description": "Use: Remove a no-show mark from an invitee.\nWhen: User asks to undo a no-show marking.\nNeeds: No-show URI from `meetings-create_invitee_no_show`.\nDo: Pass no-show URI; operation is idempotent.\nAvoid: Calling without confirming a no-show record exists.\nThen: Confirm no-show has been removed.",
"inputSchema": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"description": "Invitee no-show URI. not a browsable link — never show to users."
}
},
"additionalProperties": false
},
"annotations": {
"title": "delete_invitee_no_show",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
Use: Fetch details for the connected user's organization.
When: User asks about the org or you need the org URI for org-scoped list tools.
Needs: Org URI from `users-get_current_user` (`resource.current_organization`).
Do: Use returned `uri` for org-scoped event type or membership queries.
Avoid: Calling without an org URI.
Then: Use org URI in `organizations-list_organization_memberships`.
Describe the returned information so the agent knows whether it will answer the request.
Inputs94/100
Input documentation gives an agent enough context to populate the arguments.
uri
Organization URI. not a browsable link — never show to users.
{
"type": "object",
"title": "GetOrganization200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "Organization",
"required": [
"uri",
"kind",
"plan",
"stage",
"created_at",
"updated_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical resource reference"
},
"kind": {
"type": "string",
"title": "Kind",
"description": "Indicates whether the organization is a single-user or multiple-user organization"
},
"name": {
"type": [
"string",
"null"
],
"title": "Name",
"default": null,
"description": "The Organization name (in human-readable format)"
},
"plan": {
"type": "string",
"title": "Plan",
"description": "Active subscription plan or trial plan"
},
"stage": {
"type": "string",
"title": "Stage",
"description": "Current stage of organization"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "Timestamp of when the organization was created."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "Timestamp of when the organization was created or updated."
}
},
"description": "Organization object"
}
},
"description": "GetOrganization200Response"
}
Original tool metadata
{
"name": "organizations-get_organization",
"title": "get_organization",
"description": "Use: Fetch details for the connected user's organization.\nWhen: User asks about the org or you need the org URI for org-scoped list tools.\nNeeds: Org URI from `users-get_current_user` (`resource.current_organization`).\nDo: Use returned `uri` for org-scoped event type or membership queries.\nAvoid: Calling without an org URI.\nThen: Use org URI in `organizations-list_organization_memberships`.",
"inputSchema": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"description": "Organization URI. not a browsable link — never show to users."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "GetOrganization200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "Organization",
"required": [
"uri",
"kind",
"plan",
"stage",
"created_at",
"updated_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical resource reference"
},
"kind": {
"type": "string",
"title": "Kind",
"description": "Indicates whether the organization is a single-user or multiple-user organization"
},
"name": {
"type": [
"string",
"null"
],
"title": "Name",
"default": null,
"description": "The Organization name (in human-readable format)"
},
"plan": {
"type": "string",
"title": "Plan",
"description": "Active subscription plan or trial plan"
},
"stage": {
"type": "string",
"title": "Stage",
"description": "Current stage of organization"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "Timestamp of when the organization was created."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "Timestamp of when the organization was created or updated."
}
},
"description": "Organization object"
}
},
"description": "GetOrganization200Response"
},
"annotations": {
"title": "get_organization",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Use: List all members of an organization.
When: User asks who is in the org or you need to find a member's user URI.
Needs: Org URI from `users-get_current_user`.
Do: Use returned `user.uri` for per-user event-type or availability queries.
Avoid: Fetching the full list when you only need the connected user—use `users-get_current_user` instead.
Then: Use member URI in user-scoped tools or `organizations-get_organization_membership`.
The description explains the capability, when to use it, and what to expect.
Inputs47/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
page_token
The token to pass to get the next or previous portion of the collection
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
count
The number of rows to return
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
email
Indicates if the results should be filtered by email address
Explain the meaning of this value, not just its name.
organization
Indicates if the results should be filtered by organization
Explain the meaning of this value, not just its name.
user
Indicates if the results should be filtered by user
Explain the meaning of this value, not just its name.
role
Indicates if the results should be filtered by role
Explain the meaning of this value, not just its name.
{
"type": "object",
"title": "ListOrganizationMemberships200Response",
"required": [
"collection",
"pagination"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "OrganizationMembership",
"required": [
"uri",
"role",
"user",
"organization",
"updated_at",
"created_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the membership"
},
"role": {
"type": "string",
"title": "Role",
"description": "The user's role in the organization"
},
"user": {
"type": "object",
"title": "OrganizationMembershipUser",
"required": [
"uri",
"name",
"slug",
"email",
"scheduling_url",
"timezone",
"avatar_url",
"locale",
"created_at",
"updated_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the user"
},
"name": {
"type": "string",
"title": "Name",
"description": "The user's name (human-readable format)"
},
"slug": {
"type": "string",
"title": "Slug",
"description": "The portion of URL for the user's scheduling page (where invitees book sessions), rendered in a human-readable format"
},
"email": {
"type": "string",
"title": "Email",
"description": "The user's email address"
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The user's language preference"
},
"timezone": {
"type": "string",
"title": "Timezone",
"description": "The time zone to use when presenting time to the user"
},
"avatar_url": {
"type": [
"string",
"null"
],
"title": "Avatar Url",
"description": "The URL of the user's avatar (image)"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the user's record was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the user's record was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user's Calendly landing page (that lists all the user's event types)"
}
},
"description": "Information about the user."
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the membership record was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the membership record was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"organization": {
"type": "string",
"title": "Organization",
"description": "A unique reference to the organization"
}
},
"description": "OrganizationMembership"
},
"title": "Collection"
},
"pagination": {
"type": "object",
"title": "Pagination",
"required": [
"count",
"next_page",
"previous_page",
"next_page_token",
"previous_page_token"
],
"properties": {
"count": {
"type": "integer",
"title": "Count",
"maximum": 100,
"minimum": 0,
"description": "The number of rows to return"
},
"next_page": {
"type": [
"string",
"null"
],
"title": "Next Page",
"description": "URI to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page": {
"type": [
"string",
"null"
],
"title": "Previous Page",
"description": "URI to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
},
"next_page_token": {
"type": [
"string",
"null"
],
"title": "Next Page Token",
"description": "Token to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page_token": {
"type": [
"string",
"null"
],
"title": "Previous Page Token",
"description": "Token to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
}
},
"description": "Pagination"
}
},
"description": "Service response"
}
Original tool metadata
{
"name": "organizations-list_organization_memberships",
"title": "list_organization_memberships",
"description": "Use: List all members of an organization.\nWhen: User asks who is in the org or you need to find a member's user URI.\nNeeds: Org URI from `users-get_current_user`.\nDo: Use returned `user.uri` for per-user event-type or availability queries.\nAvoid: Fetching the full list when you only need the connected user—use `users-get_current_user` instead.\nThen: Use member URI in user-scoped tools or `organizations-get_organization_membership`.",
"inputSchema": {
"type": "object",
"properties": {
"role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates if the results should be filtered by role"
},
"user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates if the results should be filtered by user"
},
"count": {
"anyOf": [
{
"type": "integer",
"maximum": 100,
"minimum": 1
},
{
"type": "null"
}
],
"default": null,
"description": "The number of rows to return"
},
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates if the results should be filtered by email address"
},
"page_token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The token to pass to get the next or previous portion of the collection"
},
"organization": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates if the results should be filtered by organization"
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "ListOrganizationMemberships200Response",
"required": [
"collection",
"pagination"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "OrganizationMembership",
"required": [
"uri",
"role",
"user",
"organization",
"updated_at",
"created_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the membership"
},
"role": {
"type": "string",
"title": "Role",
"description": "The user's role in the organization"
},
"user": {
"type": "object",
"title": "OrganizationMembershipUser",
"required": [
"uri",
"name",
"slug",
"email",
"scheduling_url",
"timezone",
"avatar_url",
"locale",
"created_at",
"updated_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the user"
},
"name": {
"type": "string",
"title": "Name",
"description": "The user's name (human-readable format)"
},
"slug": {
"type": "string",
"title": "Slug",
"description": "The portion of URL for the user's scheduling page (where invitees book sessions), rendered in a human-readable format"
},
"email": {
"type": "string",
"title": "Email",
"description": "The user's email address"
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The user's language preference"
},
"timezone": {
"type": "string",
"title": "Timezone",
"description": "The time zone to use when presenting time to the user"
},
"avatar_url": {
"type": [
"string",
"null"
],
"title": "Avatar Url",
"description": "The URL of the user's avatar (image)"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the user's record was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the user's record was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user's Calendly landing page (that lists all the user's event types)"
}
},
"description": "Information about the user."
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the membership record was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the membership record was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"organization": {
"type": "string",
"title": "Organization",
"description": "A unique reference to the organization"
}
},
"description": "OrganizationMembership"
},
"title": "Collection"
},
"pagination": {
"type": "object",
"title": "Pagination",
"required": [
"count",
"next_page",
"previous_page",
"next_page_token",
"previous_page_token"
],
"properties": {
"count": {
"type": "integer",
"title": "Count",
"maximum": 100,
"minimum": 0,
"description": "The number of rows to return"
},
"next_page": {
"type": [
"string",
"null"
],
"title": "Next Page",
"description": "URI to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page": {
"type": [
"string",
"null"
],
"title": "Previous Page",
"description": "URI to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
},
"next_page_token": {
"type": [
"string",
"null"
],
"title": "Next Page Token",
"description": "Token to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page_token": {
"type": [
"string",
"null"
],
"title": "Previous Page Token",
"description": "Token to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
}
},
"description": "Pagination"
}
},
"description": "Service response"
},
"annotations": {
"title": "list_organization_memberships",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
Use: Fetch details for a single org membership.
When: You need role or status for a specific member.
Needs: Membership URI from `organizations-list_organization_memberships`.
Do: Check `role` and `status` fields for permissions context.
Avoid: Calling without a known membership URI.
Then: Use membership data to confirm before invite or removal actions.
Describe the returned information so the agent knows whether it will answer the request.
Inputs95/100
Input documentation gives an agent enough context to populate the arguments.
uri
Organization membership URI. not a browsable link — never show to users.
{
"type": "object",
"title": "GetOrganizationMembership200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "OrganizationMembership",
"required": [
"uri",
"role",
"user",
"organization",
"updated_at",
"created_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the membership"
},
"role": {
"type": "string",
"title": "Role",
"description": "The user's role in the organization"
},
"user": {
"type": "object",
"title": "OrganizationMembershipUser",
"required": [
"uri",
"name",
"slug",
"email",
"scheduling_url",
"timezone",
"avatar_url",
"locale",
"created_at",
"updated_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the user"
},
"name": {
"type": "string",
"title": "Name",
"description": "The user's name (human-readable format)"
},
"slug": {
"type": "string",
"title": "Slug",
"description": "The portion of URL for the user's scheduling page (where invitees book sessions), rendered in a human-readable format"
},
"email": {
"type": "string",
"title": "Email",
"description": "The user's email address"
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The user's language preference"
},
"timezone": {
"type": "string",
"title": "Timezone",
"description": "The time zone to use when presenting time to the user"
},
"avatar_url": {
"type": [
"string",
"null"
],
"title": "Avatar Url",
"description": "The URL of the user's avatar (image)"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the user's record was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the user's record was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user's Calendly landing page (that lists all the user's event types)"
}
},
"description": "Information about the user."
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the membership record was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the membership record was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"organization": {
"type": "string",
"title": "Organization",
"description": "A unique reference to the organization"
}
},
"description": "OrganizationMembership"
}
},
"description": "GetOrganizationMembership200Response"
}
Original tool metadata
{
"name": "organizations-get_organization_membership",
"title": "get_organization_membership",
"description": "Use: Fetch details for a single org membership.\nWhen: You need role or status for a specific member.\nNeeds: Membership URI from `organizations-list_organization_memberships`.\nDo: Check `role` and `status` fields for permissions context.\nAvoid: Calling without a known membership URI.\nThen: Use membership data to confirm before invite or removal actions.",
"inputSchema": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"description": "Organization membership URI. not a browsable link — never show to users."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "GetOrganizationMembership200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "OrganizationMembership",
"required": [
"uri",
"role",
"user",
"organization",
"updated_at",
"created_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the membership"
},
"role": {
"type": "string",
"title": "Role",
"description": "The user's role in the organization"
},
"user": {
"type": "object",
"title": "OrganizationMembershipUser",
"required": [
"uri",
"name",
"slug",
"email",
"scheduling_url",
"timezone",
"avatar_url",
"locale",
"created_at",
"updated_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the user"
},
"name": {
"type": "string",
"title": "Name",
"description": "The user's name (human-readable format)"
},
"slug": {
"type": "string",
"title": "Slug",
"description": "The portion of URL for the user's scheduling page (where invitees book sessions), rendered in a human-readable format"
},
"email": {
"type": "string",
"title": "Email",
"description": "The user's email address"
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The user's language preference"
},
"timezone": {
"type": "string",
"title": "Timezone",
"description": "The time zone to use when presenting time to the user"
},
"avatar_url": {
"type": [
"string",
"null"
],
"title": "Avatar Url",
"description": "The URL of the user's avatar (image)"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the user's record was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the user's record was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user's Calendly landing page (that lists all the user's event types)"
}
},
"description": "Information about the user."
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the membership record was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the membership record was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"organization": {
"type": "string",
"title": "Organization",
"description": "A unique reference to the organization"
}
},
"description": "OrganizationMembership"
}
},
"description": "GetOrganizationMembership200Response"
},
"annotations": {
"title": "get_organization_membership",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
Use: List pending invitations for the organization.
When: User asks to see pending invites or check if someone was already invited.
Needs: Org URI from `users-get_current_user`.
Do: Check returned list before sending a new invite to avoid duplicates.
Avoid: Sending a new invitation without checking for existing pending ones.
Then: Use invitation URI in `organizations-revoke_organization_invitation` if needed.
The description explains the capability, when to use it, and what to expect.
Inputs38/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
uri
Organization URI. not a browsable link — never show to users.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
count
The number of rows to return
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
page_token
The token to pass to get the next or previous portion of the collection
Clear enough to supply this argument.
sort
Order results by the field name and direction specified (ascending or descending). Returns multiple sets of results in a comma-separated list.
Resolve the mismatch between this description and its schema constraints.
email
Indicates if the results should be filtered by email address
Resolve the mismatch between this description and its schema constraints.
status
Indicates if the results should be filtered by status ("pending", "accepted", or "declined")
Resolve the mismatch between this description and its schema constraints.
{
"type": "object",
"title": "ListOrganizationInvitations200Response",
"required": [
"collection",
"pagination"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "OrganizationInvitation",
"required": [
"uri",
"organization",
"email",
"status",
"created_at",
"updated_at",
"last_sent_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the organization invitation"
},
"user": {
"type": [
"string",
"null"
],
"title": "User",
"default": null,
"description": "When the invitation is accepted, a reference to the user who accepted the invitation"
},
"email": {
"type": "string",
"title": "Email",
"description": "The email address of the person who was invited to join the organization"
},
"status": {
"type": "string",
"title": "Status",
"description": "The status of the invitation (\"pending\", \"accepted\", or \"declined\")"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the invitation was created (e.g. “2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment the invitation was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"last_sent_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Last Sent At",
"description": "The moment the invitation was last sent (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"organization": {
"type": "string",
"title": "Organization",
"description": "Canonical reference (unique identifier) for the organization"
}
},
"description": "Organization Invitation object"
},
"title": "Collection"
},
"pagination": {
"type": "object",
"title": "Pagination",
"required": [
"count",
"next_page",
"previous_page",
"next_page_token",
"previous_page_token"
],
"properties": {
"count": {
"type": "integer",
"title": "Count",
"maximum": 100,
"minimum": 0,
"description": "The number of rows to return"
},
"next_page": {
"type": [
"string",
"null"
],
"title": "Next Page",
"description": "URI to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page": {
"type": [
"string",
"null"
],
"title": "Previous Page",
"description": "URI to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
},
"next_page_token": {
"type": [
"string",
"null"
],
"title": "Next Page Token",
"description": "Token to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page_token": {
"type": [
"string",
"null"
],
"title": "Previous Page Token",
"description": "Token to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
}
},
"description": "Pagination"
}
},
"description": "ListOrganizationInvitations200Response"
}
Original tool metadata
{
"name": "organizations-list_organization_invitations",
"title": "list_organization_invitations",
"description": "Use: List pending invitations for the organization.\nWhen: User asks to see pending invites or check if someone was already invited.\nNeeds: Org URI from `users-get_current_user`.\nDo: Check returned list before sending a new invite to avoid duplicates.\nAvoid: Sending a new invitation without checking for existing pending ones.\nThen: Use invitation URI in `organizations-revoke_organization_invitation` if needed.",
"inputSchema": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"description": "Organization URI. not a browsable link — never show to users."
},
"sort": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Order results by the field name and direction specified (ascending or descending). Returns multiple sets of results in a comma-separated list."
},
"count": {
"anyOf": [
{
"type": "integer",
"maximum": 100,
"minimum": 1
},
{
"type": "null"
}
],
"default": null,
"description": "The number of rows to return"
},
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates if the results should be filtered by email address"
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Indicates if the results should be filtered by status (\"pending\", \"accepted\", or \"declined\")"
},
"page_token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The token to pass to get the next or previous portion of the collection"
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "ListOrganizationInvitations200Response",
"required": [
"collection",
"pagination"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "OrganizationInvitation",
"required": [
"uri",
"organization",
"email",
"status",
"created_at",
"updated_at",
"last_sent_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the organization invitation"
},
"user": {
"type": [
"string",
"null"
],
"title": "User",
"default": null,
"description": "When the invitation is accepted, a reference to the user who accepted the invitation"
},
"email": {
"type": "string",
"title": "Email",
"description": "The email address of the person who was invited to join the organization"
},
"status": {
"type": "string",
"title": "Status",
"description": "The status of the invitation (\"pending\", \"accepted\", or \"declined\")"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the invitation was created (e.g. “2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment the invitation was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"last_sent_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Last Sent At",
"description": "The moment the invitation was last sent (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"organization": {
"type": "string",
"title": "Organization",
"description": "Canonical reference (unique identifier) for the organization"
}
},
"description": "Organization Invitation object"
},
"title": "Collection"
},
"pagination": {
"type": "object",
"title": "Pagination",
"required": [
"count",
"next_page",
"previous_page",
"next_page_token",
"previous_page_token"
],
"properties": {
"count": {
"type": "integer",
"title": "Count",
"maximum": 100,
"minimum": 0,
"description": "The number of rows to return"
},
"next_page": {
"type": [
"string",
"null"
],
"title": "Next Page",
"description": "URI to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page": {
"type": [
"string",
"null"
],
"title": "Previous Page",
"description": "URI to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
},
"next_page_token": {
"type": [
"string",
"null"
],
"title": "Next Page Token",
"description": "Token to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page_token": {
"type": [
"string",
"null"
],
"title": "Previous Page Token",
"description": "Token to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
}
},
"description": "Pagination"
}
},
"description": "ListOrganizationInvitations200Response"
},
"annotations": {
"title": "list_organization_invitations",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Use: Invite a user to the organization by email.
When: User asks to add a new member.
Needs: Org URI and invitee email address.
Do: Check `organizations-list_organization_invitations` first to avoid duplicate invites.
Avoid: Calling without confirming no pending invite exists for this email.
Then: Confirm invitation sent and optionally show pending invitations.
Describe the returned information so the agent knows whether it will answer the request.
Inputs73/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
uri
Organization URI. not a browsable link — never show to users.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
{
"type": "object",
"title": "CreateOrganizationInvitation201Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "OrganizationInvitation",
"required": [
"uri",
"organization",
"email",
"status",
"created_at",
"updated_at",
"last_sent_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the organization invitation"
},
"user": {
"type": [
"string",
"null"
],
"title": "User",
"default": null,
"description": "When the invitation is accepted, a reference to the user who accepted the invitation"
},
"email": {
"type": "string",
"title": "Email",
"description": "The email address of the person who was invited to join the organization"
},
"status": {
"type": "string",
"title": "Status",
"description": "The status of the invitation (\"pending\", \"accepted\", or \"declined\")"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the invitation was created (e.g. “2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment the invitation was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"last_sent_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Last Sent At",
"description": "The moment the invitation was last sent (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"organization": {
"type": "string",
"title": "Organization",
"description": "Canonical reference (unique identifier) for the organization"
}
},
"description": "Organization Invitation object"
}
},
"description": "CreateOrganizationInvitation201Response"
}
Original tool metadata
{
"name": "organizations-create_organization_invitation",
"title": "create_organization_invitation",
"description": "Use: Invite a user to the organization by email.\nWhen: User asks to add a new member.\nNeeds: Org URI and invitee email address.\nDo: Check `organizations-list_organization_invitations` first to avoid duplicate invites.\nAvoid: Calling without confirming no pending invite exists for this email.\nThen: Confirm invitation sent and optionally show pending invitations.",
"inputSchema": {
"type": "object",
"required": [
"uri",
"create_organization_invitation_request"
],
"properties": {
"uri": {
"type": "string",
"description": "Organization URI. not a browsable link — never show to users."
},
"create_organization_invitation_request": {
"type": "object",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"description": "The email of the user being invited"
}
},
"description": "(required)"
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "CreateOrganizationInvitation201Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "OrganizationInvitation",
"required": [
"uri",
"organization",
"email",
"status",
"created_at",
"updated_at",
"last_sent_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the organization invitation"
},
"user": {
"type": [
"string",
"null"
],
"title": "User",
"default": null,
"description": "When the invitation is accepted, a reference to the user who accepted the invitation"
},
"email": {
"type": "string",
"title": "Email",
"description": "The email address of the person who was invited to join the organization"
},
"status": {
"type": "string",
"title": "Status",
"description": "The status of the invitation (\"pending\", \"accepted\", or \"declined\")"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the invitation was created (e.g. “2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment the invitation was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"last_sent_at": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Last Sent At",
"description": "The moment the invitation was last sent (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"organization": {
"type": "string",
"title": "Organization",
"description": "Canonical reference (unique identifier) for the organization"
}
},
"description": "Organization Invitation object"
}
},
"description": "CreateOrganizationInvitation201Response"
},
"annotations": {
"title": "create_organization_invitation",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Use: Revoke a pending organization invitation.
When: User asks to cancel a pending invite.
Needs: Organization URI from `users-get_current_user` and Invitation URI from `organizations-list_organization_invitations`.
Do: Confirm with user before revoking; this cannot be undone.
Avoid: Revoking without confirming the invite is still pending.
Then: Confirm revocation and optionally refresh invitations list.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
org_uri
Organization URI. not a browsable link — never show to users.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
uri
Pending invitation URI. not a browsable link — never show to users.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "organizations-revoke_organization_invitation",
"title": "revoke_organization_invitation",
"description": "Use: Revoke a pending organization invitation.\nWhen: User asks to cancel a pending invite.\nNeeds: Organization URI from `users-get_current_user` and Invitation URI from `organizations-list_organization_invitations`.\nDo: Confirm with user before revoking; this cannot be undone.\nAvoid: Revoking without confirming the invite is still pending.\nThen: Confirm revocation and optionally refresh invitations list.",
"inputSchema": {
"type": "object",
"required": [
"org_uri",
"uri"
],
"properties": {
"uri": {
"type": "string",
"description": "Pending invitation URI. not a browsable link — never show to users."
},
"org_uri": {
"type": "string",
"description": "Organization URI. not a browsable link — never show to users."
}
},
"additionalProperties": false
},
"annotations": {
"title": "revoke_organization_invitation",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description86/100
Use: List routing forms for the org.
When: User asks about routing forms or you need to find a form by name.
Needs: Org URI from `users-get_current_user`.
Do: Use returned `uri` to fetch form details.
Avoid: Assuming form names without listing first.
Then: Use form URI in `routing_forms-get_routing_form`.
Describe the returned information so the agent knows whether it will answer the request.
Inputs63/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
organization
View organization routing forms associated with the organization's URI.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
count
The number of rows to return
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
page_token
The token to pass to get the next or previous portion of the collection
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
sort
Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values. Supported fields are: created_at. Sort direction is specified as: asc, desc.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"title": "ListRoutingForms200Response",
"required": [
"collection",
"pagination"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "RoutingForm",
"required": [
"uri",
"organization",
"name",
"status",
"questions",
"created_at",
"updated_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the routing form. "
},
"name": {
"type": "string",
"title": "Name",
"description": "The routing form name (in human-readable format)."
},
"status": {
"type": "string",
"title": "Status",
"description": "Indicates if the form is in \"draft\" or \"published\" status."
},
"questions": {
"type": "array",
"items": {
"type": "object",
"title": "Question",
"required": [
"uuid",
"name",
"type",
"required",
"answer_choices"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Question name (in human-readable format)."
},
"type": {
"type": "string",
"title": "Type",
"description": "Question type: name, text input, email, phone, textarea input, dropdown list or radio button list."
},
"uuid": {
"type": "string",
"title": "Uuid",
"format": "uuid",
"description": "Unique identifier for the routing form question."
},
"required": {
"type": "boolean",
"title": "Required",
"description": "true if an answer to the question is required for respondents to submit the routing form; false if not required. "
},
"answer_choices": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Answer Choices",
"description": "The respondent’s option(s) for \"select\" or \"radios\" types of questions."
}
},
"description": "Routing form questions."
},
"title": "Questions",
"description": "An ordered collection of Routing Form non-deleted questions."
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the routing form was created."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the routing form was last updated."
},
"organization": {
"type": "string",
"title": "Organization",
"description": "The URI of the organization that's associated with the routing form."
}
},
"description": "Information about a routing form."
},
"title": "Collection"
},
"pagination": {
"type": "object",
"title": "Pagination",
"required": [
"count",
"next_page",
"previous_page",
"next_page_token",
"previous_page_token"
],
"properties": {
"count": {
"type": "integer",
"title": "Count",
"maximum": 100,
"minimum": 0,
"description": "The number of rows to return"
},
"next_page": {
"type": [
"string",
"null"
],
"title": "Next Page",
"description": "URI to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page": {
"type": [
"string",
"null"
],
"title": "Previous Page",
"description": "URI to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
},
"next_page_token": {
"type": [
"string",
"null"
],
"title": "Next Page Token",
"description": "Token to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page_token": {
"type": [
"string",
"null"
],
"title": "Previous Page Token",
"description": "Token to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
}
},
"description": "Pagination"
}
},
"description": "ListRoutingForms200Response"
}
Original tool metadata
{
"name": "routing_forms-list_routing_forms",
"title": "list_routing_forms",
"description": "Use: List routing forms for the org.\nWhen: User asks about routing forms or you need to find a form by name.\nNeeds: Org URI from `users-get_current_user`.\nDo: Use returned `uri` to fetch form details.\nAvoid: Assuming form names without listing first.\nThen: Use form URI in `routing_forms-get_routing_form`.",
"inputSchema": {
"type": "object",
"required": [
"organization"
],
"properties": {
"sort": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values. Supported fields are: created_at. Sort direction is specified as: asc, desc."
},
"count": {
"anyOf": [
{
"type": "integer",
"maximum": 100,
"minimum": 1
},
{
"type": "null"
}
],
"default": null,
"description": "The number of rows to return"
},
"page_token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The token to pass to get the next or previous portion of the collection"
},
"organization": {
"type": "string",
"description": "View organization routing forms associated with the organization's URI."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "ListRoutingForms200Response",
"required": [
"collection",
"pagination"
],
"properties": {
"collection": {
"type": "array",
"items": {
"type": "object",
"title": "RoutingForm",
"required": [
"uri",
"organization",
"name",
"status",
"questions",
"created_at",
"updated_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the routing form. "
},
"name": {
"type": "string",
"title": "Name",
"description": "The routing form name (in human-readable format)."
},
"status": {
"type": "string",
"title": "Status",
"description": "Indicates if the form is in \"draft\" or \"published\" status."
},
"questions": {
"type": "array",
"items": {
"type": "object",
"title": "Question",
"required": [
"uuid",
"name",
"type",
"required",
"answer_choices"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Question name (in human-readable format)."
},
"type": {
"type": "string",
"title": "Type",
"description": "Question type: name, text input, email, phone, textarea input, dropdown list or radio button list."
},
"uuid": {
"type": "string",
"title": "Uuid",
"format": "uuid",
"description": "Unique identifier for the routing form question."
},
"required": {
"type": "boolean",
"title": "Required",
"description": "true if an answer to the question is required for respondents to submit the routing form; false if not required. "
},
"answer_choices": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Answer Choices",
"description": "The respondent’s option(s) for \"select\" or \"radios\" types of questions."
}
},
"description": "Routing form questions."
},
"title": "Questions",
"description": "An ordered collection of Routing Form non-deleted questions."
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the routing form was created."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the routing form was last updated."
},
"organization": {
"type": "string",
"title": "Organization",
"description": "The URI of the organization that's associated with the routing form."
}
},
"description": "Information about a routing form."
},
"title": "Collection"
},
"pagination": {
"type": "object",
"title": "Pagination",
"required": [
"count",
"next_page",
"previous_page",
"next_page_token",
"previous_page_token"
],
"properties": {
"count": {
"type": "integer",
"title": "Count",
"maximum": 100,
"minimum": 0,
"description": "The number of rows to return"
},
"next_page": {
"type": [
"string",
"null"
],
"title": "Next Page",
"description": "URI to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page": {
"type": [
"string",
"null"
],
"title": "Previous Page",
"description": "URI to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
},
"next_page_token": {
"type": [
"string",
"null"
],
"title": "Next Page Token",
"description": "Token to return the next page of an ordered list (\"null\" indicates no additional results are available)"
},
"previous_page_token": {
"type": [
"string",
"null"
],
"title": "Previous Page Token",
"description": "Token to return the previous page of an ordered list (\"null\" indicates no additional results are available)"
}
},
"description": "Pagination"
}
},
"description": "ListRoutingForms200Response"
},
"annotations": {
"title": "list_routing_forms",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Use: Fetch details for a single routing form.
When: User asks about a specific form or its questions.
Needs: Routing form URI from `routing_forms-list_routing_forms`.
Do: Use returned question IDs for submission filtering.
Avoid: Calling without a known form URI.
Then: Use form details to answer user questions or list submissions.
The description explains the capability, when to use it, and what to expect.
Inputs95/100
Input documentation gives an agent enough context to populate the arguments.
uri
Routing form URI. not a browsable link — never show to users.
{
"type": "object",
"title": "GetRoutingForm200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "RoutingForm",
"required": [
"uri",
"organization",
"name",
"status",
"questions",
"created_at",
"updated_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the routing form. "
},
"name": {
"type": "string",
"title": "Name",
"description": "The routing form name (in human-readable format)."
},
"status": {
"type": "string",
"title": "Status",
"description": "Indicates if the form is in \"draft\" or \"published\" status."
},
"questions": {
"type": "array",
"items": {
"type": "object",
"title": "Question",
"required": [
"uuid",
"name",
"type",
"required",
"answer_choices"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Question name (in human-readable format)."
},
"type": {
"type": "string",
"title": "Type",
"description": "Question type: name, text input, email, phone, textarea input, dropdown list or radio button list."
},
"uuid": {
"type": "string",
"title": "Uuid",
"format": "uuid",
"description": "Unique identifier for the routing form question."
},
"required": {
"type": "boolean",
"title": "Required",
"description": "true if an answer to the question is required for respondents to submit the routing form; false if not required. "
},
"answer_choices": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Answer Choices",
"description": "The respondent’s option(s) for \"select\" or \"radios\" types of questions."
}
},
"description": "Routing form questions."
},
"title": "Questions",
"description": "An ordered collection of Routing Form non-deleted questions."
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the routing form was created."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the routing form was last updated."
},
"organization": {
"type": "string",
"title": "Organization",
"description": "The URI of the organization that's associated with the routing form."
}
},
"description": "Information about a routing form."
}
},
"description": "GetRoutingForm200Response"
}
Original tool metadata
{
"name": "routing_forms-get_routing_form",
"title": "get_routing_form",
"description": "Use: Fetch details for a single routing form.\nWhen: User asks about a specific form or its questions.\nNeeds: Routing form URI from `routing_forms-list_routing_forms`.\nDo: Use returned question IDs for submission filtering.\nAvoid: Calling without a known form URI.\nThen: Use form details to answer user questions or list submissions.",
"inputSchema": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"description": "Routing form URI. not a browsable link — never show to users."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "GetRoutingForm200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "RoutingForm",
"required": [
"uri",
"organization",
"name",
"status",
"questions",
"created_at",
"updated_at"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the routing form. "
},
"name": {
"type": "string",
"title": "Name",
"description": "The routing form name (in human-readable format)."
},
"status": {
"type": "string",
"title": "Status",
"description": "Indicates if the form is in \"draft\" or \"published\" status."
},
"questions": {
"type": "array",
"items": {
"type": "object",
"title": "Question",
"required": [
"uuid",
"name",
"type",
"required",
"answer_choices"
],
"properties": {
"name": {
"type": "string",
"title": "Name",
"description": "Question name (in human-readable format)."
},
"type": {
"type": "string",
"title": "Type",
"description": "Question type: name, text input, email, phone, textarea input, dropdown list or radio button list."
},
"uuid": {
"type": "string",
"title": "Uuid",
"format": "uuid",
"description": "Unique identifier for the routing form question."
},
"required": {
"type": "boolean",
"title": "Required",
"description": "true if an answer to the question is required for respondents to submit the routing form; false if not required. "
},
"answer_choices": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Answer Choices",
"description": "The respondent’s option(s) for \"select\" or \"radios\" types of questions."
}
},
"description": "Routing form questions."
},
"title": "Questions",
"description": "An ordered collection of Routing Form non-deleted questions."
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment the routing form was created."
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the routing form was last updated."
},
"organization": {
"type": "string",
"title": "Organization",
"description": "The URI of the organization that's associated with the routing form."
}
},
"description": "Information about a routing form."
}
},
"description": "GetRoutingForm200Response"
},
"annotations": {
"title": "get_routing_form",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description84/100
Use: List submissions for a routing form.
When: User asks to see form responses or analyze routing data.
Needs: Routing form URI from `routing_forms-list_routing_forms`.
Do: Use pagination params for large result sets.
Avoid: Fetching all submissions without date/count filters on high-volume forms.
Then: Use submission URI in `routing_forms-get_routing_form_submission`.
Describe the returned information so the agent knows whether it will answer the request.
Inputs63/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
form
View routing form submissions associated with the routing form's URI.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
count
The number of rows to return
Explain what happens when this optional value is omitted.
page_token
The token to pass to get the next or previous portion of the collection
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
sort
Order results by the specified field and direction. Accepts comma-separated list of {field}:{direction} values. Supported fields are: created_at. Sort direction is specified as: asc, desc.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Use: Fetch details for a single routing form submission.
When: User asks about a specific submission or response.
Needs: Submission URI from `routing_forms-list_routing_form_submissions`.
Do: Read `questions_and_answers` for the submitted values.
Avoid: Calling without a known submission URI.
Then: Report submission details to user.
Describe the returned information so the agent knows whether it will answer the request.
Inputs96/100
Input documentation gives an agent enough context to populate the arguments.
uri
Routing form submission URI. not a browsable link — never show to users.
Shorten the title to an action and subject; move usage details into the description.
Description99/100
Use: Create a single-use scheduling link using the event type's settings unchanged.
When: User wants a one-time link with no overrides. For per-link customization (duration, scheduling window, location, availability), use `shares-create_share` instead.
Needs: Event type URI from `event_types-list_event_types`.
Do: Each call creates a new link; store the returned `booking_url`.
Avoid: Using when any override is requested — this endpoint cannot customize the link. Don't create more links than needed; each call creates a distinct non-reusable link.
Then: Share `booking_url` with the intended invitee.
The description explains the capability, when to use it, and what to expect.
Inputs73/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
create_scheduling_link_request › max_event_count
The max number of events that can be scheduled using this scheduling link.
Clear enough to supply this argument.
create_scheduling_link_request › owner
A link to the resource that owns this Scheduling Link (currently, this is always an Event Type)
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
create_scheduling_link_request › owner_type
Resource type (currently, this is always EventType)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"title": "CreateSchedulingLink201Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "CreateSchedulingLink201ResponseResource",
"required": [
"booking_url"
],
"properties": {
"owner": {
"type": [
"string",
"null"
],
"title": "Owner",
"default": null,
"description": "A link to the resource that owns this Scheduling Link (currently, this is always an Event Type)"
},
"owner_type": {
"type": [
"string",
"null"
],
"title": "Owner Type",
"default": null,
"description": "Resource type (currently, this is always EventType)"
},
"booking_url": {
"type": "string",
"title": "Booking Url",
"description": "Scheduling link url"
}
},
"description": "CreateSchedulingLink201ResponseResource"
}
},
"description": "CreateSchedulingLink201Response"
}
Original tool metadata
{
"name": "scheduling_links-create_single_use_scheduling_link",
"title": "create_single_use_scheduling_link",
"description": "Use: Create a single-use scheduling link using the event type's settings unchanged.\nWhen: User wants a one-time link with no overrides. For per-link customization (duration, scheduling window, location, availability), use `shares-create_share` instead.\nNeeds: Event type URI from `event_types-list_event_types`.\nDo: Each call creates a new link; store the returned `booking_url`.\nAvoid: Using when any override is requested — this endpoint cannot customize the link. Don't create more links than needed; each call creates a distinct non-reusable link.\nThen: Share `booking_url` with the intended invitee.",
"inputSchema": {
"type": "object",
"required": [
"create_scheduling_link_request"
],
"properties": {
"create_scheduling_link_request": {
"type": "object",
"required": [
"max_event_count",
"owner",
"owner_type"
],
"properties": {
"owner": {
"type": "string",
"description": "A link to the resource that owns this Scheduling Link (currently, this is always an Event Type)"
},
"owner_type": {
"type": "string",
"description": "Resource type (currently, this is always EventType)"
},
"max_event_count": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
}
],
"description": "The max number of events that can be scheduled using this scheduling link."
}
},
"description": "(required)"
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "CreateSchedulingLink201Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "CreateSchedulingLink201ResponseResource",
"required": [
"booking_url"
],
"properties": {
"owner": {
"type": [
"string",
"null"
],
"title": "Owner",
"default": null,
"description": "A link to the resource that owns this Scheduling Link (currently, this is always an Event Type)"
},
"owner_type": {
"type": [
"string",
"null"
],
"title": "Owner Type",
"default": null,
"description": "Resource type (currently, this is always EventType)"
},
"booking_url": {
"type": "string",
"title": "Booking Url",
"description": "Scheduling link url"
}
},
"description": "CreateSchedulingLink201ResponseResource"
}
},
"description": "CreateSchedulingLink201Response"
},
"annotations": {
"title": "create_single_use_scheduling_link",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
Shorten the title to an action and subject; move usage details into the description.
Description98/100
Use: Create a single-use share link for a one-on-one event type with per-link overrides
When: User wants a single-use link with any customization (duration, scheduling window, location, or availability).
Needs: Event type URI from `event_types-list_event_types`.
Do: Set only fields to override; omitted fields inherit from event type.
Avoid: Group event types (one-on-one only).
Then: Share the returned `booking_url`. To prefill the invitee's name on the booking page, append a `name` query parameter with the URL-encoded value, e.g. `{booking_url}?name=Pat+Tester`.
The description explains the capability, when to use it, and what to expect.
Inputs53/100
14 of 20 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
create_share_request › event_type
Not provided
Missing description. Explain what this value means and how to supply it.
create_share_request › name
Not provided
Missing description. Explain what this value means and how to supply it.
create_share_request › duration
Must be one of the provided duration options. If duration options aren't provided then duration must be one of the duration options inherited from the event type.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
create_share_request › duration_options
A maximum of 4 unique options is allowed. Each option must be >= 1 and <= 720.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
create_share_request › period_type
Not provided
Missing description. Explain what this value means and how to supply it.
create_share_request › start_date
is required when `period_type` is 'fixed' Format: `YYYY-MM-DD`
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
create_share_request › end_date
is required when `period_type` is 'fixed' Format: `YYYY-MM-DD`
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
create_share_request › max_booking_time
is required when `period_type` is 'moving' or 'available_moving'
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
create_share_request › hide_location
determines if a location is hidden until invitee books a spot, only respected when there is a single custom location configured
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
Use: Resolve the connected host account and canonical user URI.
When: Start any scheduling, booking, event-type, or availability workflow.
Needs: No inputs.
Do: Call once and keep `resource.uri`, `timezone`, and `scheduling_url` for downstream calls.
Avoid: Skipping this and guessing host identity.
Then: Use `resource.uri` in list/get tools unless the user explicitly names another host.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
This tool declares no inputs, so argument descriptions are not needed.
{
"type": "object",
"title": "GetUser200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "User",
"required": [
"uri",
"name",
"slug",
"email",
"scheduling_url",
"timezone",
"avatar_url",
"created_at",
"updated_at",
"current_organization",
"resource_type",
"locale"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the user"
},
"name": {
"type": "string",
"title": "Name",
"description": "The user's name (human-readable format)"
},
"slug": {
"type": "string",
"title": "Slug",
"description": "The portion of URL for the user's scheduling page (where invitees book sessions), rendered in a human-readable format"
},
"email": {
"type": "string",
"title": "Email",
"description": "The user's email address"
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The user's language preference"
},
"timezone": {
"type": "string",
"title": "Timezone",
"description": "The time zone to use when presenting time to the user"
},
"avatar_url": {
"type": [
"string",
"null"
],
"title": "Avatar Url",
"description": "The URL of the user's avatar (image)"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the user's record was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the user's record was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"resource_type": {
"type": "string",
"title": "Resource Type",
"description": "Resource type to support polymorphic associations."
},
"time_notation": {
"type": [
"string",
"null"
],
"title": "Time Notation",
"default": "12h",
"description": "Time notation used by the user. Accepts \"12h\" or \"24h\" as a value."
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user's Calendly landing page (that lists all the user's event types)"
},
"current_organization": {
"type": "string",
"title": "Current Organization",
"description": "A unique reference to the user's current organization"
}
},
"description": "Information about the user."
}
},
"description": "Service response"
}
Original tool metadata
{
"name": "users-get_current_user",
"title": "lookup_current_user",
"description": "Use: Resolve the connected host account and canonical user URI.\nWhen: Start any scheduling, booking, event-type, or availability workflow.\nNeeds: No inputs.\nDo: Call once and keep `resource.uri`, `timezone`, and `scheduling_url` for downstream calls.\nAvoid: Skipping this and guessing host identity.\nThen: Use `resource.uri` in list/get tools unless the user explicitly names another host.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "GetUser200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "User",
"required": [
"uri",
"name",
"slug",
"email",
"scheduling_url",
"timezone",
"avatar_url",
"created_at",
"updated_at",
"current_organization",
"resource_type",
"locale"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the user"
},
"name": {
"type": "string",
"title": "Name",
"description": "The user's name (human-readable format)"
},
"slug": {
"type": "string",
"title": "Slug",
"description": "The portion of URL for the user's scheduling page (where invitees book sessions), rendered in a human-readable format"
},
"email": {
"type": "string",
"title": "Email",
"description": "The user's email address"
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The user's language preference"
},
"timezone": {
"type": "string",
"title": "Timezone",
"description": "The time zone to use when presenting time to the user"
},
"avatar_url": {
"type": [
"string",
"null"
],
"title": "Avatar Url",
"description": "The URL of the user's avatar (image)"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the user's record was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the user's record was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"resource_type": {
"type": "string",
"title": "Resource Type",
"description": "Resource type to support polymorphic associations."
},
"time_notation": {
"type": [
"string",
"null"
],
"title": "Time Notation",
"default": "12h",
"description": "Time notation used by the user. Accepts \"12h\" or \"24h\" as a value."
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user's Calendly landing page (that lists all the user's event types)"
},
"current_organization": {
"type": "string",
"title": "Current Organization",
"description": "A unique reference to the user's current organization"
}
},
"description": "Information about the user."
}
},
"description": "Service response"
},
"annotations": {
"title": "lookup_current_user",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Use: Fetch profile for a specific user by URI.
When: User asks about another person's account or you hold a user URI from org/membership data.
Needs: User URI.
Do: Pass the user URI from org/membership data; do not use this to look up the connected user.
Avoid: Calling this without a known URI - use `users-get_current_user` for the connected user.
Then: Use returned `resource.uri` and `resource.timezone` for event-type or availability lookups scoped to that user.
The description explains the capability, when to use it, and what to expect.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
uri
User URI. not a browsable link — never show to users.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
{
"type": "object",
"title": "GetUser200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "User",
"required": [
"uri",
"name",
"slug",
"email",
"scheduling_url",
"timezone",
"avatar_url",
"created_at",
"updated_at",
"current_organization",
"resource_type",
"locale"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the user"
},
"name": {
"type": "string",
"title": "Name",
"description": "The user's name (human-readable format)"
},
"slug": {
"type": "string",
"title": "Slug",
"description": "The portion of URL for the user's scheduling page (where invitees book sessions), rendered in a human-readable format"
},
"email": {
"type": "string",
"title": "Email",
"description": "The user's email address"
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The user's language preference"
},
"timezone": {
"type": "string",
"title": "Timezone",
"description": "The time zone to use when presenting time to the user"
},
"avatar_url": {
"type": [
"string",
"null"
],
"title": "Avatar Url",
"description": "The URL of the user's avatar (image)"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the user's record was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the user's record was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"resource_type": {
"type": "string",
"title": "Resource Type",
"description": "Resource type to support polymorphic associations."
},
"time_notation": {
"type": [
"string",
"null"
],
"title": "Time Notation",
"default": "12h",
"description": "Time notation used by the user. Accepts \"12h\" or \"24h\" as a value."
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user's Calendly landing page (that lists all the user's event types)"
},
"current_organization": {
"type": "string",
"title": "Current Organization",
"description": "A unique reference to the user's current organization"
}
},
"description": "Information about the user."
}
},
"description": "Service response"
}
Original tool metadata
{
"name": "users-get_user",
"title": "lookup_another_user",
"description": "Use: Fetch profile for a specific user by URI.\nWhen: User asks about another person's account or you hold a user URI from org/membership data.\nNeeds: User URI.\nDo: Pass the user URI from org/membership data; do not use this to look up the connected user.\nAvoid: Calling this without a known URI - use `users-get_current_user` for the connected user.\nThen: Use returned `resource.uri` and `resource.timezone` for event-type or availability lookups scoped to that user.",
"inputSchema": {
"type": "object",
"required": [
"uri"
],
"properties": {
"uri": {
"type": "string",
"description": "User URI. not a browsable link — never show to users."
}
},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"title": "GetUser200Response",
"required": [
"resource"
],
"properties": {
"resource": {
"type": "object",
"title": "User",
"required": [
"uri",
"name",
"slug",
"email",
"scheduling_url",
"timezone",
"avatar_url",
"created_at",
"updated_at",
"current_organization",
"resource_type",
"locale"
],
"properties": {
"uri": {
"type": "string",
"title": "Uri",
"description": "Canonical reference (unique identifier) for the user"
},
"name": {
"type": "string",
"title": "Name",
"description": "The user's name (human-readable format)"
},
"slug": {
"type": "string",
"title": "Slug",
"description": "The portion of URL for the user's scheduling page (where invitees book sessions), rendered in a human-readable format"
},
"email": {
"type": "string",
"title": "Email",
"description": "The user's email address"
},
"locale": {
"type": "string",
"title": "Locale",
"description": "The user's language preference"
},
"timezone": {
"type": "string",
"title": "Timezone",
"description": "The time zone to use when presenting time to the user"
},
"avatar_url": {
"type": [
"string",
"null"
],
"title": "Avatar Url",
"description": "The URL of the user's avatar (image)"
},
"created_at": {
"type": "string",
"title": "Created At",
"format": "date-time",
"description": "The moment when the user's record was created (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"updated_at": {
"type": "string",
"title": "Updated At",
"format": "date-time",
"description": "The moment when the user's record was last updated (e.g. \"2020-01-02T03:04:05.678123Z\")"
},
"resource_type": {
"type": "string",
"title": "Resource Type",
"description": "Resource type to support polymorphic associations."
},
"time_notation": {
"type": [
"string",
"null"
],
"title": "Time Notation",
"default": "12h",
"description": "Time notation used by the user. Accepts \"12h\" or \"24h\" as a value."
},
"scheduling_url": {
"type": "string",
"title": "Scheduling Url",
"description": "The URL of the user's Calendly landing page (that lists all the user's event types)"
},
"current_organization": {
"type": "string",
"title": "Current Organization",
"description": "A unique reference to the user's current organization"
}
},
"description": "Information about the user."
}
},
"description": "Service response"
},
"annotations": {
"title": "lookup_another_user",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description88/100
List or search available Calendly skill guides. Each skill gives domain-specific context, recommended tool usage, and best practices for working with Calendly MCP tools. Call this when the user's goal has no obvious single tool (e.g. reschedule or move a meeting). Load a matching skill before using related workflow tools. Use `keywords` to search by name or description (any keyword may match), and `include_header=true` to include each skill's description and related skills.
Describe the returned information so the agent knows whether it will answer the request.
Inputs0/100
0 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
keywords
Not provided
Missing description. Explain what this value means and how to supply it.
include_header
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_calendly_skills",
"title": "list_calendly_skills",
"description": "List or search available Calendly skill guides. Each skill gives domain-specific context, recommended tool usage, and best practices for working with Calendly MCP tools. Call this when the user's goal has no obvious single tool (e.g. reschedule or move a meeting). Load a matching skill before using related workflow tools. Use `keywords` to search by name or description (any keyword may match), and `include_header=true` to include each skill's description and related skills.",
"inputSchema": {
"type": "object",
"properties": {
"keywords": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"default": null
},
"include_header": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
},
"annotations": {
"title": "list_calendly_skills",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
Load a Calendly skill guide that provides domain-specific context, recommended queries, and best practices for working with Calendly tools. Required after listing when a skill matches; do not guess multi-step flows from tool names alone. Use `list_calendly_skills` to discover available skills, or load directly by name. Set `header_only=true` to preview a skill's description and related skills without loading full content.
The description explains the capability, when to use it, and what to expect.
Inputs0/100
0 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
skill_name
Not provided
Missing description. Explain what this value means and how to supply it.
header_only
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "load_calendly_skill",
"title": "load_calendly_skill",
"description": "Load a Calendly skill guide that provides domain-specific context, recommended queries, and best practices for working with Calendly tools. Required after listing when a skill matches; do not guess multi-step flows from tool names alone. Use `list_calendly_skills` to discover available skills, or load directly by name. Set `header_only=true` to preview a skill's description and related skills without loading full content.",
"inputSchema": {
"type": "object",
"required": [
"skill_name"
],
"properties": {
"skill_name": {
"type": "string"
},
"header_only": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
},
"annotations": {
"title": "load_calendly_skill",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
Loading score analytics…
Put your MCP to the test
A few tasks worth trying with this server, chosen from its reviewed tools. These have not been run.
01lookup_current_userUse: Resolve the connected host account and canonical user URI.
02list_user_busy_timesUse: List a user's busy time blocks within a date range.
03list_event_typesUse: List all event types for the connected user or org.
04list_event_type_available_timesUse: List bookable time slots for an event type within a date range.
05list_scheduled_eventsUse: List scheduled meetings for user/org.
Want to run these tasks against your MCP server with us?
users-get_current_userusers-get_userevent_types-create_event_typeevent_types-update_event_typeevent_types-list_event_typesevent_types-get_event_typeevent_types-list_event_type_available_timesevent_types-list_event_type_availability_schedulesevent_types-update_event_type_availability_schedulelocations-list_user_meeting_locationsmeetings-list_eventsmeetings-get_event+24 more
Calendly setup, tools, quality score, publishing readiness, and alternatives.
How do I add Calendly to Claude, ChatGPT, or Cursor?
Add Calendly to Claude, ChatGPT, or Cursor by connecting its remote MCP URL in each client's MCP settings. In Claude, add a custom connector. In ChatGPT, add an MCP app. In Cursor, add an MCP server under Settings. The MCP URL is https://mcp.calendly.com/. This server requires OAuth, so complete the login prompt after you connect.
Is Calendly MCP ready for ChatGPT and Claude?
As of October 6, 2026, Calendly scores 96/100 on Manufact's MCP publishing checklist. The scan meets ChatGPT publishing checks and meets Claude publishing checks. Passing these checks does not guarantee marketplace approval.
How clear is Calendly's MCP tool documentation?
As of October 6, 2026, Calendly scores 83/100 in Manufact's review of tool titles, descriptions, input and output schemas, and behavior annotations. The review covers 36 of 36 discovered tools. The quality score measures documentation clarity; runtime behavior and marketplace readiness require separate checks.
What tools does the Calendly MCP server provide?
Calendly lists 36 MCP tools, including users-get_current_user, users-get_user, event_types-create_event_type, event_types-update_event_type, event_types-list_event_types, event_types-get_event_type, event_types-list_event_type_available_times, event_types-list_event_type_availability_schedules, event_types-update_event_type_availability_schedule, locations-list_user_meeting_locations, meetings-list_events, and meetings-get_event.
What are the best alternatives to Calendly?
As of October 20, 2026, alternatives to Calendly in productivity on the Manufact MCP leaderboard include Autodesk Product Help, BoardWise, FlagStat, Keenable Web Search, and PomoDial.
Does Calendly MCP require authentication?
Calendly requires authentication. Connect it in Claude, ChatGPT, or Cursor and complete the OAuth login prompt.
How can Calendly improve its MCP documentation?
list_calendly_skills is the lowest-scoring reviewed tool at 53/100. 0 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values. Open its review for feedback and a copyable fix prompt, then rerun the documentation review after updating your tool metadata.
Who develops Calendly?
Calendly is developed by Calendly. It is listed as partner on the Claude connector directory.
Not your MCP?
Review any public or OAuth MCP server for protocol compatibility, tool documentation, and ChatGPT and Claude publishing readiness. No account required.