Google Apps Scriptで定期的にGoogleカレンダーの予定をスプレッドシートにバックアップする方法

NO IMAGE

はじめに

Google カレンダーを日々利用していると、過去の予定を一覧で確認したくなることがあります。
また、定期的にカレンダーのデータをバックアップできると、万が一のデータ消失に備えられますよね。

そこで、Google Apps Script(GAS)を使って、Google カレンダーの予定をスプレッドシートに自動記録するスクリプトを作成しました。
このスクリプトを使えば、カレンダーの予定を一覧で管理したり、過去の記録を簡単に振り返ることができます。

スクリプトの概要

このスクリプトは以下の処理を行います。

  1. Google カレンダーの予定を取得
  2. スプレッドシートに予定のタイトル、開始時刻、終了時刻、場所、説明を記録
  3. 毎日自動で実行するように設定可能

スクリプトのコード

以下のコードをGoogle Apps Scriptのエディタに貼り付けてください。

function backupCalendarEvents() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var calendar = CalendarApp.getDefaultCalendar();
  var now = new Date();
  var startDate = new Date(now.getFullYear(), now.getMonth(), now.getDate()); // 今日の0時
  var endDate = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 7); // 1週間分取得
  
  var events = calendar.getEvents(startDate, endDate);
  
  // ヘッダー行がなければ追加
  if (sheet.getLastRow() === 0) {
    sheet.appendRow(["取得日時", "タイトル", "開始時刻", "終了時刻", "場所", "説明"]);
  }
  
  events.forEach(event => {
    var title = event.getTitle();
    var startTime = event.getStartTime();
    var endTime = event.getEndTime();
    var location = event.getLocation() || "なし";
    var description = event.getDescription() || "なし";
    
    sheet.appendRow([now, title, startTime, endTime, location, description]);
  });
  
  Logger.log("Googleカレンダーの予定をスプレッドシートにバックアップしました。");
}

スクリプトの説明

  1. backupCalendarEvents()
    • Google カレンダーのデフォルトカレンダーを取得
    • 今日から1週間分の予定を取得
    • スプレッドシートにタイトル、開始時刻、終了時刻、場所、説明を記録

使い方

  1. Google スプレッドシートを作成
    • Google スプレッドシートを開く
    • 「拡張機能」→「Apps Script」を開く
  2. スクリプトを設定
    • 上記のコードを貼り付けて保存
  3. スクリプトを実行
    • Apps Script のエディタで backupCalendarEvents() を実行
  4. スプレッドシートを確認
    • 予定が記録されていることを確認

スケジュール実行(自動更新)

毎日自動で予定を記録する場合は、トリガーを設定します。

  1. Google Apps Script のエディタで「編集」→「現在のプロジェクトのトリガー」を開く
  2. 「トリガーを追加」ボタンを押す
  3. 関数を backupCalendarEvents に設定
  4. 実行タイミングを「時間主導型」にして、1日ごとに実行

応用:特定のカレンダーを指定する

デフォルト以外のカレンダーをバックアップしたい場合、以下のようにカレンダーIDを指定してください。

var calendarId = "your-calendar-id@example.com"; 
var calendar = CalendarApp.getCalendarById(calendarId);

カレンダーIDは、Google カレンダーの「設定」→「カレンダーの統合」から確認できます。

おわりに

このスクリプトを使えば、Google カレンダーの予定をスプレッドシートに自動記録し、過去の予定管理が簡単にできます。
スケジュール管理や業務の記録などに活用してみてください!

GASカテゴリの最新記事