Google: Moves an event to another calendar, i e changes an event's organizer Note that only default events can be moved; birthday, focus Time, from Gmail, out Of Office and working Location events cannot be moved
Google calendarEvents.calendarEventsMove: arguments, response, policy and SDK examples.
← Calendar events operations · Get started
Operation google.calendar_events_move
Provider route: POST /calendar/v3/calendars/{calendarId}/events/{eventId}/move. Alter supplies the connection’s credentials and routing.
Call through Alter
Section titled “Call through Alter”Install @alter-ai/sdk @alter-ai/google with npm, or alter-sdk-google with pip. Supply your connected customer’s grant ID and the arguments described below.
import { App } from "@alter-ai/sdk";import { GoogleIntegration } from "@alter-ai/google";
async function execute(input: Parameters<GoogleIntegration["calendarEvents"]["calendarEventsMove"]>[0]) { const app = new App({ apiKey: process.env.ALTER_API_KEY! }); try { const provider = new GoogleIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! }); const call = await provider.calendarEvents.calendarEventsMove(input); const result = await call.wait(); return result.bodyJson(); } finally { await app.close(); }}import osfrom alter_sdk import Appfrom alter_sdk_google import GoogleIntegration
async def execute(arguments): async with App(api_key=os.environ["ALTER_API_KEY"]) as app: provider = GoogleIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]}) call = await provider.calendar_events.calendar_events_move(arguments) result = await call.wait() return result.body_json()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
path | object | Required within parent | Additional keys: not allowed |
path.calendarId | string | Required within parent | Calendar identifier of the source calendar where the event currently is on. |
path.eventId | string | Required within parent | Event identifier. |
query | object | Required within parent | Additional keys: not allowed |
query.fields | string | Optional | Selector specifying which fields to include in a partial response. |
query.prettyPrint | boolean | Optional | Returns response with indentations and line breaks. Default: true |
query.quotaUser | string | Optional | An opaque string that represents a user for quota purposes. Must not exceed 40 characters. |
query.userIp | string | Optional | Deprecated. Please use quotaUser instead. |
query.destination | string | Required within parent | Calendar identifier of the target calendar where the event is to be moved to. |
query.sendNotifications | boolean | Optional | Deprecated. Please use sendUpdates instead. Whether to send notifications about the change of the event’s organizer. Note that some emails might still be sent even if you set the value to false. The default is false. |
query.sendUpdates | string | Optional | Guests who should receive notifications about the change of the event’s organizer. One of: all, externalOnly, none |
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | Model | Root | Expand Creates an event — response body |
Referenced models: Creates an event — response body
Schemas
Section titled “Schemas”12 more schemas are linked from the tables above, on the schema pages.
Creates an event — response body — conference Data
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
conferenceId | string | Optional | The ID of the conference. Can be used by developers to keep track of conferences, should not be displayed to users. The ID value is formed differently for each conference solution type: - eventHangout: ID is not set. (This conference type is deprecated.) - eventNamedHangout: ID is the name of the Hangout. (This conference type is deprecated.) - hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc. - addOn: ID is defined by the third-party provider. Optional. |
conferenceSolution | Model | Optional | Expand Creates an event — response body — conference Data conference Solution The conference solution, such as Google Meet. Unset for a conference with a failed create request. Either conferenceSolution and at least one entryPoint, or createRequest is required. |
createRequest | Model | Optional | Expand Creates an event — response body — conference Data create Request A request to generate a new conference and attach it to the event. The data is generated asynchronously. To see whether the data is present check the status field. Either conferenceSolution and at least one entryPoint, or createRequest is required. |
entryPoints | array | Optional | Information about individual conference entry points, such as URLs or phone numbers. All of them must belong to the same conference. Either conferenceSolution and at least one entryPoint, or createRequest is required. |
entryPoints[] | Model | Each item | Expand Creates an event — response body — conference Data entry Points item |
notes | string | Optional | Additional notes (such as instructions from the domain administrator, legal notices) to display to the user. Can contain HTML. The maximum length is 2048 characters. Optional. |
parameters | Model | Optional | Expand Creates an event — response body — conference Data parameters Additional properties related to a conference. An example would be a solution-specific setting for enabling video streaming. |
signature | string | Optional | The signature of the conference data. Generated on server side. Unset for a conference with a failed create request. Optional for a conference with a pending create request. |
Referenced models: Creates an event — response body — conference Data parameters, Creates an event — response body — conference Data conference Solution, Creates an event — response body — conference Data create Request, Creates an event — response body — conference Data entry Points item
Creates an event — response body — attachments item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
fileId | string | Optional | ID of the attached file. Read-only. For Google Drive files, this is the ID of the corresponding Files resource entry in the Drive API. |
fileUrl | string | Optional | URL link to the attachment. For adding Google Drive file attachments use the same format as in alternateLink property of the Files resource in the Drive API. Required when adding an attachment. |
iconLink | string | Optional | URL link to the attachment's icon. This field can only be modified for custom third-party attachments. |
mimeType | string | Optional | Internet media type (MIME type) of the attachment. |
title | string | Optional | Attachment title. |
Creates an event — response body — attendees item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
additionalGuests | JSON | Optional | |
additionalGuests (anyOf 1) | integer | Alternative | Number of additional guests. Optional. The default is 0. Default: 0 Format: int32 |
additionalGuests (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
asyncOperation | string | Optional | If present, indicates the status of an asynchronous operation ongoing for this attendee (e.g. listing of members of large attendee groups). Read-only. The default is to not be present. Possible values are: - "inProgress" - The asynchronous operation is in progress. - (not present) - Otherwise. Default: |
comment | string | Optional | The attendee's response comment. Optional. |
displayName | string | Optional | The attendee's name, if available. Optional. |
email | string | Optional | The attendee's email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322. Required when adding an attendee. |
id | string | Optional | The attendee's Profile ID, if available. |
optional | boolean | Optional | Whether this is an optional attendee. Optional. The default is False. Default: false |
organizer | boolean | Optional | Whether the attendee is the organizer of the event. Read-only. The default is False. |
resource | boolean | Optional | Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False. Default: false |
responseStatus | string | Optional | The attendee's response status. Possible values are: - "needsAction" - The attendee has not responded to the invitation (recommended for new events). - "declined" - The attendee has declined the invitation. - "tentative" - The attendee has tentatively accepted the invitation. - "accepted" - The attendee has accepted the invitation. Warning: If you add an event using the values declined, tentative, or accepted, attendees with the "Add invitations to my calendar" setting set to "When I respond to invitation in email" or "Only if the sender is known" might have their response reset to needsAction and won't see an event in their calendar unless they change their response in the event invitation email. Furthermore, if more than 200 guests are invited to the event, response status is not propagated to the guests. |
self | boolean | Optional | Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False. Default: false |
Creates an event — response body — birthday Properties
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
contact | string | Optional | Resource name of the contact this birthday event is linked to. This can be used to fetch contact details from People API. Format: "people/c12345". Read-only. |
customTypeName | string | Optional | Custom type label specified for this event. This is populated if birthdayProperties.type is set to "custom". Read-only. |
type | string | Optional | Type of birthday or special event. Possible values are: - "anniversary" - An anniversary other than birthday. Always has a contact. - "birthday" - A birthday event. This is the default value. - "custom" - A special date whose label is further specified in the customTypeName field. Always has a contact. - "other" - A special date which does not fall into the other categories, and does not have a custom label. Always has a contact. - "self" - Calendar owner's own birthday. Cannot have a contact. The Calendar API only supports creating events with the type "birthday". The type cannot be changed after the event is created. Default: birthday |
Creates an event — response body — end
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
date | string | Optional | The date, in the format "yyyy-mm-dd", if this is an all-day event. Format: date |
dateTime | string | Optional | The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone. Format: date-time |
timeZone | string | Optional | The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end. |
Creates an event — response body — focus Time Properties
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
autoDeclineMode | string | Optional | Whether to decline meeting invitations which overlap Focus Time events. Valid values are declineNone, meaning that no meeting invitations are declined; declineAllConflictingInvitations, meaning that all conflicting meeting invitations that conflict with the event are declined; and declineOnlyNewConflictingInvitations, meaning that only new conflicting meeting invitations which arrive while the Focus Time event is present are to be declined. |
chatStatus | string | Optional | The status to mark the user in Chat and related products. This can be available or doNotDisturb. |
declineMessage | string | Optional | Response message to set if an existing event or new invitation is automatically declined by Calendar. |
Creates an event — response body — out Of Office Properties
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
autoDeclineMode | string | Optional | Whether to decline meeting invitations which overlap Out of office events. Valid values are declineNone, meaning that no meeting invitations are declined; declineAllConflictingInvitations, meaning that all conflicting meeting invitations that conflict with the event are declined; and declineOnlyNewConflictingInvitations, meaning that only new conflicting meeting invitations which arrive while the Out of office event is present are to be declined. |
declineMessage | string | Optional | Response message to set if an existing event or new invitation is automatically declined by Calendar. |
Returns events on the specified calendar — response body — default Reminders item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
method | string | Optional | The method used by this reminder. Possible values are: - "email" - Reminders are sent via email. - "popup" - Reminders are sent via a UI popup. Required when adding a reminder. |
minutes | JSON | Optional | |
minutes (anyOf 1) | integer | Alternative | Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes). Required when adding a reminder. Format: int32 |
minutes (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: google.calendar_events_move. Catalog operation: calendar.events.move. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.
Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.
Required provider scopes: ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.events", "https://www.googleapis.com/auth/calendar.events.owned"]