Googleカレンダー×Claude Codeで日報の自動整形を作ってみた——やる前に知っておきたかった3つのこと
はじめに
営業担当の方なら、こんな経験はないでしょうか。顧客訪問の合間に、スマートフォンの音声入力を使って日報メモを残す。「今日は◯◯商事の田中部長と会って、新製品のプレゼンをして…」と話しながらGoogleカレンダーの予定欄にどんどん書き込んでいく。
ところが、いざ翌朝報告書にまとめようとすると読みづらい。音声認識特有の言い回しがそのまま残っていて、結局じっくり読み返さないと使えません。せっかく現場で記録した情報が活かしきれないのです。
この問題を、Claude Codeを使って自動整形ツールを作ることで解決してみました。毎日深夜2時、PCが勝手にその日の日報を読みやすく整形してくれる——そんな仕組みです。翌朝出社したときには、訪問先ごとに項目立てされた日報が出来上がっています。
作ってみて感じたのは、想像していたより簡単な部分と、想像していなかった落とし穴があったということ。本記事では「やる前に知っておきたかった3つのこと」として、中小企業の業務改善のヒントになる学びをお伝えします。
1. 何を作ったのか
架空の営業担当・田中さんを例に、全体像を見ていきましょう。
田中さんは1日に3〜4件の顧客訪問をこなします。訪問の合間に、Googleカレンダーの「日報」専用カレンダーに音声入力で記録を残します。詳細欄にはあらかじめ「①訪問先②日時③担当者④目的⑤内容⑥成果」というプレースホルダーを置いておき、話したまま流し込みます。1日分の訪問をまとめて1イベントに記録するスタイルです。
このままでは読みづらいので、深夜の自動処理でClaude(AI)が一括で整形します。タイトルにはその日の要約、詳細には訪問先ごとに項目立てした形で書き戻します。さらにExcelファイルにバックアップとして全件を保存しておきます。
| 役割 | スクリプト | AIの利用 |
|---|---|---|
| カレンダー全件をExcelに書き出し | export_all.py | 使わない |
| 当日分をAIで整形 | daily_update.py | 1回だけ呼ぶ |
| 整形結果をカレンダーに反映 | batch_update.py | 使わない |
この3層構造こそ、今回一番お伝えしたいポイントです。後ほど詳しくご説明します。
2. やる前に知っておきたかったこと① コネクタ接続は思ったより簡単
「Googleカレンダーと連携するツールを自作する」と聞くと、APIキーの取得、OAuth認証、トークン管理など、技術的なハードルを想像する方が多いと思います。私もそうでした。
ところが、Claude CodeにはMCP(Model Context Protocol: 生成AIが他のサービスと連携するための仕組み)コネクタという仕組みがあり、Googleカレンダーは設定画面から数クリックで接続できてしまいます。Googleアカウントでログインして許可を出すだけ。従来Python(プログラム言語)で自前実装すると100行以上書いていた認証部分が、設定で済んでしまうわけです。
もちろん最終的な運用スクリプト(深夜に自動実行する部分)では、Pythonから直接Google Calendar APIを叩くコードを(Claude Codeが)書きました。ただし最初の試行錯誤の段階ではMCP経由で接続できるので、「動くかどうか」を確かめるまでのスピード感がまったく違います。
「自分には技術的に無理」と思っていた壁が、実は数年前と比べて大きく低くなっている——これが最初の発見でした。
3. やる前に知っておきたかったこと② CLAUDE.mdはClaudeが書いてくれる
Claude Codeで作業すると、プロジェクトフォルダに CLAUDE.md というファイルが置かれます。これはプロジェクトの仕様書兼運用マニュアルにあたるもので、次回以降Claude Codeを起動したときに自動で読み込まれます。
「仕様書を書くのは大変そう」と思うかもしれませんが、心配は要りません。Claudeと対話しながら作業を進めていくと、Claude自身が必要なルールを書き留めてくれるのです。
たとえば私のCLAUDE.mdには、こんな一節があります。
## ⚠️ 上書き禁止ルール(絶対厳守)
詳細に実データが入っている場合は、上書きしない
(整形済みと判断してスキップ)。
| カレンダーの状態 | 判断 | 処理 |
|--------------------|--------|-----------|
| 詳細に実データあり | 整形済み | スキップ |
| 詳細がプレースホルダー | 未整形 | 処理する |
このルールは、一度整形した日報をうっかり再整形して上書きしてしまう事故を防ぐためのものです。実はこれは最初のテストでClaudeが上書きをしてしまったので、Claudeに、「上書きしないルールを設けて明文化して」と依頼したところ、CLAUDE.mdに書き留められました。
このルールは実際のスクリプトにも実装されています。
def is_placeholder(text: str) -> bool:
"""テキストが未記入のプレースホルダーかどうかを判定する"""
if not text:
return True
t = text.strip()
return t == '' or t == '①訪問先②日時③担当者④目的⑤内容⑥成果'
カレンダー更新の直前に必ずこの判定を入れることで、人間が手動で何かを書き加えた日報を絶対に上書きしない安全装置になっています。
これは業務マニュアル作成の発想そのものです。手順だけでなく「何を守るのか」を明文化する。この部分をAIと対話しながら整理できる時代になったというのは、大きな変化だと感じます。
4. やる前に知っておきたかったこと③ MCPはトークンを食う、だから3層に分けた
ここが一番大きな学びでした。そして、この章で一番お伝えしたいのは「3層構造を考えたのは私ではなくClaudeだ」ということです。
最初、私はMCP経由でGoogleカレンダーの全件を取得し、そのままClaudeに整形させて書き戻すというシンプルな構成で作ろうとしました。コネクタ接続が簡単なので、「これで全部いけるじゃないか」と思ったわけです。
ところが、MCPで大量のカレンダーデータを取得すると、その全データがClaudeのコンテキスト(会話履歴)に流れ込みます。1日分の日報が数百文字あって、それが数十日分あれば数万文字。これだけでトークン消費がかなり大きくなる(つまり料金がたくさんかかる)ことに気づきました。
このとき私がClaudeに伝えたのは、たった一言です。
「トークンをあまり消費しない方法を考えてほしい」
すると Claudeから返ってきたのが、まさに今の3層構造の提案でした。「全件のExcel書き出しはAIを使わずGoogle Calendar APIを直接叩きましょう」「整形はAPIを1回だけ呼んで、複数件まとめて処理しましょう」「カレンダーへの書き戻しもAIなしでできます」——そういう設計を、Claudeが筋道立てて説明してくれたのです。
具体的に出来上がったのはこんな構成です。
第1層: トークンを使わない処理(export_all.py)
カレンダー全件のExcel書き出しは、Google Calendar APIを直接Pythonから叩きます。Claudeを介さないのでトークン消費はゼロ。バックアップ用途として動かすだけなのでこれで十分です。
第2層: AIを使うがコストを最小化する処理(daily_update.py)
日次の整形だけはClaudeの判断力が必要なので、Anthropic APIを呼びます。ただし1日分(訪問複数件を含む)を1回のAPI呼び出しでまとめて整形します。さらにシステムプロンプトにはプロンプトキャッシングというものを効かせて、毎日同じ説明を繰り返す分のトークンを節約してくれるようです。
message = client.messages.create(
model='claude-haiku-4-5',
system=[{
'type': 'text',
'text': SYSTEM_PROMPT,
'cache_control': {'type': 'ephemeral'}, # キャッシング
}],
messages=[{'role': 'user', 'content': events_json}]
)
第3層: AIを使わない反映処理(batch_update.py)
整形結果をカレンダーに書き戻す処理は機械的なAPI呼び出しなので、ここもAIを使いません。
ここで重要なのは、この3つの切り分けを私が思いついたわけではないということです。私が持っていたのは「コストを抑えたい」という問題意識(メタ認知)だけ。それを伝えただけで、Claudeが具体的な設計を考えてくれました。
つまり、作り手に必要なのは技術力ではなく「何を気にするべきか」の感覚なのです。「これってお金かかりすぎじゃない?」「これって誤動作したら困るよね」——そういう問題意識さえあれば、細かい解決策はClaudeが考えてくれます。
ちなみに整形は、Windowsのタスクスケジューラに登録して毎日深夜2時に自動実行しています。StartWhenAvailable というオプションを設定しておくと、その時刻にPCが起動していなくても、次に起動したときに取りこぼさず実行してくれます。「日中は触らない、勝手に整形される」という運用が成立しているわけです。
まとめ——メタ認知さえあれば、あとはClaudeが考えてくれる
実際に作ってみて、「やる前に知っておきたかった」3つのことを整理します。
- コネクタ接続は思ったより簡単——MCPで数クリックでつながる時代になっています。技術的なハードルで諦める必要はありません。
- CLAUDE.mdはClaudeが書いてくれる——仕様書や運用ルールも、対話しながら自然と整理されていきます。「何を守るか」を一緒に考えるパートナーになります。
- MCPはトークンを食うので工夫が要る——ただし、その工夫もClaudeが考えてくれます。「コストを抑えて」と一言伝えるだけで、3層構造のような設計を提案してくれました。
3つを通じて見えてくるのは、作り手に求められるのは細かい技術知識ではなく、「何を気にするか」というメタ認知だということです。
「これは自動化したいな」「これはコストが心配だな」「これは事故ったら困るな」——そういう感覚さえあれば、具体的な解決策はClaudeが提案してくれます。中小企業の経営者や業務担当者の方こそ、自社の業務で「何が大事か」を一番分かっているはず。その感覚があれば、AI活用は思ったよりもずっと身近です。
もちろん、いきなり本番データで試すのはおすすめしません。今回の私のケースでもExcelに全件バックアップを取る仕組みを最初に作りました。データさえ守れていれば、あとは安心していろいろ試せます。
「自分の業務でも何か作れないかな」と少しでも思った方は、まずデータをバックアップする仕組みを用意した上で、Claude Codeに気軽に話しかけてみてください。きっと、想像していなかった発見があるはずです。

