0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

0
Last updated at Posted at 2020-07-03

背景・目的

  • 社内勉強会などでよく参加申し込みフォームを作成するため備忘録的に
  • 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]);
}

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?