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

Googleカレンダーから今日の予定をGoogleスプレッドシートに取り込む

Googleカレンダー関連

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

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

前回

【GAS】今日の予定を自動的にLINEに送信する方法(LINE アクセストークンの取得方法)
  • Googleカレンダーの今日の予定がLINEに送信されます。
  • Googleカレンダーを開かなくても良いので便利です。
  • 今回は、とっても価値の高い方法をお伝えします。


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

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

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

    今日の予定をスプレッドシートに取り込む

    動画はこちら

    シートはこちら

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

    スクリプト

    /**
     * 今日の予定をスプレッドシートに取り込む
     * 
     */
    function CalendarToSpreadsheet() {
    
    
      const DSP_ROW = 1   //表示開始行
      const DSP_CLM = 1   //表示開始位置
      const SHEET_NAME = ""   //★特定のシートに出力する場合は、指定する
    
    
       let booklist = [["カレンダー名", "タイトル", "時間"]] //★ヘッダー
      //let booklist = []
    
    
      const calendars = CalendarApp.getAllCalendars()
      let text = Utilities.formatDate(new Date(), 'JST', 'yyyy/MM/dd') + "\n"
    
    
      //カレンダー分のループ
      for (i in calendars) {
        let calendar = calendars[i]
        let events = calendar.getEventsForDay(new Date())
    
    
        //カレンダー名を取得する
        if (events.length > 0) {
          text = calendar.getName()
        }
    
    
        //カレンダーの内容を取得する
        for (j in events) {
          let book = []                           //一回の予定
          let event = events[j]
          book.push(text)
    
    
          //タイトル
          book.push( event.getTitle())
    
    
          //時間
          let start = toTime(event.getStartTime())  //開始時間
          let end = toTime(event.getEndTime())      //終了時間
          console.log(end)
    
    
          
          let booktime
          if (end == '00:00') {
            end = '24:00'
          }
          if (start == '00:00' & end == '24:00') {
            booktime = '終日'
          }
          else {
            booktime = start + ' - ' + end
          }
          book.push(booktime)
          booklist.push(book)                       //一回の予定を格納する
        }
    
    
      }
      console.log(booklist)
      console.log(booklist.length)
    
    
      if (booklist.length == 0) {
        Browser.msgBox("今日の予定", "今日の予定はありません", Browser.Buttons.OK)
      }
      else {
        let sh
        if (SHEET_NAME == "") {
          //シート名が指定されていない場合は、アクティブなシートに出力する
          sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
        }
        else {
          sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME)
        }
        sh.getRange(DSP_ROW, DSP_CLM, booklist.length, 3).setValues(booklist)
      }
    }
    
    
    
    
    //'HH:mm'に変換する
    function toTime(str) {
      return Utilities.formatDate(str, 'JST', 'HH:mm')
    }

     

    設定方法

    Step1.

    Googleカレンダーを取り込みたいシートを開きます。

    ①「拡張機能」ー「Apps Script」をクリックします。

     

    Step2.

    ①上記「スクリプト」の右上のアイコンをクリックします。
    ※スクリプトがクリップボードにコピーされます。

     

    Step3.

    ①スクリプトエディタの先頭にスクリプトを貼り付け(Ctrl+V)ます。
    ②「(プロジェクトを保存)」をクリックします。

     

    これで、準備完了です。

    試しに実行してみましょう。

    Step4.

    ①「▼」をクリックして「CalendarToSpreadsheet」を選択します。
    ②「実行」をクリックします。
    ③カレンダーに予定があるとログが表示されます。

     

    後は、ボタンに割り当てるかメニューから選択して実行します。

    割り当て方法はこちら↓

    【GAS】GAS(マクロ)を手軽にメニューやボタンから実行する方法(カスタムメニュー)
  • GAS(マクロ)をスプレッドシートのメニューから実行することができます。
  • GAS(マクロ)をボタンのクリックで実行することができます。
  •  

     

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

    つぎはこちら

    Googleカレンダーから明日の予定をスプレッドシートに取り込む
  • JavaScriptで明日を取得する方法がわかります。
  • 明日の予定をスプレッドシートに取り込むことができます。
  • Googleカレンダー関連

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