Cmdlets for Google Calendar

Build 25.0.9434

ImportEvent

Imports an event into a calendar.

Execute

Imports a single event into a Google Calendar using the Events.import API.

Basic usage example with common fields:

EXEC ImportEvent
CalendarId = 'primary',
ICalUID = 'external-uid-12345',
Summary = 'Team Sync',
Status = 'confirmed',
StartDateTime = '2025-09-10T09:00:00Z',
StartDateTimeZone = 'UTC',
EndDateTime = '2025-09-10T10:00:00Z',
EndDateTimeZone = 'UTC',
Description = 'Weekly sync up',
Location = 'Room 101'

You can also specify Recurrences (pipe-separated RRULE|EXRULE|RDATE|EXDATE lines), SourceTitle/SourceUrl, visibility and other standard event fields as documented in the input list.

Aggregate inputs: JSON array or #TEMP table

The following inputs support either a JSON array literal or a temporary table reference (use the special table suffixed with #Temp and pass its name as the input value). This enables bulk/aggregate inserts:

ReminderOverrides

Only used when RemindersUseDefault = 'false'. Each override defines one reminder:

  • Method ('email'|'popup')
  • Minute (integer minutes before start; 0-40320)

Maximum of 5 overrides.

Option A: JSON array

EXEC ImportEvent
CalendarId = 'primary',
ICalUID = 'uid-rem-1',
Summary = 'With Custom Reminders',
Status = 'confirmed',
StartDateTime = '2025-11-20T15:00:00Z',
EndDateTime = '2025-11-20T16:00:00Z',
RemindersUseDefault = 'false',
ReminderOverrides = '[{"method":"email","minutes":30},{"method":"popup","minutes":10}]'

Option B: #TEMP table

INSERT INTO EventReminders#Temp(Method, Minute) VALUES ('email', 30);
INSERT INTO EventReminders#Temp(Method, Minute) VALUES ('popup', 10);
EXEC ImportEvent
CalendarId = 'primary',
ICalUID = 'uid-rem-2',
Summary = 'With Custom Reminders (Temp)',
Status = 'confirmed',
StartDateTime = '2025-11-20T15:00:00Z',
EndDateTime = '2025-11-20T16:00:00Z',
RemindersUseDefault = 'false',
ReminderOverrides = 'EventReminders#Temp'

Attendees

Each attendee must at least include an Email. Optional columns: DisplayName, Comment, Optional, AdditionalGuests, Resource, ResponseStatus ('needsAction'|'declined'|'tentative'|'accepted'), Organizer.

Option A: JSON array

EXEC ImportEvent
CalendarId = 'primary',
ICalUID = 'uid-att-1',
Summary = 'Event With Attendees',
Status = 'confirmed',
StartDateTime = '2025-12-01T10:00:00Z',
EndDateTime = '2025-12-01T11:00:00Z',
Attendees = '[
{"email":"[email protected]","displayName":"Alice"},
{"email":"[email protected]","optional":true}
]'

Option B: #TEMP table

INSERT INTO EventAttendees#Temp(DisplayName, Email, Comment, Optional, AdditionalGuests, Resource, ResponseStatus, Organizer)
VALUES ('Alice', '[email protected]', 'Project lead', false, 0, false, 'accepted', false);
INSERT INTO EventAttendees#Temp(DisplayName, Email, Optional)
VALUES ('Bob', '[email protected]', true);
EXEC ImportEvent
CalendarId = 'primary',
ICalUID = 'uid-att-2',
Summary = 'Event With Attendees (Temp)',
Status = 'confirmed',
StartDateTime = '2025-12-01T10:00:00Z',
EndDateTime = '2025-12-01T11:00:00Z',
Attendees = 'EventAttendees#Temp'

Conference Data

Conference details require ConferenceDataVersion = '1'.

A) Create a new conference (Google Meet)

EXEC ImportEvent
CalendarId = 'primary',
ICalUID = 'uid-conf-new',
Summary = 'Meet With Team',
Status = 'confirmed',
StartDateTime = '2025-12-10T14:00:00Z',
EndDateTime = '2025-12-10T15:00:00Z',
ConferenceDataVersion = '1',
ConferenceDataCreateNewRequest = 'true',
ConferenceDataConferenceSolutionType = 'hangoutsMeet'

B) Use existing conference data

Provide available ConferenceData fields (ConferenceDataConferenceId, ConferenceDataNotes, ConferenceDataSignature, ConferenceDataConferenceSolutionType, ConferenceDataConferenceSolutionIconUri, ConferenceDataConferenceSolutionName) and at least one ConferenceDataEntryPoints item, via JSON or #TEMP table.

