Claude CodeとGoogleカレンダーで業務ログを自動化する方法

Googleカレンダー2年分、約1,700件・2,700時間分の予定をClaude Codeに掘らせて、Notionの月次データベースにしました。仕様書もテンプレートも用意していません。投げたのは口語の一文だけで、あとはAIが全部やってくれました。
きっかけは雑な思いつきでした。Claude Codeにカレンダーの閲覧権限を渡してあるのをふと思い出して、これもう全部見れてるんだよなと気づきました。
📘 AI × マーケを体系的に学ぶ → ThinkMove Academy(無料)
なぜカレンダーが最強の業務ログになるのか

日報や業務ログは、書こうと思っても続きません。三日坊主で終わる人の方が多いはずです。でもカレンダーは違います。人と会った予定は、会った瞬間に必ず残ります。書く努力がいらない唯一の業務ログが、誰の手元にも数年分眠っています。
自分の場合、それが2年分、1,700件でした。読み返されないまま溜まっていたそのデータを、AIに渡して並べさせるだけで済むなら、やらない理由がありません。
実際に投げた指示文

Claude Codeに投げた文面をそのまま貼ります。
俺のGoogleカレンダーとかってさ、もう見れてんだよね。って考えるとさ、ここ直近半年ぐらいのアクティビティと、今後の動き方をちょっと提案してほしいんだよね。全部データ取ってきて、どっかNotionになんか綺麗に月次単位でまとめてくんね。
これだけです。仕様書もテンプレートもありません。
追加の注文も同じくらい雑でした。
昔も遡ってほしい。
単発のミーティングで誰と話したかメモ程度に残しておいてほしい。
この2行を足しただけで、過去22ヶ月分の遡りと、月ごとの会った人リストまで出てきました。
環境は、Claude CodeにGoogleカレンダーとNotion CLIを接続しています。集計用のPythonスクリプトはAIが自分で書きました。人間側で用意したのはアクセス権限だけです。
できあがったもの|Notion月次データベースの中身
Notionのページ1枚、その中にデータベースが1個です。1行が1ヶ月に対応します。
列は時間の使い道別に分かれています。業務委託先の稼働、クライアントワーク、商談や交流、登壇、発信、ジム、家族、移動。全部数値の列なので、テーブルの下に合計と月平均が自動で出ます。来月からは同じデータベースに1行足すだけで積み上がっていきます。

各月の行を開くと、中にはその月の主なイベントと会った人メモの2つが入っています。
会った人メモは、単発のミーティングだけを日付つきで並べたものです。定例は除外しています。初回商談や会食など、その月に新しく会った人だけを残します。相手のメールドメインも添えてあるので、あの人どこの会社だったかまで拾えます。

あの人、いつ会ったっけという疑問が、これで消えました。CRMを立てるほどの規模ではありません。かといって記憶だけに頼ると消えてしまいます。その中間を埋める雑さが、自分にはちょうどよかったです。
つまずいた3つのポイントと対処法
きれいには終わりませんでした。つまずきは3つあります。

API取得上限で月次データが欠ける
カレンダー側は1回のリクエストで250件までしか返ってきません。最初に四半期ごとでまとめて取得したところ、9月だけ36件という不自然な数字になっていました。上限に当たって、後半の月が静かに欠けていたということです。月別の件数を並べて初めて気づけました。取得の単位を月ごとに変えて解決しています。
業務委託とクライアント業務の時間重複
業務委託で入っている会社の中でクライアントのMTGもやっているため、稼働ブロックとクライアント時間が二重に数えられます。ここは直していません。二重計上込みで運用しています。
無題の予定が集計を狂わせる
予定あり、移動といった無題ブロックが月90時間ありました。集計の敵は、AIでも仕組みでもなく、過去の自分がつけた雑な予定名でした。
運用は月1回、1行追記するだけ
運用は月初に前月分を1行追記するだけに絞っています。

自動化はまだしていません。2〜3回手で回してフォーマットが固まったら、月次サマリーをSlackに流すところまで自動化する予定です。仕組みを先に作り込むと大体使わなくなります。便利さが確定してから固める、という順番を守っています。
まとめ|カレンダーは書く努力のいらない唯一の業務ログ
カレンダーは書く努力がいらない唯一の業務ログです。ほとんどの人の手元に、もう何年分か眠っているはずです。見るだけでも面白いですw
このデータを元に自分の仕事の移り変わりを見ると、振り返りの精度が変わります。AIに渡して月次で並べさせるだけで済みます。一回やらせてみてください。


