How to Schedule a Google Meeting with Google Calendar and Apps Script

Advertisements

Hey, friends today I will teach you How to Schedule a Google Meeting with Google Calendar and Apps Script. This Apps Script sample demonstrates how to use the Google Calendar API to programmatically schedule video meetings inside Google Meet with one or more participants. It can be useful for teachers who want to schedule regular meetings with their students but don’t want to create meeting invites manually because they can easily automate the entire process for the entire class.

How to Schedule a Google Meeting with Google Calendar and Apps Script

so let get started with today Code snippets. Getting different problems is altogether gives a very different experience. today the Code snippets I am going to share with you is How to Schedule a Google Meeting with Google Calendar and Apps Script.

You might also like our trending code snippets

Advertisements

Learn how to setup a video meeting inside Google Meet with the Google Calendar API and Apps Script

Setup Google Meeting with Apps Script

Give your meeting a name, a start date, a duration, a list of attendees, and how frequently you want to be reminded of the upcoming Google meeting. A new meeting event will be added to your Google Calendar, as well as a Google Meet link that you can share with your students and colleagues via mail merge.

const createGoogleMeeting = () => {
  // The default calendar where this meeting should be created
  const calendarId = "primary";

  // Schedule a meeting for May 30, 2021 at 1:45 PM
  // January = 0, February = 1, March = 2, and so on
  const eventStartDate = new Date(2021, 4, 30, 13, 45);

  // Set the meeting duration to 45 minutes
  const eventEndDate = new Date(eventStartDate.getTime());
  eventEndDate.setMinutes(eventEndDate.getMinutes() + 45);

  const getEventDate = (eventDate) => {
    // Dates are computed as per the script's default timezone
    const timeZone = Session.getScriptTimeZone();

    // Format the datetime in `full-date T full-time` format
    return {
      timeZone,
      dateTime: Utilities.formatDate(
        eventDate,
        timeZone,
        "yyyy-MM-dd'T'HH:mm:ss"
      ),
    };
  };

  // Email addresses and names (optional) of meeting attendees
  const meetingAttendees = [
    {
      displayName: "Amit Agarwal",
      email: "[email protected]",
      responseStatus: "accepted",
    },
    { email: "[email protected]", responseStatus: "needsAction" },
    { email: "[email protected]", responseStatus: "needsAction" },
    {
      displayName: "Angus McDonald",
      email: "[email protected]",
      responseStatus: "tentative",
    },
  ];

  // Generate a random id
  const meetingRequestId = Utilities.getUuid();

  // Send an email reminder a day prior to the meeting and also
  // browser notifications15 minutes before the event start time
  const meetingReminders = [
    {
      method: "email",
      minutes: 24 * 60,
    },
    {
      method: "popup",
      minutes: 15,
    },
  ];

  const { hangoutLink, htmlLink } = Calendar.Events.insert(
    {
      summary: "Maths 101: Trigonometry Lecture",
      description: "Analyzing the graphs of Trigonometric Functions",
      location: "10 Hanover Square, NY 10005",
      attendees: meetingAttendees,
      conferenceData: {
        createRequest: {
          requestId: meetingRequestId,
          conferenceSolutionKey: {
            type: "hangoutsMeet",
          },
        },
      },
      start: getEventDate(eventStartDate),
      end: getEventDate(eventEndDate),
      guestsCanInviteOthers: false,
      guestsCanModify: false,
      status: "confirmed",
      reminders: {
        useDefault: false,
        overrides: meetingReminders,
      },
    },
    calendarId,
    { conferenceDataVersion: 1 }
  );

  Logger.log("Launch meeting in Google Meet: %s", hangoutLink);
  Logger.log("Open event inside Google Calendar: %s", htmlLink);
};

Google Meeting with Recurring Schedule

The above code can be extended to create meetings on a recurring basis.

Advertisements

To specify the recurring event in RRULE notation, simply add a recurrence attribute to the meeting event resource. For example, the following rule will schedule an 8-week recurring video meeting for your Maths lecture on Mondays and Thursdays.

{
  ...event,
  recurrence: ["RRULE:FREQ=WEEKLY;COUNT=8;INTERVAL=1;WKST=MO;BYDAY=MO,TH"];
}

Here are some other useful RRULE examples:

  • FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR – Occurs every week except on weekends
  • FREQ=MONTHLY;INTERVAL=2;BYDAY=TU – Occurs every Tuesday, every other month
  • INTERVAL=2;FREQ=WEEKLY – Occurs every other week
  • FREQ=WEEKLY;INTERVAL=2;BYDAY=TU,TH;BYMONTH=12 – Occurs every other week in December on Tuesday and Thursday
  • FREQ=MONTHLY;INTERVAL=2;BYDAY=1SU,-1SU – Occurs every other month on the first and last Sunday of the month

Advertisements

Leave a Comment