Skip to main content
Glama

calendar.calendars.insert

Creates a secondary calendar owned by the authenticated user and returns the new calendar resource as JSON for scheduling or resource management.

Instructions

Creates a secondary calendar. The authenticated user for the request is made the data owner of the new calendar. Note: We recommend to authenticate as the intended data owner of the calendar. You can use domain-wide delegation of authority to allow applications to act on behalf of a specific user. Don't use a service account for authentication. If you use a service account for authentication, the service account is the data owner, which can lead to unexpected behavior. For example, if a service account is the data owner, data ownership cannot be transferred [HTTP POST] — creates or triggers a change; refused under --readonly safety profiles. Returns the API's response resource as JSON — request body is a JSON Calendar object accepting autoAcceptInvitations, conferenceProperties, dataOwner, description, etag, id, kind, labelProperties and 3 more fields; pass it via params or whole via body_file Siblings over the same resource: clear, delete, get, patch, transferOwnership, update.

Input Schema

NameRequiredDescriptionDefault
queryNoExtra KEY=VALUE query pairs for endpoints whose parameters Discovery does not describe.
paramsNoParameter map merged into the request; typed parameters win.
dry_runNoReturn the request that would be sent, without sending it.
body_fileNoRead the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Calendar object.
request_bodyNoRequest body of type Calendar: pass it via `params` (merged into the built body) or whole via `body_file`.

Output Schema

NameRequiredDescriptionDefault
idNo
etagNo
kindNo
summaryNo
locationNo
timeZoneNo
dataOwnerNo
descriptionNo
labelPropertiesNo
conferencePropertiesNo
autoAcceptInvitationsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / body_file / description
      Previous value: -"Read the request body from this file ('-' for stdin) instead of building one from the parameters."New value: +"Read the request body from this file ('-' for stdin) instead of building one from the parameters. The body is a JSON Calendar object."
    • addedInput schema / properties / request_body
      Added value: +{
      +  "description": "Request body of type Calendar: pass it via `params` (merged into the built body) or whole via `body_file`.",
      +  "properties": {
      +    "autoAcceptInvitations": {
      +      "type": "boolean"
      +    },
      +    "conferenceProperties": {
      +      "properties": {
      +        "allowedConferenceSolutionTypes": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "dataOwner": {
      +      "type": "string"
      +    },
      +    "description": {
      +      "type": "string"
      +    },
      +    "etag": {
      +      "type": "string"
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "kind": {
      +      "type": "string"
      +    },
      +    "labelProperties": {
      +      "properties": {
      +        "eventLabels": {
      +          "items": {
      +            "properties": {
      +              "backgroundColor": {
      +                "type": "string"
      +              },
      +              "id": {
      +                "type": "string"
      +              },
      +              "name": {
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "location": {
      +      "type": "string"
      +    },
      +    "summary": {
      +      "type": "string"
      +    },
      +    "timeZone": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "autoAcceptInvitations": {
      +      "type": "boolean"
      +    },
      +    "conferenceProperties": {
      +      "properties": {
      +        "allowedConferenceSolutionTypes": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "dataOwner": {
      +      "type": "string"
      +    },
      +    "description": {
      +      "type": "string"
      +    },
      +    "etag": {
      +      "type": "string"
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "kind": {
      +      "type": "string"
      +    },
      +    "labelProperties": {
      +      "properties": {
      +        "eventLabels": {
      +          "items": {
      +            "properties": {
      +              "backgroundColor": {
      +                "type": "string"
      +              },
      +              "id": {
      +                "type": "string"
      +              },
      +              "name": {
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "location": {
      +      "type": "string"
      +    },
      +    "summary": {
      +      "type": "string"
      +    },
      +    "timeZone": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden and does so well: it discloses that this is a POST/create operation, that it is refused under readonly safety profiles, and that service-account authentication can make ownership untransferable. It also explains the data-owner implication, which is exactly the kind of mutation-side effect an agent needs before invoking the tool.

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

Conciseness4/5

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

The definition is front-loaded with the core purpose and then layers in important auth warnings and body details. It is somewhat long and includes low-value phrasing such as "and 3 more fields," but most content is relevant to correct invocation.

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

Completeness5/5

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

Given that an output schema exists and parameter descriptions are already complete, the description supplies the remaining critical context: ownership semantics, authentication warnings, readonly behavior, and request-body handling. An agent has enough information to invoke this mutation correctly and avoid the main authentication pitfall.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameter schema already documents the request fields and body_file/params behavior. The description lists many Calendar body fields and notes they can be passed via `params` or whole via `body_file`, but this largely restates what the schema already conveys rather than adding deep parameter semantics.

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

Purpose5/5

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

The description opens with a specific verb and resource: "Creates a secondary calendar." It also names the sibling operations on the same resource (clear, delete, get, patch, transferOwnership, update), so an agent can distinguish this tool from adjacent calendar operations.

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

Usage Guidelines4/5

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

It gives clear authentication guidance: authenticate as the intended data owner and avoid service-account authentication because of ownership side effects. It does not explicitly compare tool-choice alternatives beyond listing sibling names, but the auth prerequisites and the service-account exclusion provide strong usage context.

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

Deploy Server

Other Tools