The resource configuration used to define
[Google Workspace add-on](https://developers.google.com/workspace/add-ons/concepts/types#g_suite_add-ons)
content and behavior within Google Calendar. Google Workspace add-on
manifests must include all components marked as **Required** if they extend
Calendar.

## Calendar

The Google Workspace add-on manifest configuration for
Calendar extensions. See
[Extending Calendar with Google Workspace add-ons](https://developers.google.com/workspace/add-ons/calendar)
for more information.

| JSON representation |
|---|
| ``` { "createSettingsUrlFunction": string, "conferenceSolution": [ { object (ConferenceSolution) } ], "currentEventAccess": string, "eventOpenTrigger": { object (EventOpenTrigger) }, "eventUpdateTrigger": { object (EventUpdateTrigger) }, "eventAttachmentTrigger": { object (EventAttachmentTrigger) }, "homepageTrigger": { object (HomepageTrigger) } } ``` |

| Fields ||
|---|---|
| `createSettingsUrlFunction` | `string` **Only used if the add-on provides [conferencing solutions](https://developers.google.com/workspace/add-ons/calendar/conferencing/overview#conference_solutions).** Optional. The name of the Apps Script function that generates a URL leading to the add-on settings page. See [Adding conferencing add-on settings](https://developers.google.com/workspace/add-ons/calendar/conferencing/add-settings) for details. |
| `conferenceSolution[]` | `object (https://developers.google.com/apps-script/manifest/calendar-addons#conferencesolution) ` **Only used if the add-on provides [conferencing solutions](https://developers.google.com/workspace/add-ons/calendar/conferencing/overview#conference_solutions); at least one solution must be defined.** The conferencing solutions offered by the add-on. Each solution appears as an option in the Calendar \*\*Edit event\*\* UI. |
| `currentEventAccess` | `string` Determines the access level the add-on has to event data. If omitted, the host doesn't pass event metadata. Valid settings include: - `METADATA`: Access to basic event metadata. - `READ`: Access to read event data and metadata. - `WRITE`: Access to write event data. - `READ_WRITE`: Access to read and write event data and metadata. If set to `READ` or `READ_WRITE`, the add-on must include the `https://www.googleapis.com/auth/calendar.addons.current.event.read` [scope](https://developers.google.com/workspace/add-ons/concepts/workspace-scopes#scopes). If set to `WRITE` or `READ_WRITE`, the add-on must include the `https://www.googleapis.com/auth/calendar.addons.current.event.write` [scope](https://developers.google.com/workspace/add-ons/concepts/workspace-scopes#scopes). > [!NOTE] > To retrieve metadata for the current event, set this parameter to `METADATA`, `READ`, or `READ_WRITE`. |
| `eventOpenTrigger` | `object (https://developers.google.com/apps-script/manifest/calendar-addons#eventopentrigger)` Trigger specification for event open triggers in Calendar. |
| `eventUpdateTrigger` | `object (https://developers.google.com/apps-script/manifest/calendar-addons#eventupdatetrigger)` **Required to provide contextual event update interfaces in Calendar**. Trigger specification for event update triggers. |
| `eventAttachmentTrigger` | `object (https://developers.google.com/apps-script/manifest/calendar-addons#eventattachmenttrigger)` Trigger specification for event attachment triggers in Calendar. |
| `homepageTrigger` | `object (https://developers.google.com/apps-script/manifest/homepage-trigger)` The trigger function for the add-on [homepage](https://developers.google.com/workspace/add-ons/concepts/homepages) in Calendar. This overrides [`addOns.common.homepageTrigger`](https://developers.google.com/apps-script/manifest/addons#Common.FIELDS.homepageTrigger). |

### ConferenceSolution

This manifest object is only required for
add-ons that extend Calendar with third-party
conferencing solutions.

The configuration of a
[conferencing solution](https://developers.google.com/apps-script/add-ons/calendar/conferencing/overview)
offered by the add-on. Each solution appears as an
option in the Google Calendar **Edit event** UI.

| JSON representation |
|---|
| ``` { "id": string, "logoUrl": string, "name": string, "onCreateFunction": string } ``` |

| Fields ||
|---|---|
| `id` | `string` **Required**. An identifier for the conferencing solution. It must be unique within the set of conference solutions. Do not change the ID once chosen. |
| `logoUrl` | `string` A link to the solution icon. The image should be 96 x 96 dp. **The image must be hosted on Google infrastructure.** See [Providing conference solution logos](https://developers.google.com/workspace/add-ons/calendar/conferencing/providing-logos) for details. This image can differ from the add-on [`calendar.logoUrl`](https://developers.google.com/apps-script/manifest/addons#Common.FIELDS.logoUrl). If omitted for a specific solution, the script uses `calendar.logoUrl`. |
| `name` | `string` **Required**. The name of the conferencing solution shown in the Google Calendar UI. |
| `onCreateFunction` | `string` **Required** . The name of the Apps Script function called when Google Calendar attempts to create this conference type. You must [implement this function](https://developers.google.com/workspace/add-ons/calendar/conferencing/create-conference) for each supported solution. |

### EventOpenTrigger

A configuration for a contextual trigger that fires when a user opens a
Google Calendar event. See
[Extending the Calendar event interface](https://developers.google.com/workspace/add-ons/calendar/building-calendar-interfaces#extending_the_calendar_event_interface)
for details.

| JSON representation |
|---|
| ``` { "runFunction": string } ``` |

| Fields ||
|---|---|
| `runFunction` | `string` The name of the Apps Script function that runs when a user opens a Calendar event. The function must return an array of [`Card`](https://developers.google.com/apps-script/reference/card-service/card) objects for the UI. |

### EventUpdateTrigger

A configuration for a contextual trigger that fires when a user edits and
saves a Google Calendar event. See
[Updating Calendar events](https://developers.google.com/workspace/add-ons/calendar/building-calendar-interfaces#updating_calendar_events)
for details.

| JSON representation |
|---|
| ``` { "runFunction": string } ``` |

| Fields ||
|---|---|
| `runFunction` | `string` The name of the Apps Script function that runs when a user saves an edited Calendar event. The function must return an array of [`Card`](https://developers.google.com/apps-script/reference/card-service/card) objects for the UI. |

### EventAttachmentTrigger

A configuration for a contextual trigger that fires when a user selects the
add-on attachment provider in the
Calendar menu.

| JSON representation |
|---|
| ``` { "runFunction": string, "label": string, } ``` |

| Fields ||
|---|---|
| `runFunction` | `string` **Required.** The name of the Apps Script function that runs when the user selects the provider. The function must return an array of [`Card`](https://developers.google.com/apps-script/reference/card-service/card) objects for the UI. |
| `label` | `string` **Required.** The menu text identifying the attachment provider. |