Skip to main content
Glama
Softeria

Microsoft 365 MCP Server

by Softeria

update-calendar-event

update-calendar-event
Destructive

Change an existing calendar event's details such as subject, time, location, or attendees. Provide the event ID and updated properties; note that the attendee list is replaced entirely.

Instructions

Update the properties of the event object.

šŸ’” TIP: CRITICAL: Do not try to guess the email address of the recipients. Use the list-users tool to find the email address of the recipients. WARNING: Setting attendees replaces the entire attendee list — include all attendees, not just new ones.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYes
confirmNoFor destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: "confirmation_required" } without touching user data.
eventIdYesValue for the 'eventId' path segment. Pass it under the name 'eventId', not as 'id'. Use the 'id' field of the event object as returned by Microsoft Graph.
includeHeadersNoInclude response headers (including ETag) in the response metadata
excludeResponseNoExclude the full response body and only return success or failure indication

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed21 schema fields changedv0.145.2
    • removedInput schema / $defs
      Removed value: -{
      -  "def0": {
      -    "enum": [
      -      "sunday",
      -      "monday",
      -      "tuesday",
      -      "wednesday",
      -      "thursday",
      -      "friday",
      -      "saturday"
      -    ],
      -    "type": "string"
      -  },
      -  "def1": {
      -    "additionalProperties": true,
      -    "properties": {
      -      "dateTime": {
      -        "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).",
      -        "type": "string"
      -      },
      -      "timeZone": {
      -        "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  }
      -}
    • removedInput schema / properties / body / properties / attendees / items / properties / proposedNewTime / properties / end / $ref
      Removed value: -"#/$defs/def1"
    • addedInput schema / properties / body / properties / attendees / items / properties / proposedNewTime / properties / end / additionalProperties
      Added value: +true
    • addedInput schema / properties / body / properties / attendees / items / properties / proposedNewTime / properties / end / properties
      Added value: +{
      +  "dateTime": {
      +    "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).",
      +    "type": "string"
      +  },
      +  "timeZone": {
      +    "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  }
      +}
    • addedInput schema / properties / body / properties / attendees / items / properties / proposedNewTime / properties / end / type
      Added value: +"object"
    • removedInput schema / properties / body / properties / attendees / items / properties / proposedNewTime / properties / start / $ref
      Removed value: -"#/$defs/def1"
    • addedInput schema / properties / body / properties / attendees / items / properties / proposedNewTime / properties / start / additionalProperties
      Added value: +true
    • addedInput schema / properties / body / properties / attendees / items / properties / proposedNewTime / properties / start / properties
      Added value: +{
      +  "dateTime": {
      +    "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).",
      +    "type": "string"
      +  },
      +  "timeZone": {
      +    "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  }
      +}
    • addedInput schema / properties / body / properties / attendees / items / properties / proposedNewTime / properties / start / type
      Added value: +"object"
    • removedInput schema / properties / body / properties / end / $ref
      Removed value: -"#/$defs/def1"
    • addedInput schema / properties / body / properties / end / additionalProperties
      Added value: +true
    • addedInput schema / properties / body / properties / end / properties
      Added value: +{
      +  "dateTime": {
      +    "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).",
      +    "type": "string"
      +  },
      +  "timeZone": {
      +    "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  }
      +}
    • addedInput schema / properties / body / properties / end / type
      Added value: +"object"
    • changedInput schema / properties / body / properties / recurrence / properties / pattern / properties / daysOfWeek / items / anyOf
      Previous value: -[
      -  {
      -    "$ref": "#/$defs/def0"
      -  },
      -  {
      -    "additionalProperties": true,
      -    "properties": {},
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "sunday",
      +      "monday",
      +      "tuesday",
      +      "wednesday",
      +      "thursday",
      +      "friday",
      +      "saturday"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "properties": {},
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / body / properties / recurrence / properties / pattern / properties / firstDayOfWeek / $ref
      Removed value: -"#/$defs/def0"
    • addedInput schema / properties / body / properties / recurrence / properties / pattern / properties / firstDayOfWeek / enum
      Added value: +[
      +  "sunday",
      +  "monday",
      +  "tuesday",
      +  "wednesday",
      +  "thursday",
      +  "friday",
      +  "saturday"
      +]
    • addedInput schema / properties / body / properties / recurrence / properties / pattern / properties / firstDayOfWeek / type
      Added value: +"string"
    • removedInput schema / properties / body / properties / start / $ref
      Removed value: -"#/$defs/def1"
    • addedInput schema / properties / body / properties / start / additionalProperties
      Added value: +true
    • addedInput schema / properties / body / properties / start / properties
      Added value: +{
      +  "dateTime": {
      +    "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).",
      +    "type": "string"
      +  },
      +  "timeZone": {
      +    "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.",
      +    "type": [
      +      "string",
      +      "null"
      +    ]
      +  }
      +}
    • addedInput schema / properties / body / properties / start / type
      Added value: +"object"
  2. Addedv0.134.4
  3. Removedv0.131.2
  4. Changed1 schema field changedv0.131.1
    • addedInput schema / properties / confirm
      Added value: +{
      +  "description": "For destructive operations when the confirm gate is enabled (MS365_MCP_REQUIRE_CONFIRM=true; off by default). Set to true only after the user has explicitly approved this action. When the gate is on, calls without confirm: true return { error: \"confirmation_required\" } without touching user data.",
      +  "type": "boolean"
      +}
  5. Addedv0.114.0
  6. Removedv0.112.2
  7. Addedv0.110.0
  8. Removedv0.108.0
  9. Changed30 schema fields changedv0.96.0
    • changedInput schema / properties / body / properties / attendees / items / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / body / properties / attendees / items / properties / emailAddress / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / body / properties / attendees / items / properties / proposedNewTime / additionalProperties
      Previous value: -falseNew value: +true
    • addedInput schema / properties / body / properties / attendees / items / properties / proposedNewTime / properties / end / $ref
      Added value: +"#/properties/body/properties/start"
    • removedInput schema / properties / body / properties / attendees / items / properties / proposedNewTime / properties / end / additionalProperties
      Removed value: -false
    • removedInput schema / properties / body / properties / attendees / items / properties / proposedNewTime / properties / end / properties
      Removed value: -{
      -  "dateTime": {
      -    "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).",
      -    "type": "string"
      -  },
      -  "timeZone": {
      -    "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  }
      -}
    • removedInput schema / properties / body / properties / attendees / items / properties / proposedNewTime / properties / end / type
      Removed value: -"object"
    • changedInput schema / properties / body / properties / attendees / items / properties / proposedNewTime / properties / start / $ref
      Previous value: -"#/properties/body/properties/attendees/items/properties/proposedNewTime/properties/end"New value: +"#/properties/body/properties/start"
    • changedInput schema / properties / body / properties / attendees / items / properties / status / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / body / properties / body / additionalProperties
      Previous value: -falseNew value: +true
    • removedInput schema / properties / body / properties / bodyPreview
      Removed value: -{
      -  "description": "The preview of the message associated with the event. It's in text format.",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedInput schema / properties / body / properties / cancelledOccurrences
      Removed value: -{
      -  "description": "Contains occurrenceId property values of canceled instances in a recurring series, if the event is the series master. Instances in a recurring series that are canceled are called canceled occurences.Returned only on $select in a Get operation which specifies the ID (seriesMasterId property value) of a series master event.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • changedInput schema / properties / body / properties / end / $ref
      Previous value: -"#/properties/body/properties/attendees/items/properties/proposedNewTime/properties/end"New value: +"#/properties/body/properties/start"
    • removedInput schema / properties / body / properties / hasAttachments
      Removed value: -{
      -  "description": "Set to true if the event has attachments.",
      -  "type": [
      -    "boolean",
      -    "null"
      -  ]
      -}
    • removedInput schema / properties / body / properties / hideAttendees
      Removed value: -{
      -  "description": "When set to true, each attendee only sees themselves in the meeting request and meeting Tracking list. The default is false.",
      -  "type": [
      -    "boolean",
      -    "null"
      -  ]
      -}
    • removedInput schema / properties / body / properties / iCalUId
      Removed value: -{
      -  "description": "A unique identifier for an event across calendars. This ID is different for each occurrence in a recurring series. Read-only.",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedInput schema / properties / body / properties / isCancelled
      Removed value: -{
      -  "description": "Set to true if the event has been canceled.",
      -  "type": [
      -    "boolean",
      -    "null"
      -  ]
      -}
    • removedInput schema / properties / body / properties / isDraft
      Removed value: -{
      -  "description": "Set to true if the user has updated the meeting in Outlook but hasn't sent the updates to attendees. Set to false if all changes are sent, or if the event is an appointment without any attendees.",
      -  "type": [
      -    "boolean",
      -    "null"
      -  ]
      -}
    • removedInput schema / properties / body / properties / isOrganizer
      Removed value: -{
      -  "description": "Set to true if the calendar owner (specified by the owner property of the calendar) is the organizer of the event (specified by the organizer property of the event). It also applies if a delegate organized the event on behalf of the owner.",
      -  "type": [
      -    "boolean",
      -    "null"
      -  ]
      -}
    • changedInput schema / properties / body / properties / location / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / body / properties / location / properties / address / additionalProperties
      Previous value: -falseNew value: +true
    • changedInput schema / properties / body / properties / location / properties / coordinates / additionalProperties
      Previous value: -falseNew value: +true
    • addedInput schema / properties / body / properties / multiValueExtendedProperties
      Added value: +{
      +  "description": "The collection of multi-value extended properties defined for the event. Read-only. Nullable.",
      +  "items": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "id": {
      +        "description": "The unique identifier for an entity. Read-only.",
      +        "type": "string"
      +      },
      +      "value": {
      +        "description": "A collection of property values.",
      +        "items": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / body / properties / recurrence
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "pattern": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "dayOfMonth": {
      +          "description": "The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.",
      +          "maximum": 2147483647,
      +          "minimum": -2147483648,
      +          "type": "number"
      +        },
      +        "daysOfWeek": {
      +          "description": "A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than one day, the event falls on the first day that satisfies the pattern.  Required if type is weekly, relativeMonthly, or relativeYearly.",
      +          "items": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "sunday",
      +                  "monday",
      +                  "tuesday",
      +                  "wednesday",
      +                  "thursday",
      +                  "friday",
      +                  "saturday"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "additionalProperties": true,
      +                "properties": {},
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "type": "array"
      +        },
      +        "firstDayOfWeek": {
      +          "$ref": "#/properties/body/properties/recurrence/properties/pattern/properties/daysOfWeek/items/anyOf/0"
      +        },
      +        "index": {
      +          "enum": [
      +            "first",
      +            "second",
      +            "third",
      +            "fourth",
      +            "last"
      +          ],
      +          "type": "string"
      +        },
      +        "interval": {
      +          "description": "The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required.",
      +          "maximum": 2147483647,
      +          "minimum": -2147483648,
      +          "type": "number"
      +        },
      +        "month": {
      +          "description": "The month in which the event occurs.  This is a number from 1 to 12.",
      +          "maximum": 2147483647,
      +          "minimum": -2147483648,
      +          "type": "number"
      +        },
      +        "type": {
      +          "enum": [
      +            "daily",
      +            "weekly",
      +            "absoluteMonthly",
      +            "relativeMonthly",
      +            "absoluteYearly",
      +            "relativeYearly"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "range": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "endDate": {
      +          "anyOf": [
      +            {
      +              "description": "The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate.",
      +              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$",
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate."
      +        },
      +        "numberOfOccurrences": {
      +          "description": "The number of times to repeat the event. Required and must be positive if type is numbered.",
      +          "maximum": 2147483647,
      +          "minimum": -2147483648,
      +          "type": "number"
      +        },
      +        "recurrenceTimeZone": {
      +          "description": "Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "startDate": {
      +          "anyOf": [
      +            {
      +              "description": "The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required.",
      +              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$",
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required."
      +        },
      +        "type": {
      +          "enum": [
      +            "endDate",
      +            "noEnd",
      +            "numbered"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / body / properties / reminderMinutesBeforeStart
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "The number of minutes before the event start time that the reminder alert occurs.",
      +      "maximum": 2147483647,
      +      "minimum": -2147483648,
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The number of minutes before the event start time that the reminder alert occurs."
      +}
    • addedInput schema / properties / body / properties / responseRequested
      Added value: +{
      +  "description": "Default is true, which represents the organizer would like an invitee to send a response to the event.",
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / body / properties / sensitivity
      Added value: +{
      +  "enum": [
      +    "normal",
      +    "personal",
      +    "private",
      +    "confidential"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / body / properties / showAs
      Added value: +{
      +  "enum": [
      +    "unknown",
      +    "free",
      +    "tentative",
      +    "busy",
      +    "oof",
      +    "workingElsewhere"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / body / properties / singleValueExtendedProperties
      Added value: +{
      +  "description": "The collection of single-value extended properties defined for the event. Read-only. Nullable.",
      +  "items": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "id": {
      +        "description": "The unique identifier for an entity. Read-only.",
      +        "type": "string"
      +      },
      +      "value": {
      +        "description": "A property value.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / body / properties / start
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "dateTime": {
      +      "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000).",
      +      "type": "string"
      +    },
      +    "timeZone": {
      +      "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  10. First observedv0.31.0

TDQS

A4.6/5.0
Behavior5/5

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

The description exceeds the annotation (destructiveHint: true) by explicitly warning that setting attendees replaces the entire list and that email addresses should be sourced from list-users. This transparently discloses side effects and data sourcing requirements, which are critical for safe and correct usage.

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

Conciseness5/5

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

The description is concise, consisting of a single primary statement and two focused tips. It is well-structured with clear emphasis on the critical warnings, avoiding unnecessary elaboration while conveying essential usage information.

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

Completeness4/5

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

Given the extensive nested schema, the description does not explain every field, but the schema itself provides detailed descriptions. The tips address the most complex and error-prone aspects (attendees and email addresses). It does not mention the return value or response format, but the absence of an output schema makes that less critical. Overall, it is reasonably complete for practical use.

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

Parameters4/5

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

The schema already provides descriptions for most parameters (80% coverage), but the description adds crucial semantic clarity for the attendees parameter (replacement behavior) and the emailAddress within attendees (use list-users). This supplements the schema, especially for the 'body' and 'eventId' parameters where the tips indirectly clarify expectations.

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

Purpose5/5

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

The description clearly states that the tool updates properties of an event object, using the verb 'update' and identifying the resource as a calendar event. This distinguishes it from sibling tools that create, delete, or retrieve events, and the added tips reinforce its purpose.

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

Usage Guidelines4/5

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

The description provides practical guidance on how to use the tool, specifically warning against guessing email addresses and instructing to use the list-users tool, and explaining the behavior when setting attendees. While it does not explicitly mention when to use this versus other update tools like 'update-specific-calendar-event', the tips give sufficient context for typical usage.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Softeria/ms-365-mcp-server'

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