EntryPoints JSON array example:

EXEC ImportEvent
CalendarId = 'primary',
ICalUID = 'uid-conf-existing',
Summary = 'Join Existing Conference',
Status = 'confirmed',
StartDateTime = '2025-12-15T09:00:00Z',
EndDateTime = '2025-12-15T10:00:00Z',
ConferenceDataVersion = '1',
ConferenceDataConferenceId = 'aaa-bbbb-ccc',
ConferenceDataConferenceSolutionType = 'hangoutsMeet',
ConferenceDataConferenceSolutionName = 'Google Meet',
ConferenceDataEntryPoints = '[{"entryPointType":"video","label":"meet","meetingCode":"aaa-bbbb-ccc","uri":"https://meet.google.com/aaa-bbbb-ccc"}]'
 

EntryPoints #TEMP table example (ConferenceDataEntryPoints#Temp)

Columns: AccessCode, EntryPointType, Label, MeetingCode, Passcode, Password, PIN, URI.

 INSERT INTO ConferenceDataEntryPoints#Temp(EntryPointType, Label, MeetingCode, Uri)
 VALUES ('video', 'Google Meet', 'aaa-bbbb-ccc', 'https://meet.google.com/aaa-bbbb-ccc');
 EXEC ImportEvent
 CalendarId = 'primary',
 ICalUID = 'uid-conf-existing-2',
 Summary = 'Join Existing Conference (Temp)',
 Status = 'confirmed',
 StartDateTime = '2025-12-15T09:00:00Z',
 EndDateTime = '2025-12-15T10:00:00Z',
 ConferenceDataVersion = '1',
 ConferenceDataConferenceId = 'aaa-bbbb-ccc',
 ConferenceDataConferenceSolutionType = 'hangoutsMeet',
 ConferenceDataConferenceSolutionName = 'Google Meet',
 ConferenceDataEntryPoints = 'ConferenceDataEntryPoints#Temp'

Attachments

Provide a pipe-separated list of file URLs in AttachmentsFileUrls. To include attachments in responses, set SupportsAttachments = 'true'.

EXEC ImportEvent
CalendarId = 'primary',
ICalUID = 'uid-attch-ps',
Summary = 'Event With Attachments',
Status = 'confirmed',
StartDateTime = '2025-12-05T09:00:00Z',
EndDateTime = '2025-12-05T09:30:00Z',
SupportsAttachments = 'true',
AttachmentsFileUrls = 'https://example.com/file1|https://docs.google.com/document/d/1Abc...'
 

Full example combining multiple inputs


EXEC ImportEvent
CalendarId = 'primary',
ICalUID = 'test-uid-1757601360956',
Summary = 'Test Event',
Status = 'confirmed',
ConferenceDataVersion = '1',
SupportsAttachments = 'true',
Visibility = 'default',
Transparency = 'opaque',
Description = 'Automated test description',
Location = 'Test Location',
ColorId = '1',
AttendeesOmitted = 'false',
GuestsCanInviteOthers = 'true',
GuestsCanModify = 'false',
GuestsCanSeeOtherGuests = 'true',
Sequence = '0',
StartDateTime = '2025-09-10T09:00:00Z',
StartDateTimeZone = 'UTC',
EndDateTime = '2025-09-10T10:00:00Z',
EndDateTimeZone = 'UTC',
Recurrences = 'RRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20251231T235959Z|EXRULE:FREQ=WEEKLY;BYDAY=FR;UNTIL=20251231T235959Z|RDATE:20251225T090000Z|EXDATE:20251224T090000Z',
RemindersUseDefault = 'false',
ReminderOverrides = 'EventReminders#Temp',
Attendees = 'EventAttendees#Temp',
AttachmentsFileUrls = 'https://example.com/file1|https://example.com/file2',
ConferenceDataCreateNewRequest = 'true',
ConferenceDataConferenceSolutionType = 'hangoutsMeet'
 

Temp table schemas

The following are the column schemas for the #Temp tables that can be passed to ImportEvent inputs. Create and populate them implicitly by inserting into TableName#Temp as shown in the examples above.

EventReminders#Temp (used by ReminderOverrides) schema info:

Column NameTypeRequiredDescription
Method string true The method used by this reminder.
Minute string true 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).

EventAttendees#Temp (used by Attendees) schema info:

Column NameTypeRequiredDescription
DisplayName string false The attendee's name.
Email string true 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.
Comment string false The attendee's response comment.
Optional boolean false Whether the attendee is optional.
AdditionalGuests integer false Number of additional guests.
Resource boolean false Whether the attendee is a resource.
ResponseStatus string false The attendee response status.
Organizer boolean false Whether the attendee is the organizer of the event.

