
ChatGPTで給食献立のPDFからGoogleカレンダーに入力してみた
(2024.12追記)PDFの表を直接ChatGPTに読ませると失敗することが多いので、一度CSVに落としてからやる方法に変えました。
ChatGPT無料プラン内で可。
保育園から毎月とても丁寧な献立表PDFが送られてくるのだけど、もらった時に未食の食材チェックをするくらいで、うまく活用できていなかった。
で、カレーの日に白い服を着せていったりして(汚れてもOKなんだけど)、夕方に引き上げた服を見て「やってもた」感。メニューは把握しておきたい。
毎朝見る方法
スケジュール管理はGoogleカレンダーで毎朝通知する設定にしているので、ここに給食献立も足したい。
とはいえPDFを毎月手で入れるのは大変。ChatGPTにPDFを読ませて、カレンダー入力可能な形式で生成させたらよくない?というわけでやったのが以下。
やりたいこと
通わせている保育園の献立表は概ねこんな感じ。
★2024年7月献立表★

他にはエネルギー、たんぱく質、脂質、食塩なども記載されている。
カレンダーには簡潔に
朝のおやつ
・牛乳
・きなこビスケット
昼食
・ごはん
・鶏肉と卵のいためもの
・ほうれん草と豆腐のスープ
・かぼちゃと豆のサラダ
・りんご
午後のおやつ
・牛乳
・にんじん蒸しパン
のような形で入れたい。
ChatGPT
ChatGPTは2024年7月現在、制限はあるものの(※使い切っても大体24時間すると使えるようになる)無料でもPDFのアップロードと解析ができるので、できるだけ一回で処理できるように工夫してみます。
PDFの表をそのまま読ませるとうまく読み込めないことが多かったのですが、一旦Excelにコピー&ペーストしてからCSVで出力保存するとほぼ一発変換できるようになりました。
(Excelの代わりにGoogleスプレッドシートでも可)
PDFの表全部を選択してコピー、Excel(もしくはGoogleスプレッドシート)にペースト、CSVで保存しておきます。
ブラウザのChatGPT入力画面から指示を入力。
コツは、
カレンダーに出力するので、元のファイルから年月日を読む方法や、予定入力の際に設定する時刻を明確に指示する
各項目についてしつこいめに説明する
不要な列(例の場合だと材料一覧)については入力不要と指示
カレンダー入力の際、その日のメニューをどこにどう入れるか指示(説明/description部分に入れたかったのでそのように指示しています)。
私の毎月出力の際のプロンプトはこんな感じです。うまくいかない時は追加で指示を出すか、何度かトライしてみます。
# 指示内容
CSVの献立表から抽出した毎日のメニューをGoogleカレンダーに入力します。
CSVで全日程分をインポートできるようにしてください。
# 入力ファイル
アップロードするCSVは2024年7月の給食献立表です。
# 入力形式
献立表の列の説明です。
「日付」列
月の中の何日であるかを示しています。ただし、同じ月の中で1-3回同じメニューが繰り返されることがあり、
例えば「日」の項目が「1・29」となっていたら、1日と29日を示しています。
また、行事のある日は「(七夕)」「(こどもの日)」などとありますので、この場合は出力時に
Descriptionの先頭に追加してください。
「朝のおやつ」列
朝のおやつ(メニュー)です。
「昼食」列
昼食のメニューを表します。
「昼食の材料」列
昼食の材料を表します。今回の出力には不要です。
「午後のおやつ」列
午後のおやつ(メニュー)です。
「午後のおやつ材料」列
午後のおやつの材料を表します。今回の出力には不要です。
「一日のエネルギー」「一日のたんぱく質」「一日の脂質」「一日の食塩相当量」列
今回の出力には不要です。
各メニューは、複数要素がある場合は先頭に"・"がついています。
# 出力形式
GoogleカレンダーにまとめてインポートできるCSV形式をダウンロード可能な形式で提供して下さい。
カレンダーは下記のような形式で出力してください。
例) メニューが朝のおやつ2つ、昼食5つ、午後のおやつ2つの場合
Date: メニューの日付
Start time: 11am
End time: 11:30am
Subject: 今日の給食
Description:
朝のおやつ
・CSVから読み取った朝のおやつの内容(1)
・CSVから読み取った朝のおやつの内容(2)
昼食
・CSVから読み取った昼食(1)
・CSVから読み取った昼食(2)
・CSVから読み取った昼食(3)
・CSVから読み取った昼食(4)
・CSVから読み取った昼食(5)
午後のおやつ
・CSVから読み取った午後のおやつ(1)
・CSVから読み取った午後のおやつ(2)
入力データの「日」の列の情報から行事名が得られた場合は、Descriptionの先頭に入れてください。
表にある全ての日程についてダウンロード可能な形式でデータを出力してください。
CSVファイル内の改行コードの扱いに注意してください。
次にCSVを添付します。
GPT-4oになっていたらクリップマークが出るはずなので、ここから先ほど保存したCSVをアップロードします。

注意: ChatGPTの出力が長すぎると時々止まって確認してくるので、「生成を続ける」をクリックして最後まで出力してもらう。
結果がファイルではなく画面出力されることもあるので、その時は出力画面をコピーして.csvファイルとして手で保存、もしくはchatGPTに対して「ダウンロード可能なファイルでお願いします」と追加リクエストしてみます。
Googleカレンダー
ここからGoogleカレンダー。
自分のGoogleアカウントにログインして Googleカレンダーにアクセス。
カレンダー画面左下の「他のカレンダー」にある+をクリックして、「インポート」を選択。先ほどの.csvカレンダーをアップロードし、対象とするカレンダーを指定します。
カレンダーを分けておくと便利なので、私は「給食メニュー」というマイカレンダーを作成しています。

毎朝お知らせしてくれるので、今日は濃い色の服にしとくか!とか工夫がしやすくなりました。ご参考まで。