はじめに
Google カレンダーを日々利用していると、過去の予定を一覧で確認したくなることがあります。
また、定期的にカレンダーのデータをバックアップできると、万が一のデータ消失に備えられますよね。
そこで、Google Apps Script(GAS)を使って、Google カレンダーの予定をスプレッドシートに自動記録するスクリプトを作成しました。
このスクリプトを使えば、カレンダーの予定を一覧で管理したり、過去の記録を簡単に振り返ることができます。
スクリプトの概要
このスクリプトは以下の処理を行います。
- Google カレンダーの予定を取得
- スプレッドシートに予定のタイトル、開始時刻、終了時刻、場所、説明を記録
- 毎日自動で実行するように設定可能
スクリプトのコード
以下のコードを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カレンダーの予定をスプレッドシートにバックアップしました。");
}
スクリプトの説明
backupCalendarEvents()
- Google カレンダーのデフォルトカレンダーを取得
- 今日から1週間分の予定を取得
- スプレッドシートにタイトル、開始時刻、終了時刻、場所、説明を記録
使い方
- Google スプレッドシートを作成
- Google スプレッドシートを開く
- 「拡張機能」→「Apps Script」を開く
- スクリプトを設定
- 上記のコードを貼り付けて保存
- スクリプトを実行
- Apps Script のエディタで
backupCalendarEvents()
を実行
- Apps Script のエディタで
- スプレッドシートを確認
- 予定が記録されていることを確認
スケジュール実行(自動更新)
毎日自動で予定を記録する場合は、トリガーを設定します。
- Google Apps Script のエディタで「編集」→「現在のプロジェクトのトリガー」を開く
- 「トリガーを追加」ボタンを押す
- 関数を
backupCalendarEvents
に設定 - 実行タイミングを「時間主導型」にして、1日ごとに実行
応用:特定のカレンダーを指定する
デフォルト以外のカレンダーをバックアップしたい場合、以下のようにカレンダーIDを指定してください。
var calendarId = "your-calendar-id@example.com";
var calendar = CalendarApp.getCalendarById(calendarId);
カレンダーIDは、Google カレンダーの「設定」→「カレンダーの統合」から確認できます。
おわりに
このスクリプトを使えば、Google カレンダーの予定をスプレッドシートに自動記録し、過去の予定管理が簡単にできます。
スケジュール管理や業務の記録などに活用してみてください!
コメントを書く