本記事は、Google Workspace Studio(旧Flows)の実践ノウハウを100本紹介する連載「Google Workspace Studio活用方法100本ノック」の一つとなります。
今回は、毎朝カレンダーを確認する手間を減らし、Google chatのみで予定を確認するのが目的です。
| 難易度 | 初心者向け |
| 実現すること | 毎朝、当日の予定一覧をChatに自動送信 |
| 想定する対象者 | 毎朝カレンダーを確認している人 |
| 利用サービス | Google calender, Google sheets, Google Chat , Gemini |
今回作成する機能では、
今回のエージェントを作成するための前提条件は以下となります。Google Workspace Studioは2025年12月時点ではそれまではFlowsという名前で提供されていたサービスからリネームされたサービスかつまだ提供されて間もないため、このブログの内容が最新ではなくなる可能性があることをご了承ください。
function exportCalendarToSheet() {
// --- 設定 ---
const sheetName = 'シート1'; // データを出力するシート名
const calendarId = 'primary'; // メインのカレンダー ('primary') または特定カレンダーのメールアドレス
// --- 設定終 ---
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName(sheetName);
if (!sheet) {
Logger.log(`エラー: シート名 ${sheetName} が見つかりません。`);
return;
}
// 実行日の日付範囲(本日00:00:00 から 本日 23:59:59)を設定
const today = new Date();
const startOfDay = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0); // 0時0分0秒
const endOfDay = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 23, 59, 59); // 23時59分59秒
// Google Calendar から本日のイベントを取得
const calendar = CalendarApp.getCalendarById(calendarId);
const events = calendar.getEvents(startOfDay, endOfDay);
// データを格納する配列
const data = [];
const now = new Date(); // データ作成日時
// イベント情報から必要なデータを抽出し配列に追加
events.forEach(event => {
// 抽出情報: 予定名, 開始日時, 終了日時
const eventData = [
event.getTitle(),
event.getStartTime(),
event.getEndTime(),
now
];
data.push(eventData);
});
// --- スプレッドシートへの書き込み ---
// 既存のデータをクリア(ヘッダー行は残す)
sheet.getRange(2, 1, sheet.getMaxRows(), sheet.getMaxColumns()).clearContent();
if (data.length > 0) {
// 抽出したデータをシートの2行目以降に書き込む
sheet.getRange(2, 1, data.length, data[0].length).setValues(data);
}
Logger.log(`本日 (${startOfDay.toLocaleDateString()}) の予定 ${data.length} 件をスプレッドシートに書き込みました。`);
}
今回作成したエージェントは4ステップの非常にシンプルな構成となります。
スターターとして平日の8時時点で、スプレッドシートに登録されている予定をChatを通知されます。
各ステップについて詳細を説明します。
毎朝カレンダーを開くことなく、Chatを開くだけでカレンダーに登録されてある予定を確認することができます。
Google Workspace Studioなら、Geminiをフローに含めることができるので関数や様々な抽出コマンドを使用せずプロンプトで自由に抽出できます。
カレンダーチェック・メールの確認・Chatの確認など、毎朝チェックしなければいけないタスクがあると思いますが少しでも効率が上がればよいかなと思います!