---
availability: INSTALLABLE
installation_asset_uuid: 9daa51ea-27f6-4dee-bc8a-fa980cdc089f
description: Cancel a one-time or recurring meeting and notify attendees automatically.
name: Cancel a Meeting
purple_chat_link: https://marketplace.moveworks.com/purple-chat?conversation=%7B%22messages%22%3A%5B%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22Cancel+my+meeting+with+Sarah+Miller+about+the+Q4+Roadmap+tomorrow.%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22%3Cp%3ESearching+for+calendar+events+with+%3Cb%3ESarah+Miller%3C%2Fb%3E+on+%3Cb%3EGoogle+Calendar%3C%2Fb%3E...%3C%2Fp%3E%22%2C%22connectorName%22%3A%22google-calendar%22%7D%5D%7D%2C%7B%22richText%22%3A%22%3Cp%3EI+found+the+following+meeting+tomorrow%3A%3C%2Fp%3E%3Cul%3E%3Cli%3E%3Cstrong%3EEvent%3C%2Fstrong%3E%3A+Q4+Roadmap%3C%2Fli%3E%3Cli%3E%3Cstrong%3ETime%3C%2Fstrong%3E%3A+10%3A00+AM+-+10%3A30+AM%3C%2Fli%3E%3Cli%3E%3Cstrong%3EOrganizer%3C%2Fstrong%3E%3A+You%3C%2Fli%3E%3Cli%3E%3Cstrong%3EAttendees%3C%2Fstrong%3E%3A+Sarah+Miller%3C%2Fli%3E%3C%2Ful%3E%3Cp%3EAre+you+sure+you+want+to+cancel+this+event%3F%3C%2Fp%3E%22%7D%2C%7B%22buttons%22%3A%5B%7B%22buttonText%22%3A%22Yes%2C+cancel+it%22%2C%22style%22%3A%22filled%22%7D%2C%7B%22buttonText%22%3A%22Edit+Details%22%2C%22style%22%3A%22outlined%22%7D%2C%7B%22buttonText%22%3A%22Cancel%22%2C%22style%22%3A%22outlined%22%7D%5D%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22Yes%2C+cancel+it%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22%3Cp%3ECancelling+the+meeting+in+%3Cb%3EGoogle+Calendar%3C%2Fb%3E+and+notifying+attendees...%3C%2Fp%3E%22%2C%22connectorName%22%3A%22google-calendar%22%7D%5D%7D%2C%7B%22richText%22%3A%22%3Cp%3EI%27ve+cancelled+the+%3Cstrong%3EQ4+Roadmap%3C%2Fstrong%3E+meeting+and+removed+it+from+your+calendar.+Sarah+Miller+has+been+notified.%3C%2Fp%3E%22%7D%2C%7B%22citations%22%3A%5B%7B%22connectorName%22%3A%22google-calendar%22%2C%22citationTitle%22%3A%22Q4+Roadmap+Meeting+%28Cancelled%29%22%7D%5D%7D%5D%7D%5D%7D
solution_tags:
- Finance - Other
- HR - Other
- IT
- Productivity
- Sales
systems:
- google-calendar
---

# Description

Cancel a meeting directly from your AI Assistant — remove it from your calendar or cancel it for all attendees, with support for one-time and recurring events.

# User Experience Preview

