Googleフォームからカレンダー招待(備忘録)


背景・目的

  • 社内勉強会などでよく参加申し込みフォームを作成するため備忘録的に
  • Googleフォームの回答結果が入るSSでカレンダー招待するスクリプトを作成
  • 事後のアンケートを送信したりするので、SSにアドレスが残っていると楽なため

手順

  • フォーム作成
  • フォームにSSに関連付け
  • SSのスクリプトエディタでコード編集
    • 初回実行時は認証処理必要
  • トリガー作成
    • フォーム送信時のトリガーを作成

スクリプト

entry.gs

// シート情報:要変更
var SS_ID = "シートID"; // GoogleスプレッドシートのURLから
var SH_NAME = "フォームの回答 1"; // シートの名前

// カレンダー情報:要変更
var EVENT_DATE = '2020/01/01';// 開催日
var EVENT_TITLE = "カレンダー予定名"; // タイトル

function addGuest() {
  var sh = SpreadsheetApp.openById(SS_ID).getSheetByName(SH_NAME);
  var r = sh.getLastRow(); 
  var c = sh.getLastColumn();

  //カレンダー情報
  var date = new Date(EVENT_DATE);
  var options = {
    search: EVENT_TITLE
  }
  var events = CalendarApp.getEventsForDay(date, options);
  var id = events[0].getId();
  var event = CalendarApp.getEventById(id);

  // アドレス取得
  var target = sh.getRange(r, 2); // 1列目は送信日時、2列目が送信者アドレス
  var address = target.getValues();

  // カレンダー追加
  event.addGuest(address[0][0]);
}