GASでGoogleカレンダーのMeet会議を設定した予定・イベントを作成する方法

Googleカレンダーで作成する予定にはビデオ会議サービスのGoogle Meetと連携し、Meet会議を設定可能です。

そこでGoogle Apps Script(GAS)を使って、Google Meetの会議設定されたGoogleカレンダーの予定を作成する方法を解説します。

Googleカレンダー予定にMeet会議を設定可能

Googleカレンダーはスケジュール管理ツールとして多くのユーザーに活用されています。

Googleアカウントを使うことで、GmailなどのGoogleサービスと連携し、色々なユーザーとカレンダーの予定やイベントを共有できます。

さらにリモートワークが普及したことで、Googleカレンダーの予定にビデオ会議ツールのGoogle Meetが設定できるようになりました。

Googleカレンダーの設定項目としてGoogleMeetを設定すると、オンライン会議の予定が作成可能です。

GoogleカレンダーでMeet会議の予定を作成し、チームやグループメンバーに共有することでビデオ会議を簡単に開くことができます。

GASでもMeet会議予定を作成したい

グーグルのスクリプトサービスであるGoogle Apps Script(GAS)では、Googleカレンダーをスクリプト操作可能です。

Googleカレンダーの予定取得や変更、削除といった処理がGASで実行することができます。

GASでのGoogleカレンダーの予定作成などの各種操作は以下の記事でまとめています。

GASでGoogleカレンダーを操作できるとなると、Meet会議が設定されたGoogleカレンダーの予定が作れないか試してみたくなります。

デフォルトのCalendarAppでは設定不可

前述したGoogle Apps Script(GAS)でGoogleカレンダーを操作する方法の解説では、CalendarAppというオブジェクトを利用しています。

このCalendarAppはGASにデフォルトで用意されていて、特に追加設定なしでGoogleカレンダーを操作可能です。

しかし、Googleカレンダーの予定にGoogle Meet会議を設定するのは、CalendarAppでは実行できません。

CalendarAppでは予定の作成ができるものの、予定の件名や時間、色など設定できますが、複雑な設定は不可能です。

それではGoogle Meet会議が設定されたGoogleカレンダーの予定は作成できないかと言えば、実は作成することができます。

それには、GASのサービスに用意されている「Google Calendar API」を使うことでMeet会議付き予定が設定可能です。

GASでMeet会議付きGoogleカレンダー予定の作成方法

実際に、Google Apps Script(GAS)のスクリプトで、Google Meet会議が設定されたGoogleカレンダーの予定を作成する方法を解説します。

先ほどもお伝えした通り、GASサービスで追加可能な「Google Calendar API」サービスを有効化する必要があります。

Google Calendar APIは以下の2Stepで簡単に追加することが可能です。

1.GASスクリプトエディタの左側に用意されたサービスの+マークをクリックします。

2.追加サービス一覧の中から「Google Calendar API」を選択し、「追加」ボタンをクリックします。

このように追加すると、スクリプトエディタのサービスにCalendarと表示されます。

Calendar APIが追加できたら、GASスクリプトエディタに以下のコードを記述します。

//CalendarAPIサービスを追加し、GoogleカレンダーでMeet会議が設定された予定を作成
function getMeetUrl() {
  //GAS実行ユーザーのGoogleアカウントIDをカレンダーIDとして取得
  const calendarId = Session.getActiveUser().getUserLoginId();
  //GoogleカレンダーでMeet会議が設定されるイベント登録パラメータを設定
  const eventParam = {
    conferenceData: {
      createRequest: {
        conferenceSolutionKey: {
          type: "hangoutsMeet"
        },
        requestId: "123"
      }
    },
    summary: 'Meet設定済み予定',
    start: {
      dateTime: "2022-08-08T08:05:00.000+09:00"
    },
    end: {
      dateTime: "2022-08-08T09:05:00.000+09:00"
    },
  };
  //CalendarAPIに対し、Meet会議付き予定を追加
  const event = Calendar.Events.insert(eventParam, calendarId, {conferenceDataVersion: 1});
  //作成したイベントからGoogle MeetURLを表示
  console.log(event.hangoutLink);
  Calendar.Events.remove(calendarId, event.)
}

上記GASスクリプトは、Google Meetの会議が設定されたGoogleカレンダーの予定を作成する処理になっています。

このGoogle Meetの会議URLは、Calendar APIの実行結果であるeventのhangoutlinkを参照すると取得することができます。

関数を実行すると、実行ログにGoogle MeetのURLが表示されています。

さらに、Googleカレンダーにアクセスすると、予定が作成されています。

Googleカレンダーの予定詳細を確認すると、Google Meetが設定されています。

先程ログ出力したGoogle MeetのURLと同じURLがセットされています。

Google Meetの会議URLだけ発行したい場合は

先ほどのGoogle Apps Scriptでは、Google Meetの会議が設定されたGoogleカレンダーの予定を作成しました。

ただ、Google Meetの会議URLだけ発行し、Googleカレンダーの予定は不要というケースもあります。

その場合は、Google Calendar APIでMeet会議付きの予定を作成して会議URLを取得したあと、予定を削除すれば解決です。

1回のGAS実行の中で、Googleカレンダーの予定作成と削除を行えば、Google Meetの会議URLを取得するたびに予定が追加されることもありませn。

まとめ・終わりに

今回、Google Apps Script(GAS)で、GoogleカレンダーのMeet会議が設定された予定を作成する方法を紹介しました。

GASではCalendarAppがデフォルトで使えますが、CalendarAppではGoogle Meetの会議の設定ができません。

その代わり、サービスに用意されているGoogle Calendar APIを使うことでGoogle Meet会議を設定した予定を作成できます。

GASで自動的にGoogle Meetの会議予定を設定したい場合や、Meet会議URLを発行したい場合に、試してみてください。