GASでGoogleカレンダーの予定にゲストを追加する方法(addGuest)

Googleカレンダーは多くのユーザーが利用していて、自分の予定に他の人をゲストとして追加できます。

Google Apps Script(GAS)でも同様にカレンダーの予定にゲストを追加できるので、予定へのゲスト追加するaddGuestメソッドの使い方を解説します。

Googleカレンダーの予定はゲスト追加可能

Googleカレンダーはカレンダーアプリとして世界でも一番使われています。

Googleアカウントさえあれば利用でき、パソコンのブラウザやスマホのGoogleカレンダーのアプリで予定・タスクを管理可能です。

そんなGoogleカレンダーには、自分の予定に他の人をゲストとして追加することができます。

予定にゲスト追加すると、他のユーザーにも予定が共有され、同じようにカレンダーに表示されます。

Googleカレンダーを使って会社や組織内のスケジュールを共有しているケースも多いです。

GASでもGoogleカレンダーのゲスト追加機能

Googleカレンダーの予定へのゲスト追加は、Google Apps Script(GAS)からも実行できます。

GASから実行できれば、別のユーザーをゲストとして追加する処理を自動化可能です。

GASにはスクリプトを用意することで、色々なサービスと連携できる強みがあります。

スプレッドシートからあらかじめ用意したリストのユーザーをGoogleカレンダーの予定にゲスト追加するといった処理をGASで実装できます。

GASの予定ゲスト追加はaddGuestメソッド

Google Apps Script(GAS)で、Googleカレンダーの予定にゲストを追加するにはaddGuestメソッドを使用します。

Event.addGuest(Gmailアカウント)

addGuestはEventオブジェクトで実行可能なメソッドです。

ゲストを追加したい予定をGoogleカレンダーから取得して実行すると、引数に指定したGmailアカウントにも予定が共有されます。

引数に指定できるのはGmailアカウント1つのみなので、複数人を予定にゲスト追加したい場合は、その人数分addGuestメソッドの実行が必要です。

予定にゲストを追加するGASサンプルコード

実際にGoogleカレンダーの予定にゲストを追加する方法をGoogle Apps Script(GAS)のサンプルコードで解説します。

Googleカレンダーに登録されている予定を取得し、その予定にゲストを追加するサンプルコードです。

function sampleAddGuest() {
  //自分のGoogleアカウントのデフォルトカレンダーを取得する
  const calendar = CalendarApp.getDefaultCalendar();
  //指定期間に登録されている予定を取得する
  const events = calendar.getEvents(new Date(2023,8,16),new Date(2023,8,19));
  //取得した予定の1つ目のタイトルをログ出力する
  console.log(events[0].getTitle());
  //取得した予定の1つ目にゲストを追加する
  events[0].addGuest('ユーザーのメールアドレス');  
}

GASを実行すると、addGuestの引数に指定したGoogleアカウントのカレンダーに予定が共有されます。

予定にゲスト追加しても相手にはメール等通知は飛ばない仕様です。

相手側でGoogleカレンダーにアクセスすると、予定が薄く表示されるようになっています。

「参加しますか?」に「参加」と選択すると、addGuestで追加したユーザーのカレンダーにも登録されます。

相手が参加を選択すると、GAS実行ユーザー側のGoogleカレンダーの予定にチェックが入ります。

ただ、前述した通り、addGuestメソッドでは1回の実行で1つのアカウントしか追加できません。

複数のユーザーを予定にゲスト追加したい場合は、Forループなどで繰り返し処理するよう実装します。

function sampleAddGuests() {
  //Googleカレンダーの予定にゲスト追加するユーザー
  const guest = ['ユーザーAのメールアドレス','ユーザーBのメールアドレス'];  
  //自分のGoogleアカウントのデフォルトカレンダーを取得する
  const calendar = CalendarApp.getDefaultCalendar();
  //指定期間に登録されている予定を取得する
  const events = calendar.getEvents(new Date(2023,8,16),new Date(2023,8,19));
  //取得した予定の1つ目のタイトルをログ出力する
  console.log(events[0].getTitle());
  //取得した予定の1つ目にforループでユーザーをゲスト追加する
  for(let i=0;i<guest.length;i++){
    events[0].addGuest(guest[i]);  
  }
}

複数ユーザーを配列として定義しておき、配列要素数だけforループでaddGuestを実行しています。

このやり方を使えば、ゲストとして追加したいユーザーをスプレッドシートに書いておいて、自動的に追加することも可能です。

GASで予定作成時もゲスト招待もできる

なおここまではすでに作成ずみの予定にゲストを追加する方法を紹介してきました。

Google Apps Script(GAS)では、Googleカレンダーの予定を作成するタイミングでゲストを追加することもできます。

function createEventWithGuest() {
  //Googleカレンダーの予定にゲスト追加するユーザー
  const guest = ['ユーザーAのメールアドレス','ユーザーBのメールアドレス']; 
  //自分のGoogleアカウントのデフォルトカレンダーを取得する
  const calendar = CalendarApp.getDefaultCalendar();
  //イベント予定を作成する開始日を定義する(月は0-11で指定)
  const startDate = new Date(2023, 8, 19, 10, 0);
  //イベント予定を作成する終了日を定義する(月は0-11で指定)
  const endDate = new Date(2023, 8, 19, 11, 30);
  //予定作成のオプションでゲスト追加するユーザーを設定
  const options = {
    //ゲストユーザーの配列をjoinでカンマ区切りで連結した文字列に
    guests : guest.join(),
    sendInvites : true
  }
  //指定期間に登録されている予定を取得する
  const event = calendar.createEvent("ゲスト追加",startDate,endDate,options);
}

予定を追加するcreateEventメソッドで、予定のオプションを引数に含められます。

そのなかでguestsパラメータに、追加したいユーザーをカンマ区切りで追加します。

※配列をカンマ区切りの文字列として連結する方法は以下の記事で解説しています。

addGuestとは異なり、Googleカレンダーの予定登録時に、ユーザー追加する場合は複数ユーザーをゲスト追加できるのが特徴です。

さらにsendInvitesパラメータをtrueにすると、ゲスト追加したユーザーにメール通知が送られます。

Googleカレンダーの予定を作成した際にゲストを追加することもできるので、覚えておくと便利です。

まとめ・終わりに

今回、Google Apps Script(GAS)でGoogleカレンダーの予定にゲストを追加する方法を紹介しました。

すでに作成済みのGoogleカレンダーの予定に対して、GASのaddGuestメソッドを実行することで予定にユーザーを追加できます。

ただ、addGuestメソッドでは1回の実行で1人のゲストしか追加できないため、追加したいユーザーの人数分実行が必要です。

また、GASで予定作成時にはcreateEventメソッドでゲスト追加することができます。

この場合は複数ユーザーをゲスト追加し、メール通知でお知らせを送ることもパラメータで設定可能です。

GASからGoogleカレンダーの予定にゲスト追加して、他のユーザーに予定を共有したい場合は解説した手順を試してみましょう。