サイトアイコン Googleスプレッドシート 完全攻略

【GAS】GoogleフォームからGoogleカレンダーに登録する方法

Googleフォーム関連

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

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

前回

Googleフォーム 今日以降の営業日のみプルダウンに表示する
  • Googleフォームにおけるプルダウンの項目をスプレッドシート上から設定できます。
  • 営業日(土日や祝日を無視した)リストを作成できます。
  • 今回は、とっても価値の高い方法をお伝えします。


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

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

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

    動画はこちら

    シートはこちら

    *クリックすることでシートが開きます。(コピーしてお使いください)

     

    スクリプト

    function createEvent(e) {
      const CalID = 'GoogleカレンダーのID' //★GoogleカレンダーのID
    
    
      const [timestamp, username, email, date, time, etc] = e.values
     
      // let timestamp = "2024/10/11 13:59:11"
      // let username = "ひろひろし"
      // let email = "xxxx@gmail.com"
      // let date = "2024年10月19日(土)"
      // let time = "11:00"
      // let etc = "備考"
    
    
    
      const calendar = CalendarApp.getCalendarById(CalID)
      const title = `【予約】${username}`
    
    
      const y = Number(date.split('年')[0])
      const m = Number(date.split('年')[1].split('月')[0]) - 1
      const d = Number(date.split('月')[1].split('日')[0])
      const hours = Number(time.split(':')[0])
      const minutes = Number(time.split(':')[1])
      const startTime = new Date(y, m, d, hours, minutes)
      const endTime = new Date(y, m, d, hours, minutes + 60)  //★60分
    
    
      const description =
    
    
        `▼申込内容
    登録日時: ${timestamp}
    お名前 : ${username}
    Eメール: ${email}
    予約日 : ${date}
    予約時間: ${time}
    備考  : ${etc}`
    
    
      const options = {
        description: description,
      }
      calendar.createEvent(title, startTime, endTime, options)
    }

    ポイント

     

    カレンダーIDの取得方法

    Step1.
    ①ターゲットカレンダーの右「」をクリックします。

     

    Step2.
    ①「設定と共有」をクリックします。

    Step3.
    ①「カレンダーの統合」をクリックします。
    ②「カレンダー ID」をコピーします。

     

    createEventの動作確認

    createEvent関数をスクリプトエディタから実行すると以下のエラーが発生します。

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

    なので、

    const [timestamp, username, email, date, time, etc] = e.values
    の部分をコメントアウトし各変数に適当に値を入れて動作確認します。
    例)
    let timestamp = "2024/10/11 13:59:11"
      let username = "aaaaa"
      let email = "xxxx@gmail.com"
      let date = "2024年10月19日(土)"
      let time = "11:00"
      let etc = "備考"

    以下のようにカレンダーに登録されればOKです。

    では、フォーム送信時に登録されるようトリガーを設定しましょう。

     

     

    フォーム送信時のトリガー設定

    Step1.

    ①「」をクリックします。
    ②「トリガーを追加」をクリックします。

    Step2.

    ①実行する関数を選択で「createEvent」を選択します。
    ②「フォーム送信時」を選択します。
    ③「保存」をクリックします。

    これでフォーム送信時にカレンダーに登録されます。

     

    最後までご覧いただきありがとうございます。

    つぎはこちら

    Googleフォーム 集計した文字情報の日付を日付データに変換する方法
  • 文字の日付データをシリアル値に変更する方法がわかります。
  • Googleフォームにおけるデータの集計方法がわかります。
  • Googleフォーム関連

    モバイルバージョンを終了