Google カレンダーに記録された赤ちゃんのお世話ログ(おむつ替え・授乳など)を Google スプレッドシートへ自動集計する Apps Script プロジェクトです。抽出したデータをカテゴリ別に整形し、日別・月別サマリや可視化グラフをワンクリックで生成できます。さらに、授乳(ミルク)タイムの定期予定を自動で作成・削除するユーティリティも用意しています。
- 📥 イベント抽出: 指定した共有カレンダーから過去〜未来のイベントを取得し、カテゴリ判定(うんち/しっこ/両方)とミルク実績(ml)を解析します。
- 🧹 データ整形: 取得したイベントを
baby_logsシートへ書き込み、授乳イベントには自動でミルク量(ml)列を付与。ヘッダー固定・フィルタ・自動列調整も実施します。 - 📊 集計 & グラフ:
baby_summaryシートに日別・月別テーブルとグラフ 5 種(直近 30 日の積み上げ棒、月別棒、カテゴリ内訳円グラフ、ミルク日別/月別棒グラフ)を生成します。 - 🍼 ミルクタイム支援: 毎日 8 本のミルクタイム定期予定を作成/削除するメニューを提供。リマインダーや色設定も自動化。
- ⚙️ カスタマイズ容易な設定:
config.gsに主要パラメータを集約。カレンダー ID やキーワード、タイムゾーンなどを一元管理できます。
- Google スプレッドシートを作成し、メニュー「拡張機能」→「Apps Script」を開きます。
- 既存ファイルを削除し、このリポジトリの
.gsファイルとappsscript.jsonをコピーして貼り付けます。 config.gsのSETTINGS.CALENDAR_IDSを使用したい共有カレンダー ID に書き換えます。- 秘密の ics URL や
cid=付き URL を貼り付けても自動で正規化されます。 primaryを含めると個人カレンダーの予定が混ざるため推奨しません。
- 秘密の ics URL や
- 必要に応じて取得期間(
DAYS_BACK/DAYS_AHEAD)やカテゴリキーワードを調整します。 - スクリプトを保存し、
extractBabyLogsを初回実行して権限を付与します。 - スプレッドシートに
baby_logsシートが生成され、抽出結果が表示されます。
スプレッドシートを開くと、メニューに以下が追加されます。
- 👶 Baby Logs
- 抽出 → 集計 → グラフ(全部やる):
runAll()を実行し、イベント取得から集計まで一気に処理。 - データ抽出のみ(カレンダー → baby_logs):
extractBabyLogs()のみ実行。 - 集計&グラフのみ(baby_summary 更新):
aggregateAndChart()のみ実行。
- 抽出 → 集計 → グラフ(全部やる):
- 🍼 Milk Setup
- ミルクタイム定期予定を作成:
setupMilkTime()を実行し、毎日 8 本の定期予定を作成。 - ミルクタイム定期予定を削除:
deleteMilkTimeSeries()を実行し、タイトルが🍼ミルクタイムから始まる定期予定・単発予定を削除。
- ミルクタイム定期予定を作成:
| ファイル | 役割 |
|---|---|
config.gs |
カレンダー ID やミルクタイム設定を含むグローバル設定。 |
utils.gs |
ログ出力・日付/テキスト処理・シート操作などの共通ユーティリティ。 |
extraction.gs |
カレンダーイベントを抽出し baby_logs シートへ書き込むメイン処理。 |
aggregation.gs |
日別・月別集計とグラフ生成 (runAll / aggregateAndChart)。 |
milkSetup.gs |
ミルクタイム定期予定の作成・削除ユーティリティ。 |
menus.gs |
スプレッドシート起動時にメニューを追加。 |
appsscript.json |
Apps Script プロジェクト設定(タイムゾーン、ランタイム等)。 |
- 毎朝自動更新したい場合は
createDailyTrigger()を一度実行してください。以後、午前 7 時にextractBabyLogsが実行されます。 - GAS のトリガーはスクリプトエディタの「トリガー」メニューから確認・削除できます。
- カテゴリ判定を増やしたい場合は、
utils.gsのdetectCategoryを拡張するか、タイトル分類ロジックを変更してください。 - シート名を変更した場合は
config.gsのSHEET_NAMEとSUMMARY_SHEETを合わせて更新します。 - ミルクタイムの本数や時間帯を変える場合は
MILK_SERIES_SETTINGSの各値を調整します。
このプロジェクトは MIT License で提供されています。自由にカスタマイズしてご利用ください。