7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【失敗 / GASで代替】Google Workspace Studioでカレンダーから日報を作ることができるのか・・?

7
Last updated at Posted at 2026-07-12

ノーコードツールのGoogle Workspace Studioを活用し、自身の行動履歴から日報の下書きを自動生成する仕組みを作ってみました!

構築手順は以下の通りです。
プログラミングの知識を持たない非エンジニアでも、既存のGoogleサービスを連携させることで意外と簡単にできました。

Google Workspace Studioとは

Google Workspace Studioは、日本語による指示でGoogle Workspace内の様々なアプリケーション(Gmail、カレンダー、スプレッドシートなど)を連携し、自動化ワークフローを構築できるツールです。

以下でも活用した記事を書いたので良かったら見てください!

構築するワークフローの全体像

今回構築するプロセスは以下の通りです。

  1. トリガー設定:毎日17:00に自動でワークフローを起動する
  2. データ取得(予定):本日のGoogle カレンダーのイベント情報を取得する
  3. データ取得(タスク):Google ToDoリストの「本日完了したタスク」を取得する
  4. Geminiで処理:取得した予定とタスクのデータをGeminiに渡し、指定した日報フォーマットへ変換する
  5. 出力:変換されたテキストを、Gmailの「下書き」として保存する

できない。。

なんとカレンダーから引っ張ってくるということができませんでした。。
とはいえあきらめず他の方法で解決できないか、模索してみます。

まとめ

解決方法が出来次第、更新しますのでお待ちください・・!

追記:GAS(Google Apps Script)でならちょっとできた

Geminiに相談したところ、GASであればある程度実行可能ということでした。
下記にてアウトプットをまとめます。

構築手順:GASを用いた日報下書きの自動生成

ステップ1:Google Apps Scriptを開く

  1. ブラウザで Google Apps Script にアクセスします。
  2. 画面左上の [+ 新しいプロジェクト] をクリックします。
  3. 左上の「無題のプロジェクト」をクリックし、日報自動生成ワークフロー と名前を変更します。

ステップ2:コードを貼り付ける

  1. エディタに元から入力されているコード(function myFunction() { ... })をすべて消去します。
  2. 以下のコードをコピーして貼り付けます。
function createDailyReportDraft() {
  // 1. 今日の日付を取得し、検索範囲を設定
  const today = new Date();
  const startTime = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0);
  const endTime = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 23, 59, 59);

  // 2. デフォルトのカレンダーから今日の予定を取得
  const calendar = CalendarApp.getDefaultCalendar();
  const events = calendar.getEvents(startTime, endTime);

  // 3. 予定のタイトルを箇条書きリストに変換
  let eventList = "";
  if (events.length > 0) {
    for (let i = 0; i < events.length; i++) {
      eventList += "- " + events[i].getTitle() + "\n";
    }
  } else {
    eventList = "- 特になし\n";
  }

  // 4. ご指定のマークダウンフォーマット(HTMLタグ含む)を作成
  const reportBody = 
    "## やったこと\n" +
    eventList + "\n" +
    "## 明日やること\n\n\n" +
    "## Bad\n\n\n" +
    "## Good\n\n\n" +
    "## 所感・連絡事項\n\n\n" +

  // 5. Gmailの下書きを作成(件名に今日の日付を付与)
  const formattedDate = Utilities.formatDate(today, "JST", "yyyy/MM/dd");
  const subject = "【日報】" + formattedDate + " 自分の名前";
  
  // GmailApp.createDraft(宛先, 件名, 本文) ※宛先は空欄としています
  GmailApp.createDraft("", subject, reportBody);
}
  1. 貼り付けたら、画面上部の 保存アイコン(フロッピーディスクのマーク) をクリックします。

ステップ3:初回実行と権限の承認

GASがご自身のカレンダーやGmailにアクセスするための許可を与えます。この作業は最初の一度だけ必要です。

1.画面上部の [実行] ボタンをクリックします。
2.「承認が必要です」というポップアップが出たら [権限を確認] をクリックします。
3.ご自身のGoogleアカウントを選択します。
4.「このアプリは Google で確認されていません」という警告が出た場合、左下の [詳細] をクリックし、[日報自動生成ワークフロー(安全ではないページ)に移動] をクリックします。
5. アクセス権のリクエスト画面で [許可] をクリックします。

動作確認しましょう!

実行が完了すると、ご自身のGmailの「下書き」フォルダに、カレンダーの予定が反映された指定フォーマットの下書きが作成されます。ぜひ確認してみてください!

ステップ4:自動実行(トリガー)の設定

毎日指定した時刻に、このスクリプトが自動で動くように設定します。

  1. 画面左側のメニューにある 時計のアイコン(トリガー) をクリックします。
  2. 画面右下の [+ トリガーを追加] をクリックします。
  3. 以下の通りに設定します。
    • 実行する関数を選択: createDailyReportDraft
    • 実行するデプロイを選択: Head
    • イベントのソースを選択: 時間主導型
    • 時間ベースのトリガーのタイプを選択: 日付ベースのタイマー
    • 時刻を選択: 午後 5 時~午後 6 時 (※17時台に実行される設定です。ご自身の業務終了時間に合わせて任意の時間帯に変更可能です)
  4. [保存] をクリックします。

まとめ②

ちょっと物足りないですが、なんとか形にはなりました。
ただ実用面で言うと今一つな印象です。
(Gmailに飛ばさなくても別タブに開くとかもできると思うので)

もっとAIを活用してより完成度の高い構築をしていけるよう、インプット頑張りたいです!

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?