背景・目的
- 社内勉強会などでよく参加申し込みフォームを作成するため備忘録的に
- Googleフォームの回答結果が入るSSでカレンダー招待するスクリプトを作成
- 事後のアンケートを送信したりするので、SSにアドレスが残っていると楽なため
手順
- フォーム作成
- 送信者アドレスを取得する設定にしておくこと
- フォームにSSに関連付け
- フォームの回答をスプレッドシートに出力する設定を行う
- SSのスクリプトエディタでコード編集
- SSにて「App Script」を起動しコードを貼り付ける
- ※デフォルトで記載してある「function myFunction(){}」を上書きしましょう
- 必要箇所を修正する
- 初回実行時は認証処理必要
- トリガー作成
- フォーム送信時のトリガーを作成
- イベントのソース:スプレッドシートから
- イベントの種類:フォーム送信時
- フォーム送信時のトリガーを作成
スクリプト
entry.gs
// シート情報:要変更
// https://docs.google.com/spreadsheets/d/AAAAA/ の 「AAAAA」部分がシートID
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]);
}