All tools

update_calendar_event

Calendar · macOS

Effect: write (strongest supported action). Status: gated.

Gated means the tool requires an installed app, a connected account, permission, or runtime availability. Check those requirements on the listed platform before using it.

macOS

Purpose

Updates an existing event in the Mac's Calendar app (Calendar.app) by ID. Pass only the fields you want to change — unspecified fields are left as-is. Get the event_id from list_calendar_events. For Microsoft 365 use the m365 calendar tools instead.

Required inputs

Permissions and confirmation

Explicit confirmation parameter: inspect the schema and tool description before any real call. The documentation example keeps confirm false. Obtain user authorization before performing the action.

Full input schema — macOS
{
  "properties": {
    "confirm": {
      "description": "Must be true to apply changes",
      "type": "boolean"
    },
    "end_date": {
      "description": "New end datetime ISO 8601 (optional). Same timezone rules as start_date.",
      "type": "string"
    },
    "event_id": {
      "description": "Event identifier from list_calendar_events",
      "type": "string"
    },
    "location": {
      "description": "New location — pass empty string to clear (optional)",
      "type": "string"
    },
    "notes": {
      "description": "New notes — pass empty string to clear (optional)",
      "type": "string"
    },
    "span": {
      "description": "For recurring events: 'this' (default) or 'future'",
      "type": "string"
    },
    "start_date": {
      "description": "New start datetime ISO 8601 (optional). No timezone = Mac's local time; append Z/offset to pin the zone.",
      "type": "string"
    },
    "title": {
      "description": "New title (optional)",
      "type": "string"
    }
  },
  "required": [
    "event_id"
  ],
  "type": "object"
}

Documentation example

Do not execute this example. These concrete inputs refer to a fictional demonstration dataset. Resolve real handles and obtain user authorization before any real call.

{
  "confirm": false,
  "event_id": "demo-event-001",
  "title": "Launch planning meeting"
}