Partial-update an appointment
update_appointmentPartial-update an appointment. The Cozi PUT semantics replace ALL fields, so this tool first fetches the existing appointment from the (year, month) page and merges your changes — only fields you pass are altered.
Instructions
Partial-update an appointment. The Cozi PUT semantics replace ALL fields, so this tool first fetches the existing appointment from the (year, month) page and merges your changes — only fields you pass are altered. To switch a timed appointment to all-day pass all_day=true; to switch to timed pass new start/end. Passing end re-spans the event against its (possibly newly set) start day, so an end on a later date makes it multi-day and one on the start day collapses it back; passing start alone moves the event and keeps its length, and all_day=true preserves the span. A bare date (e.g. '2026-06-15') is accepted for start/end when the event is, or is being made, all-day; on a timed event it is an error. A recurring series (recurring: true in get_calendar) needs scope: 'this' changes only the occurrence on occurrence_day (Cozi stores it as its own appointment, returned here), 'this_and_following' changes it and every later one (returned as the new series), 'series' changes every occurrence and keeps the rule unless repeat replaces it. repeat also turns a one-off into a series. Holidays, subscribed calendars and birthdays cannot be changed.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| year | Yes | ||
| month | Yes | ||
| notes | No | ||
| scope | No | Required for a recurring series: 'this' = only the occurrence on occurrence_day, 'this_and_following' = that occurrence and every later one, 'series' = every occurrence. | |
| start | No | ||
| notify | No | Send Cozi's change notification to the attendees who have notifications on, like the Cozi app's 'notify' option. Off by default; only when the user asks for it. | |
| repeat | No | Make it repeat. `interval` 2 = every other day/week/month/year. Weekly: `weekdays` (e.g. ['MO','WE']; default the start's weekday, which must be included). Monthly/yearly: `monthly_by` 'day_of_month' (default, e.g. the 15th) or 'weekday' (e.g. the 2nd Tuesday; a 5th weekday means the last). `until` is the last possible day (YYYY-MM-DD); omit it to repeat forever. | |
| all_day | No | ||
| subject | No | ||
| location | No | ||
| attendees | No | ||
| reminders | No | Reminder lead times in minutes before the start, e.g. [30, 1440]. [] clears them on an update. | |
| appointment_id | Yes | ||
| occurrence_day | No | With scope 'this' or 'this_and_following': the occurrence's `day` as get_calendar lists it. |