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

スプレッドシートからGoogleカレンダーに予定を流し込む(インポート、連携する)方法

スプレッドシートから予定を入力する方法「全体像」

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

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

前回

スプレッドシートからGoogleカレンダーに予定を登録する方法(GAS)
  • スプレッドシートからGoogleカレンダーに終日の予定を追加できます。
  • マクロの基本的な使い方がわかります。
  • スプレッドシートから予定の削除もできます。
  • 今回は、とっても価値の高い方法をお伝えします。


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


    逆に、知らないと

    Googleカレンダーにチマチマと予定を1つずつ
    入力するという、なんとも残念な作業が永遠に続きます。

    せっかく便利なGoogleカレンダーを使っているのに
    残念な作業をしていたのでは、本末転倒です。

    さくっと、スプレッドシートから予定を流し込み
    こんな感じで答えてあげてください。

     

    では、マインドセットします。

    マインドセット
    Googleカレンダーにまとまった予定を
    1つずつ入れたら負け

     

    Googleカレンダーに予定をまとめて入力する際は、
    ぜひ、スプレッドシートから入力して連携させてください。

    以下のように入力するだけで


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

    こんなふうにGoogleカレンダーに
    展開されます。

     

     

    では、動画をご覧ください。

     

    さらに簡単にできる方法がこちらです。

     

     

     

     

    動画はこちら

     

    スクリプト

    /**
     * Googleカレンダーに予定を追加する
     */
    function CreateSchedule() {
    
      // googleカレンダーの取得
      const calendar = CalendarApp.getDefaultCalendar()
    
      // 読み取り範囲(表の始まり行と終わり列)
      const topRow = 2
      const lastCol = 7
      const statusCellCol = 1
    
      // 予定の一覧バッファ内の列(0始まり)
      const statusNum = 0
      const dayNum = 1
      const startNum = 2
      const endNum = 3
      const titleNum = 4
      const locationNum = 5
      const descriptionNum = 6
    
      // シートを取得
      const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
    
      // 予定の最終行を取得
      let lastRow = sheet.getLastRow()
    
      //予定の一覧をバッファに取得
      const contents = sheet.getRange(topRow, 1, sheet.getLastRow(), lastCol).getValues()
    
      //順に予定を作成
      for (let i = 0; i <= lastRow - topRow; i++) {
    
        //「済」の場合は無視する
        if (contents[i][statusNum] === "済") {
          continue
        }
    
        // 値をセット 日時はフォーマットして保持
        let day = contents[i][dayNum]
        let startTime = contents[i][startNum]
        let endTime = contents[i][endNum]
        let title = contents[i][titleNum]
    
        // 場所と詳細をセット
        let options = { location: contents[i][locationNum], description: contents[i][descriptionNum] }
    
        console.log(day + " " + contents[i][titleNum])
    
        try {
          // 開始終了時刻が無ければ終日で設定
          if (startTime == '' || endTime == '') {
            //予定を作成
            calendar.createAllDayEvent(
              title,
              day,
              options
            )
    
            // 開始終了時刻があれば範囲で設定
          } else {
            // 開始日時を作成
            let startDate = new Date(day)
            startDate.setHours(startTime.getHours())
            startDate.setMinutes(startTime.getMinutes())
    
            // 終了日時を作成
            let endDate = new Date(day)
            endDate.setHours(endTime.getHours())
            endDate.setMinutes(endTime.getMinutes())
    
            // 予定を作成
            calendar.createEvent(
              title,
              startDate,
              endDate,
              options
            )
          }
    
          //予定が作成されたら「済」にする
          sheet.getRange(topRow + i, statusCellCol).setValue("済")
    
          // エラーの場合ログ出力する
        } catch (e) {
          Logger.log(e)
        }
      }
    
      // 完了通知
      Browser.msgBox("予定を追加しました。")
    }
    

     

     

    今回のGoogleシートマスターへの究極の方法です。

    Step1.
    Googleカレンダーを開く

    Step2.

    サンプルシートを開き
    https://technical.verybestcbp.com/e6x1
    シートをコピーする

    Step3.
    スクリプトをコピペする

    Step4.

    予定を書き換え実行する

     

    早速、Googleカレンダーを
    開いてください。

    今すぐです。

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

     

    このスクリプトを自動的に起動したい場合はこちら

    スプレッドシートに書いた予定が自動的にGoogleカレンダーに反映される方法
  • GASを定期的に動作させる方法がわかります。
  • スプレッドシートに予定を書いておくと自動的にGoogleカレンダーに 反映されるようになります。
  •  

     

     

    さらに色の追加やカレンダーを指定したい場合はこちら

    スプレッドシートからGoogleカレンダーに予定を流し込む(インポートする)方法2(色、カレンダーの指定あり)
  • GASがわからなくてもスプレッドシートからGoogleカレンダーに予定を追加する仕組みを作ることができます。
  • 色の指定やカレンダーを指定することができます。
  • スクリプトの登録方法がわかります。
  • スクリプトの中身について知りたい場合はこちら

    スプレッドシートから予定を入力する方法「全体像」

    Googleカレンダー関連

     

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