Skip to main content
Glama
Softeria

Microsoft 365 MCP Server

by Softeria

update-specific-calendar-event

update-specific-calendar-event
Destructive

Modify a specific Microsoft 365 calendar event to change its subject, time, location, or attendees. Provide the calendar ID and event ID to apply updates to the correct event.

Instructions

Update a specific calendar event.

šŸ’” 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.
calendarIdYesValue for the 'calendarId' path segment. Pass it under the name 'calendarId', not as 'id'. Use the 'id' field of the calendar 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

A3.5/5.0
Behavior4/5

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

Annotations already mark it as destructive, so the key behavioral disclosure is the attendee warning about replacement of the entire list. This is valuable, non-obvious context about how a mutation behaves and goes beyond the schema and declarations.

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

Conciseness4/5

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

The description is brief and the key warnings are front-highlighted, but the lead sentence simply repeats the tool name. The warnings are useful and compact, so overall the structure is acceptable with minimal waste.

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

Completeness3/5

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

The schema and annotations cover the required parameters and mutating/destructive nature. Still, the description omits broader context such as how partial body updates interact with existing fields, confirmation requirements, or how this tool differs from update-calendar-event. It's adequate but not complete.

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?

Schema coverage is high (83%), so the baseline is 3. The description adds useful semantics for the attendees list: don't guess emails, use list-users, and supply all existing attendees. This helps the agent construct a correct body even though the schema already documents the attendee shape.

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

Purpose4/5

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

The description clearly states the action: update a specific calendar event. However, it barely goes beyond the tool name and does not differentiate itself from the similarly named sibling update-calendar-event, so the 'specific' distinction is left for the agent to infer.

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

Usage Guidelines2/5

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

No guidance is given about when to choose this tool over the very similar update-calendar-event, nor when not to use it. The list-users tip is a useful prerequisite but does not explain the tool's selection criteria or exclude alternatives.

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