Accept or decline an invitation
calendar_respond_to_eventAnswers a meeting invitation: accept, tentative or decline. Use it once the user has decided; to reschedule a meeting this account organises, use calendar_update_event. With tentative or decline you can propose another time by passing both proposed_start and proposed_end, on Microsoft accounts only (elsewhere it answers PROVIDER_UNSUPPORTED: suggest the time in comment instead). If the event's allows_new_time_proposals is false (the organiser turned proposals off), a proposal answers INVALID_INPUT: answer without it and suggest the time in comment. A comment or a proposed time is sent to the organiser, so either one makes the answer a send. It can return pending_approval: tell the user a person must approve it in Prubex, and do not retry. An answer with neither is never held. On Microsoft, declining also removes the event from the user's calendar. Example: { "event_id": "evt_…", "response": "accept" }.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"event_id": "<event_id>",
"response": "<response>"
},
"name": "calendar_respond_to_event"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | A note to the organiser (counts as a send). | |
| event_id | Yes | An event id (`evt_…`) from calendar_list_events, or an occurrence’s `series_id` to act on the whole series. | |
| response | Yes | The answer. | |
| time_zone | No | IANA time zone for dates in and out, e.g. "Africa/Johannesburg". Defaults to the workspace time zone, which prubex_overview returns as `time_zone`. | |
| proposed_end | No | The end of the proposed time, after proposed_start, in the same format. Pass both or neither. | |
| proposed_start | No | With tentative or decline, on Microsoft accounts: the start of the time you propose instead, an ISO 8601 date-time (with an offset, or local to `time_zone`). Pass proposed_end too. Counts as a send. | |
| idempotency_key | No | Any unique string. Retrying with the same key within 24 h never repeats the action. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| event | No | ||
| status | Yes | ||
| message | Yes | What happened, in words for the user. | |
| warnings | No | Accounts that failed or timed out; results from the others are still here. | |
| account_id | Yes | ||
| expires_at | No | When held: when the request expires. | |
| review_url | No | When held: where a person approves it in Prubex. | |
| approval_id | No | When held: pass it to approvals_get later. |