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

Googleカレンダー

質問対応の一覧
Googleカレンダー関連

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

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

前回

Googleカレンダーから今日の予定をGoogleスプレッドシートに取り込む
  • 今日の予定をスプレッドシートに取り込むことができます。
  • GASをスプレッドシートから実行する方法がわかります。
  • 今回は、とっても価値の高い方法をお伝えします。


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

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

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

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

     

    いただいたご質問

    動画はこちら

     

    シートはこちら


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

     

    スクリプト

     

    明日の取得方法
    //明日の取得
    function getnextdate(){
    
    
      let newdate = new Date()  //今日の取得
      console.log(newdate)
      
      newdate.setDate( newdate.getDate()+1) //明日を取得しセット
      console.log(newdate)
    
    
    }

     

    明日の予定を取得する
    /**
     * 明日の予定を取得する
     */
    function getNextdayEvents(){
         let newdate = new Date()  //今日の取得
      console.log(newdate)
      
      newdate.setDate( newdate.getDate()+1) //明日を取得しセット
      console.log(newdate)
      CalendarToSpreadsheet2(newdate)
    
    
    }
    
    
    /**
     * 今日の予定を取得する
     */
    function getTodayEvents(){
      CalendarToSpreadsheet2( new Date())
    
    
    }
    
    
    /**
     * 指定された日の予定をスプレッドシートに取り込む
     * newdate 取得する日
     */
    function CalendarToSpreadsheet2(newdate) {
    
    
    
      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(newdate) //★newdateの予定が取得される
    
    
    
        //カレンダー名を取得する
        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')
    }

    設定方法

    設定方法はこちら↓

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

     

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

    つぎはこちら

    【GAS】Googleカレンダー 日付をまたいで予定を登録する方法
    GASからGoogleカレンダーに終日の予定を作成することができます。 日付をまたいで指定することができます。

    Googleカレンダー関連

    コメント

    タイトルとURLをコピーしました