Answer an invitation
respond_to_eventAccepts, declines or tentatively accepts an invitation someone else sent the user. The organiser is notified — that is the point: removing an invitation from the calendar without answering leaves them expecting the user.
The event_id comes from get_availability, for a calendar the user allowed managing (manageable: true in list_calendars).
Everything needed is in the get_availability or search_events result — pass event_id AND calendar_id straight back, and read is_recurring and is_organizer from the same entry instead of asking the user about them.
When is_recurring is true, set scope: "occurrence" answers only that date, "series" answers all of them. If the user named a date ("on Tuesday"), that IS "occurrence" — do not ask. Ask only when they named none, because declining one date and declining a standing commitment are different messages to the organiser.
Refusals name the way forward; pass them on rather than retrying.
Check status first: credits_exhausted means this call was NOT performed. Only warnings and credit information are returned in that case; no result data or write confirmation. Tell the user how to restore credits; do not retry automatically.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | For a recurring appointment: answer only this date ("occurrence") or every date ("series"). Required as soon as the appointment repeats. | |
| comment | No | Optional note for the organiser, sent with the answer. CalDAV servers (iCloud, GMX, …) cannot carry one — the answer still goes out, and `warnings` says so. | |
| event_id | Yes | The `event_id` from get_availability or search_events | |
| response | Yes | The answer to send to the organiser | |
| calendar_id | No | The `calendar_id` that came back beside the event. Always pass it — it is in the same result, and leaving it out costs a round trip whenever more than one calendar is available. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| needs | No | ||
| scope | No | ||
| title | No | ||
| status | Yes | ok: tool executed; use its result fields. credits_exhausted: not executed; no result fields. | |
| event_id | No | ||
| question | No | ||
| response | No | ||
| warnings | No | ||
| resets_at | No | ||
| credits_required | No | ||
| credits_available | No |