Please refer to the following [**Purple Chat**](https://marketplace.moveworks.com/purple-chat?conversation=%7B%22messages%22%3A%5B%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22Cancel+my+meeting+with+Sarah+Miller+about+the+Q4+Roadmap+tomorrow.%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22%3Cp%3ESearching+for+calendar+events+with+%3Cb%3ESarah+Miller%3C%2Fb%3E+on+%3Cb%3EGoogle+Calendar%3C%2Fb%3E...%3C%2Fp%3E%22%2C%22connectorName%22%3A%22google-calendar%22%7D%5D%7D%2C%7B%22richText%22%3A%22%3Cp%3EI+found+the+following+meeting+tomorrow%3A%3C%2Fp%3E%3Cul%3E%3Cli%3E%3Cstrong%3EEvent%3C%2Fstrong%3E%3A+Q4+Roadmap%3C%2Fli%3E%3Cli%3E%3Cstrong%3ETime%3C%2Fstrong%3E%3A+10%3A00+AM+-+10%3A30+AM%3C%2Fli%3E%3Cli%3E%3Cstrong%3EOrganizer%3C%2Fstrong%3E%3A+You%3C%2Fli%3E%3Cli%3E%3Cstrong%3EAttendees%3C%2Fstrong%3E%3A+Sarah+Miller%3C%2Fli%3E%3C%2Ful%3E%3Cp%3EAre+you+sure+you+want+to+cancel+this+event%3F%3C%2Fp%3E%22%7D%2C%7B%22buttons%22%3A%5B%7B%22buttonText%22%3A%22Yes%2C+cancel+it%22%2C%22style%22%3A%22filled%22%7D%2C%7B%22buttonText%22%3A%22Edit+Details%22%2C%22style%22%3A%22outlined%22%7D%2C%7B%22buttonText%22%3A%22Cancel%22%2C%22style%22%3A%22outlined%22%7D%5D%7D%5D%7D%2C%7B%22role%22%3A%22user%22%2C%22parts%22%3A%5B%7B%22richText%22%3A%22Yes%2C+cancel+it%22%7D%5D%7D%2C%7B%22role%22%3A%22assistant%22%2C%22parts%22%3A%5B%7B%22reasoningSteps%22%3A%5B%7B%22status%22%3A%22success%22%2C%22richText%22%3A%22%3Cp%3ECancelling+the+meeting+in+%3Cb%3EGoogle+Calendar%3C%2Fb%3E+and+notifying+attendees...%3C%2Fp%3E%22%2C%22connectorName%22%3A%22google-calendar%22%7D%5D%7D%2C%7B%22richText%22%3A%22%3Cp%3EI%27ve+cancelled+the+%3Cstrong%3EQ4+Roadmap%3C%2Fstrong%3E+meeting+and+removed+it+from+your+calendar.+Sarah+Miller+has+been+notified.%3C%2Fp%3E%22%7D%2C%7B%22citations%22%3A%5B%7B%22connectorName%22%3A%22google-calendar%22%2C%22citationTitle%22%3A%22Q4+Roadmap+Meeting+%28Cancelled%29%22%7D%5D%7D%5D%7D%5D%7D) for a sample conversational experience between a user and the AI Assistant for this plugin.

# Prerequisites

Before installing and using the **Cancel a Meeting** plugin, ensure the following requirements are met.

### 1. Google Calendar Connector

This plugin requires an active **Google Calendar connector** configured with the OAuth 2.0 Authorization Code (User Consent Auth) flow.

- If you have not already set up the connector, follow the [**Google Calendar Connector Guide**](https://marketplace.moveworks.com/connectors/google-calendar) before proceeding.
- The connector must be fully configured and tested before installing this plugin.

### 2. Plugin Installation

Once the connector is ready, follow the [**plugin installation documentation**](https://help.moveworks.com/docs/ai-agent-marketplace-installation) for steps on how to install and activate the plugin in Agent Studio.

### 3. Google Workspace System Requirements

### a. End User Permissions

To cancel a meeting through this plugin, end users must have:

- A licensed Google Workspace account with Google Calendar enabled
- Organizer access to the event they want to cancel

**Note:** If the authenticated user is not the organizer of the event, the AI Assistant will warn them that the cancellation will only remove the event from their own calendar and will not affect other attendees. It will also suggest declining the event instead.

### b. API Permissions

The Google Calendar connector uses **delegated permissions** to cancel calendar events on behalf of the authenticated user. The following permission is required for this plugin:

| Permission | Purpose |
| --- | --- |
| `https://www.googleapis.com/auth/calendar` | Delete and update calendar events on the user's primary calendar |

# Implementation Details

This plugin works by first identifying the event, then branching based on whether the event is a one-time event or part of a recurring series, and applying the appropriate cancellation. The diagram below gives a high-level picture of that flow, followed by a breakdown of each step.

### Visual Representation of How the Plugin Works

![image.png](Cancel%20a%20Meeting/image.png)

### API Details

This plugin uses up to five API calls depending on whether the event is recurring.

### API #1: Get Calendar Events for Time Range

Based on the user's description in conversation, the AI Assistant searches the user's calendar within a relevant time range to identify the event they want to cancel.

```bash
curl --request GET \
  --url 'https://www.googleapis.com/calendar/v3/calendars/primary/events?timeMin={{start_date_range}}&timeMax={{end_date_range}}&singleEvents=true&orderBy=startTime&maxResults=350' \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'Content-Type: application/json'
```

### API #2: Get Current Event by ID

Retrieves the latest state of the event to be cancelled, including whether it belongs to a recurring series. This determines which cancellation path is taken.

```bash
curl --request GET \
  --url 'https://www.googleapis.com/calendar/v3/calendars/primary/events/{{event_id}}' \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'Content-Type: application/json'
```

### API #3: Cancel Event

Deletes the event from Google Calendar. For a one-time event or a single instance of a recurring event, only that specific occurrence is deleted. For a recurring event where the user wants to cancel all instances, the entire series is deleted. All attendees are notified of the cancellation automatically.

```bash
curl --request DELETE \
  --url 'https://www.googleapis.com/calendar/v3/calendars/primary/events/{{event_id}}' \
  --header 'Authorization: Bearer {{access_token}}'
```

**Key nuances:**

- For a single event, the specific instance ID is used.
- For recurring events, the `recurringEventId` (master series ID) is used, which deletes the entire series.
- Google Calendar sends cancellation notifications to all attendees automatically.

### API #4: Get Series Master Event

If the user chooses to cancel this and all following instances of a recurring series (not all instances), the master series event is fetched to retrieve its recurrence rules. 

```bash
curl --request GET \
  --url 'https://www.googleapis.com/calendar/v3/calendars/primary/events/{{recurring_event_id}}' \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'Content-Type: application/json'
```

### API #5: Truncate Recurring Series

Rather than deleting events, this patches the master series with the new `UNTIL` date to end the recurrence just before the selected instance. This cancels all future occurrences from that point forward without affecting past instances.

```bash
curl --request PATCH \
  --url 'https://www.googleapis.com/calendar/v3/calendars/primary/events/{{series_master_event_id}}?sendUpdates=all' \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'If-Match: {{etag}}' \
  --header 'Content-Type: application/json' \
  --data '{
    "recurrence": ["{{updated_recurrence_rules}}"]
  }'
```

**Key nuances:**

- This approach ends the series rather than deleting individual instances, which is consistent with how Google Calendar handles "cancel from here" for recurring events.
- The `If-Match` header uses the `etag` from API #4 to prevent race condition issues.
- `sendUpdates=all` ensures all attendees are notified of the cancellation.

Now that you understand how the plugin works under the hood, let's walk through what it can and can't do. We recommend reading both sections before going live to ensure the best experience for your users.

# What Is In Scope for This Plugin?

This plugin supports the following capabilities:

- Cancel a one-time event from the authenticated user's primary Google Calendar
- Cancel a recurring event with three deletion policies:
    - **This event only** — cancels just the selected instance
    - **This and all following events** — ends the recurring series from the selected instance forward
    - **All events** — cancels the entire recurring series
- Notify all attendees of the cancellation automatically

# What Is Out of Scope for This Plugin?

This plugin does **not** support the following:

- Cancelling events the authenticated user does not own — the event will only be removed from their own calendar, not from other attendees' calendars. The AI Assistant will warn the user and suggest declining the event instead
- Cancelling events on calendars other than the authenticated user's primary calendar
- Undoing a cancellation once confirmed — deleted events cannot be recovered through this plugin