【GAS】スプレッドシートからGoogleカレンダーにゲスト付きで予定を登録する方法

GAS

Googleカレンダー関連

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

スプレッドシートからGoogleカレンダーに予定を登録する方法(GAS)
  • スプレッドシートからGoogleカレンダーに終日の予定を追加できます。
  • マクロの基本的な使い方がわかります。
  • スプレッドシートから予定の削除もできます。
  • 今回は、とっても価値の高い方法をお伝えします。


    これを知ることであなたは、

    • GスプレッドシートからGoogleカレンダーに予定を登録時にゲストを指定することができます。
    • 追加したゲストにメールを送ることができます。

    なので、サクッとマスターして

    と答えてあげてください。

    動画はこちら

    シートはこちら


    ※クリックするとシートが開きます。

     

    スクリプト

    //ゲスト付きでGoogleカレンダーに登録
    function RegistEventAddGuestFromSp() {
    
    
      const sheet = SpreadsheetApp.getActiveSheet();
      const Calendar = CalendarApp.getDefaultCalendar();
    
    
      let event //作成されたイベント
      let title, body, mailadder
    
    
      console.log(sheet.getLastRow())
      for (let i = 2; i <= sheet.getLastRow(); i++) {
        title = sheet.getRange(i, 1).getValue()
        body = sheet.getRange(i, 3).getValue()
    
    
        event = Calendar.createAllDayEvent(
          title, //タイトル
          sheet.getRange(i, 2).getValue(), //予定日
          {
            description: body,//説明
            location: sheet.getRange(i, 4).getValue()    //場所
          }
        )
    
    
        mailadder = sheet.getRange(i, 5).getValue() //ゲストのメールアドレス
        console.log("ゲストは", mailadder)
        event.addGuest(mailadder)
        MailApp.sendEmail(mailadder,
          title,
          "以下の予定を追加しました。\n\n" +
          body)
      }
    }

    ※複数のメールアドレスおよびメールアドレスがない場合には、対応していません。

    ポイント

    ゲストの追加は、イベント作成の戻り値に対して
    addGuest()すればOKです。

     

    新しい終日の予定を作成します。

    戻り値

    CalendarEvent – 作成されたイベント。

     

    例)

    let event = Calendar.createAllDayEvent()
    event.addGuest()

     

     

     

    メールの送信方法

     

    以下のようにやればOKです。

    MailApp.sendEmail(メールアドレス,題名,本文)

    例)

    MailApp.sendEmail("xxxxx@gmail.com","予定のお知らせ","予定を追加しました")

     

     

    なお、メール本文は、スプレッドシートから読み込んだほうが
    楽です。

     

    以上です。

     

    ただ、今回のスクリプトでは、複数のゲストに対応していません。
    次回は、複数のゲストに対応します。
    最後までご覧いただきありがとうございます。

    複数のゲスト対応はこちら

    【GAS】カンマ区切りの文字列を分割して処理する方法(Gスプレッドシート)
  • GASでカンマ区切りの文字列を分割する方法がわかります。
  • 配列を手軽に処理できるようになります。
  • Googleカレンダー関連

    コメント

    1. GAS頑張ってます より:

      この連載を見て、複数ゲストを追加したカレンダーの作成やメールの送付がGASでできるようになりました。大変参考になりました。ありがとうございます。

      ただこの方法では、GoogleMeetのURLが設定されずにカレンダーが設定されるため、
      GoogleMeetのURL付きでカレンダーを設定する方法をご教授いただきたいです。

      GASをGoogleカレンダーとAPI連携をし、calendarIdとeventParamを定義し、
      Calendar.Events.insertでカレンダー追加をしてみましたが、以下のエラーになってしまいます。

      TypeError: Cannot read properties of undefined (reading ‘insert’)

      解説をお願いできませんでしょうか。

      const calendarId = Session.getActiveUser().getUserLoginId();
      const eventParam = {
      summary: title,
      start: {
      dateTime: startDate.toISOString()
      },
      end: {
      dateTime: endDate.toISOString()
      },

      calevent = Calendar.Events.insert(eventParam, calendarId, {conferenceDataVersion: 1});

    2. Lalala より:

      こちら参考にスプレッドシートよりカレンダー入力ができるようになり、大変作業が楽になりました!ありがとうございます。

      ゲスト招待もできればと思い、こちらのページにたどり着いたのですが、【スプレッドシートに書いた予定が自動的にGoogleカレンダーに反映される方法】にプラスでゲスト招待したい場合はどのようにスクリプトを変更したらいいでしょうか?
      (複数招待可能であればなお嬉しいです!)

    タイトルとURLをコピーしました