Forked from phillypb/Create a Google Calendar Event via the Calendar API.gs
Created
March 25, 2021 10:55
-
-
Save AesisGit/3a5554e1509db97d521d345174934afd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| Function to create a Calendar Event via the API and include Google Meet. | |
| Enable the API via: Services > Google Calendar API > Add | |
| https://developers.google.com/calendar/v3/reference/events/insert#parameterss | |
| */ | |
| function createEvent() { | |
| // ID of the Calendar to create events in | |
| var calendarID = 'your email address here'; | |
| // create title for the event | |
| var summary = "My Test Event"; | |
| // create event description | |
| var description = "Welcome to my Event created via the Calendar API"; | |
| // create event location | |
| var location = "Narnia"; | |
| // create the date/time for the event ******************************** | |
| // specify the TimeZone | |
| var timeZone = "Europe/London"; | |
| // create start date/time | |
| var startDate = "2021-04-03T13:00:00.000"; | |
| // format for the API | |
| var start = { | |
| dateTime: startDate, | |
| timeZone: timeZone | |
| }; | |
| // create end date/time | |
| var endDate = "2021-04-03T14:00:00.000"; | |
| // format for the API | |
| var end = { | |
| dateTime: endDate, | |
| timeZone: timeZone | |
| }; | |
| // create the date/time for the event ******************************** | |
| // add Google Meet conferencing - delete this section if you do not require | |
| var conferenceData = { | |
| createRequest: { | |
| requestId: "sample123", | |
| conferenceSolutionKey: { | |
| type: "hangoutsMeet" | |
| }, | |
| } | |
| }; | |
| // add attendees - repeat as necessary to add more | |
| var attendees = [ | |
| {email: "[email protected]"}, | |
| {email: "[email protected]"} | |
| ]; | |
| /* | |
| set option for sending invite emails to attendees | |
| 'all', 'externalOnly' or 'none' accepted | |
| */ | |
| var sendUpdates = "all"; | |
| // set option for guests inviting others | |
| var guestsCanInviteOthers = false; | |
| // set option for guests can modify event | |
| var guestsCanModify = true; | |
| // set option for guests seeing others | |
| var guestsCanSeeOtherGuests = false; | |
| /* | |
| set option for Show Me As | |
| 'transparent' = Available | |
| 'opaque' = Busy | |
| */ | |
| var transparency = "opaque"; | |
| /* | |
| set option for event visibility | |
| "default" - Uses the default visibility for events on the calendar. | |
| "public" - The event is public and event details are visible to all readers of the calendar. | |
| "private" - The event is private and only event attendees may view event details. | |
| */ | |
| var visibility = "default"; | |
| // compile all of the above options for the event | |
| var resource = { | |
| summary, | |
| description, | |
| start, | |
| end, | |
| conferenceData, | |
| attendees, | |
| location, | |
| guestsCanInviteOthers, | |
| guestsCanModify, | |
| guestsCanSeeOtherGuests, | |
| transparency, | |
| visibility | |
| }; | |
| // create arguments to allow event modifications: conferencing, email guests | |
| var args = { | |
| conferenceDataVersion: 1, | |
| sendUpdates | |
| }; | |
| // make call to Calendar API to create event | |
| var request = Calendar.Events.insert(resource, calendarID, args); | |
| // capture event ID and log it | |
| var eventID = request.id; | |
| Logger.log('Created Event: ' + eventID); | |
| // capture event HTML link and log it | |
| var eventHTML = request.htmlLink; | |
| Logger.log('Event HTML Link is: ' + eventHTML); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment