Googleカレンダーの予定を自動でスプレッドシートに記録する方法
※この記事は以下の記事になります。ぜひこちらの記事もご覧ください。
Googleカレンダーの予定を自動記録!スプレッドシートに毎日出力する方法
毎日の予定、手書きでまとめていませんか?
Googleカレンダーに入れた予定を、あとから集計したりレポートに使ったりしたい。でも、いちいち手でスプレッドシートに転記するのは大変……。そんなときに便利なのが、予定を自動でスプレッドシートに記録する仕組みです。
実はこの仕組み、Googleが提供する無料ツール「Google Apps Script(GAS)」だけで実現可能。しかも一度設定してしまえば、あとは毎日勝手に予定が記録されていきます。
この記事では、「今日の予定を毎日スプレッドシートに保存する仕組み」を、ITに詳しくない方でもすぐに始められるよう、図やコード付きでわかりやすく解説します。
こんなシーンでの活用に適しています
① カレンダーに書いた予定を、勤務実績や報告書に使いたい
→ 会議・訪問・作業予定などをそのままExcelとして出力できます。
② 日報や勤怠報告を簡単にしたい
→ カレンダーを書くだけで、自動的にスプレッドシートに記録されます。
③ 顧客との面談・打ち合わせをまとめて集計したい
→ スプレッドシートで並べ替えや集計もラクラク。
Notion × Slack
メリット
毎日の予定を自動で記録。手作業ゼロで転記ミス防止
予定の開始・終了時刻/タイトル/場所/メモまで自動取得
完全無料&一度設定すれば放置でOK
デメリット
最初にGASのコードをコピペして設定する必要あり
共有カレンダーを使う場合はカレンダーIDの指定が必要
難易度・面倒さ
プログラミング経験ゼロでも大丈夫
コードはそのままコピペ、時間トリガーの設定も画面クリックだけ
所要時間は初回20〜30分程度
特徴
スプレッドシートに記録された予定は、自由に加工・印刷・共有が可能
GASによる自動化なので、外部サービス不要で安定稼働
時間帯や件名などを使って、フィルターや集計にも応用しやすい
価格
Googleカレンダー:無料
Googleスプレッドシート:無料
Google Apps Script(GAS):無料
用意するもの
① Googleカレンダー(予定を入れているGoogleアカウント)
② Googleスプレッドシート(空のファイルを作成しておく)
③ Google Apps Script(スプレッドシートから「拡張機能」→「Apps Script」でOK)
設定手順
🔹Step 1:記録用のスプレッドシートを作成する
1.Googleスプレッドシートを開き、「新しいスプレッドシート」を作成します
2.シートの1行目(ヘッダー行)に、以下のような列を入力します
・開始日時|終了日時|タイトル|場所|メモ

🔹Step 2:スクリプトエディタを開き、コードを追加する
1.スプレッドシート上部の「拡張機能」→「Apps Script」をクリックします

2.エディタ画面が開いたら、最初からあるコードをすべて削除して、以下のコードを貼り付けます
function exportCalendarEventsToSheet() {
const calendarId = 'primary'; // 通常は「primary」でOK(他カレンダーの場合はID指定)
const calendar = CalendarApp.getCalendarById(calendarId);
const today = new Date();
const startTime = new Date(today.getFullYear(), today.getMonth(), today.getDate());
const endTime = new Date(today.getFullYear(), today.getMonth(), today.getDate() + 1);
const events = calendar.getEvents(startTime, endTime);
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.clearContents(); // 毎回上書きする場合(追記したい場合は削除してもOK)
sheet.appendRow(["開始日時", "終了日時", "タイトル", "場所", "メモ"]);
events.forEach(function(event) {
sheet.appendRow([
event.getStartTime(),
event.getEndTime(),
event.getTitle(),
event.getLocation(),
event.getDescription()
]);
});
}🔹Step 3:実行確認とアクセス許可を行う
1.エディタ上で「関数を選択」から exportCalendarEventsToSheet を選び、「▶ 実行」ボタンをクリックします

2.「承認が必要です」という画面が出たら、「続行」をクリックし、Googleアカウントを選びます
3.「このアプリは確認されていません」という警告が出る場合は「詳細」→「プロジェクト名に移動」をクリック
4.「許可」をクリックして実行を完了させます
→ これで一度手動実行され、シートに今日の予定が出力されていればOKです

🔹Step 4:毎日自動で動くようにトリガーを設定する
1.Apps Scriptの画面左側にある「トリガー」をクリックします
2.「+トリガーを追加」ボタンをクリックし、以下のように設定します
実行する関数:exportCalendarEventsToSheet
実行タイミング:時間主導型
時間の種類:日付ベースのタイマー
時刻帯:午前3時~4時など任意の時間帯を選択

3.「保存」をクリックして設定完了。これで毎日自動的に予定が出力されるようになります
※お好きな時間帯にトリガー設定することで、毎日決まった時間にその日の予定が出力されます!
よくある質問
GASの無料枠で制限はありますか?
Google Apps Scriptは基本的に無料で使えます。
毎日1回予定を取得してスプレッドシートに書き出すくらいであれば、制限を気にせず使って大丈夫です。
もし何千件もの予定を一気に処理する、というような使い方をしない限り、普段の業務で困ることはまずありません。
複数日分を一括で出力することはできますか?
コードの中にある「開始日時(startTime)」と「終了日時(endTime)」の範囲を広げてあげるだけで、昨日・今日・明日や、1週間分の予定もまとめて出力できます。
応用として、週次レポートに使いたい…という場合にも対応可能です。
スプレッドシートの内容を毎回上書きせず、追記にしたいです
記事内のコードでは「毎日上書きする」前提でsheet.clearContents();という行が入っていますが、そこを削除すれば毎日下に追記していく形に変えられます。
日付ごとにデータがどんどん溜まっていく形なので、後からフィルターや検索で活用したい人にはおすすめです。