ConferenceDataEntryPoints#Temp (used by ConferenceDataEntryPoints) schema info:

Column NameTypeRequiredDescription
AccessCode string false The access code to access the conference. When creating new conference data, populate only the subset of {MeetingCode, AccessCode, Passcode, Password, Pin} fields that match the terminology that the conference provider uses.
EntryPointType string true The type of the conference entry point.
Label string false The label for the URI. Visible to end users.
MeetingCode string false The meeting code to access the conference. When creating new conference data, populate only the subset of {MeetingCode, AccessCode, Passcode, Password, Pin} fields that match the terminology that the conference provider uses.
Passcode string false The passcode to access the conference. When creating new conference data, populate only the subset of {MeetingCode, AccessCode, Passcode, Password, Pin} fields that match the terminology that the conference provider uses.
Password string false The password to access the conference. When creating new conference data, populate only the subset of {MeetingCode, AccessCode, Passcode, Password, Pin} fields that match the terminology that the conference provider uses.
PIN string false The PIN to access the conference. When creating new conference data, populate only the subset of {MeetingCode, AccessCode, Passcode, Password, Pin} fields that match the terminology that the conference provider uses.
URI string true The URI of the entry point.

Input

Name Type Required Description
CalendarId String True The calendar identifier where the event will be imported.If you want to access the primary calendar of the currently logged in user, use the 'primary' keyword.
ConferenceDataVersion Integer False Version number indicating whether conference data should be included in the response.
SupportsAttachments Boolean False Whether API client supports event attachments. When true, event with attachments is returned; otherwise, attachments are stripped.
ICalUID String True Event unique identifier as defined in RFC5545.
Summary String False Title of the event.
Status String False Status of the event.
Visibility String False Visibility of the event.
Transparency String False Whether the event blocks time on the calendar.
Description String False Description of the event.
Location String False Geographic location of the event.
ColorId String False Color ID of the event.
Attendees String False The attendees of the event. Accepts only temporary table or JSON inputs.
AttachmentsFileUrls String False Pipe-Seperated list of attachments file urls.
AttendeesOmitted Boolean False Whether attendees may have been omitted from the event's representation.
GuestsCanInviteOthers Boolean False Whether attendees other than the organizer can invite others to the event.
GuestsCanModify Boolean False Whether attendees other than the organizer can modify the event.
GuestsCanSeeOtherGuests Boolean False Whether attendees other than the organizer can see who the event's attendees are.
Sequence Integer False Sequence number as per iCalendar.
StartDate Date False Start date (for all-day events).
StartDateTime String False Start date/time (RFC3339).
StartDateTimeZone String False Time zone of the start (e.g., 'UTC', 'America/New_York').
EndDate Date False End date (for all-day events).
EndDateTime String False End date/time (RFC3339).
EndDateTimeZone String False Time zone of the end.
Recurrences String False Pipe-separated List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as specified in RFC5545. Note that DTSTART and DTEND lines are not allowed in this field.
SourceTitle String False Title of the source; for example a title of a web page or an email subject.
SourceUrl String False URL of the source pointing to a resource. The URL scheme must be HTTP or HTTPS.
RemindersUseDefault Boolean False Whether the calendar's default reminders apply.
ReminderOverrides String False If the event doesn't use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event. The maximum number of override reminders is 5. Accepts only temporary table or JSON inputs.
OrganizeName String False The organizer name. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True.
OrganizerEmail String False The organizer's email address, if available. It must be a valid email address as per RFC5322.
ConferenceDataCreateNewRequest Boolean False Whether a new conference solution should be created, or an existing one should be used. If set to true only the ConferenceDataConferenceSolutionType will be considered of the Conference Data inputs.
ConferenceDataConferenceId String False The ID of the conference. The ID value is formed differently for each conference solution type: hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc. addOn: ID is defined by the third-party provider.
ConferenceDataNotes String False Additional notes to display to user.
ConferenceDataSignature String False The signature of the conference data. Generated on the server side.
ConferenceDataConferenceSolutionType String False The conference solution type.
ConferenceDataConferenceSolutionIconUri String False The user-visible icon for this solution.
ConferenceDataConferenceSolutionName String False The user-visible solution name.
ConferenceDataEntryPoints String False Information about individual conference entry points, such as URLs or phone numbers. All of them must belong to the same conference. Accepts only temporary table or JSON inputs.

Result Set Columns

Name Type Description
EventId String The identifier of the imported event.
Success String Indicates whether the operation was successful.

Copyright (c) 2025 CData Software, Inc. - All rights reserved.
Build 25.0.9434