update_event
Update a calendar event by ID with a full replacement of its title, start/end times, notes, location, alarms, and recurrence; handle recurring occurrences by span.
Instructions
Update an event by id (full replace). start/end ISO — naive = local time.
recurrence an RRULE with FREQ, INTERVAL, COUNT, UNTIL, BYDAY (ordinals such as
2TU or -1FR for monthly and yearly), BYMONTHDAY, BYMONTH, BYYEARDAY, BYSETPOS;
BYWEEKNO, BYHOUR, BYMINUTE, BYSECOND and WKST are refused. all_day takes a
DATE (2026-07-01); a timestamp with a UTC offset
is rejected. A start that does not match its recurrence is accepted (RFC 5545
counts it as the first occurrence) and the result's summary says so.
alarms are minutes before the start, as in the Google Calendar API. For an all-day
event the offset counts from local midnight: -540 is 09:00 on the day, 900 is
09:00 the day before. On a DST-change day the alert shifts an hour, the same as
Calendar's own alerts. At most 5. Omit alarms to keep the event's alarms; []
removes them all.
span REQUIRED if the target is recurring: 'this-event' (only this occurrence) or
'future-events' (this + all later); ignored for single events.
Side effect (full-replace update); needs EventKit (Calendar) access. id from
events.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| end | Yes | ||
| span | No | ||
| notes | No | ||
| start | Yes | ||
| title | Yes | ||
| alarms | No | ||
| all_day | No | ||
| calendar | No | ||
| location | No | ||
| recurrence | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||