
【ChatGPT】PDFで受領したスケジュール一覧をGoogleカレンダーに自動登録【業務効率化】
スケジュール管理って大変ですよね…
みなさんはどのようにスケジュールを管理していますか?
私はGoogleカレンダーでスケジュールを管理しているのですが、ただでさえ予定の登録を忘れてしまうのに、こんな感じでPDFファイルでスケジュールが送られてきたら発狂しそうになります。

これくらいの量であれば手入力でも良いのですが、手入力だとコピペしても時間や場所をずれて登録してしまう可能性があり、悲惨なことになります。
そこで、ChatGPTでGoogleカレンダー登録を自動化する方法を考えました!
以下の3ステップで自動登録が可能です。
1.ChatGPTでPDFファイルをCSV形式に変換
2.CSV形式のデータをGoogleスプレッドシートに貼付
3.ChatGPTでGoogleカレンダー登録用のGoogleAppScriptを作成&実行
順番に方法を解説していきます。
1.ChatGPTでPDFファイルをCSV形式に変換
ChatGPTにPDFファイルをそのまま添付して、以下のプロンプトを入力して実行します。
添付のPDFファイルをCSV形式で表示してください。 日付と時間は開始日時と終了日時に分けて、2024/01/01 10:00の形式で出力してください。

注意点としては、Googleカレンダーに登録できる形式に変換してあげる必要があります。そのため、日時は「2024/01/01 10:00の形式で出力してください」と入力する必要があります。
2.CSV形式のデータをGoogleスプレッドシートに貼付
新規でスプレッドシートを開き、ChatGPTが出力したCSVファイル形式のデータを貼付けます。
貼付しただけだとカンマ区切になってしまうため、スプレッドシートのメニューの「データ>テキストを列に分割」で列ごとにフィールドを分けます。

3.ChatGPTでGoogleカレンダー登録用のGoogleAppScriptを作成&実行
最後に、スプレッドシートに入力した予定をGoogleカレンダーに登録します。スプレッドシートはGoogleAppScript(以下GAS)と呼ばれるプログラムを実行できる仕組みがあります。Microsoft Excelのマクロ(VBA)と似ています。
GASのプログラムなんてわからなくてもChatGPTが考えてくれます。
方法はさきほどCSV形式で出力した画面に続けて、以下のようにプロンプトを入力して実行します。続けて入力するところがカギになります。
次に、このCSVファイルをスプレッドシートに貼り付けた後、GoogleAppScriptでGoogleカレンダーに自動登録したいです。GASのサンプルコードを出力してください。

function addEventsToCalendar() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var calendar = CalendarApp.getCalendarById('YOUR_CALENDAR_ID');
var startRow = 2; // 開始行(1行目はヘッダーとしてスキップ)
var numRows = sheet.getLastRow() - 1; // データの行数
var dataRange = sheet.getRange(startRow, 1, numRows, 5);
var data = dataRange.getValues();
for (var i = 0; i < data.length; i++) {
var row = data[i];
var date = row[0]; // 日付
var startTime = row[1]; // 開始時間
var endTime = row[2]; // 終了時間
var eventName = row[3]; // イベント名
var location = row[4]; // 開催場所
var startDateTime = new Date(date + ' ' + startTime);
var endDateTime = new Date(date + ' ' + endTime);
// カレンダーにイベントを追加
calendar.createEvent(eventName, startDateTime, endDateTime, {location: location});
}
}
親切にもソースコードの登録方法も教えてくれたので、その通り実行してみましょう。
1.スプレッドシートを開き、[拡張機能] > [Apps Script] を選択してスクリプトエディタを開きます。
2.下記のコードをエディタに貼り付けます。

これで準備は整いました。
登録するにはGASの実行ボタンを押すだけです。
※Googleカレンダーへの権限設定画面が表示されますが、すべて許可で進めてください。
※日付形式がおかしいと、登録がされない(意図しない日付で登録される)場合があるため、最初は1行だけでテストしてください。
私、「水鳥川いる」は大手システム会社とGPTの開発を行っております。
会社独自の情報をセキュアにGPTに読み込ませ、回答を生成するRAGという仕組みが得意です。
ご興味ある方はX(Twitter)DMまたはコメントでご連絡お願いします。