[画像] ChatGPTでToDoリストをGoogleカレンダーに反映させる手順

Image: Shutterstock

Lifehacker 2024年9月4日掲載の記事より転載

ChatGPTを活用すると様々な業務を効率化することができますが、その一つにコーディングが挙げられます。

この記事では、ChatGPTを使ってGAS(Google Apps Script)のスクリプトを出力し、スプレッドシートに記入したTo doリストをGoogleカレンダーに反映させる方法を紹介します。

Google WorkspaceをカスタマイズできるGASとは

「GAS」とは「Google Apps Script」の略で、Googleが提供するスクリプト言語です。GASを使うと、データ処理やメールの自動返信、ファイル整理などが可能になります。Googleアカウントがあれば、特別な設定を行うことなく、ブラウザ上でコードを構築することができます。

とはいえ、プログラミング初心者にとって、いきなりスクリプトを構築するのはハードルが高い気がしますよね。

そこで、ChatGPTを活用してみましょう。ChatGPTにGASのスクリプトを出力してもらい、スクリプトエディタに貼り付けて修正を繰り返していくことで、専門的なコーディングの知識や経験がなくても、Google Workspaceのアプリを連携させることができます。

作業の手順からコードの作成までChatGPTが出力

まず、ChatGPTに以下のプロンプトを投げかけます。なお、この記事で紹介するプロンプトや出力された内容は、全てGPT-4oを使用した例になります。GASの構築はGoogle Chrome上で行ないました。

プロンプト:Googleスプレッドシートに入力されたタスクのTo-DoリストをGoogleカレンダーに反映するGoogle Apps Script (GAS) を作成してください。

このスクリプトは、スプレッドシートからタスク情報を取得し、優先度と所要時間に基づいてスケジュールを計算し、そのスケジュールをGoogleカレンダーに追加します。タスク情報には、タスク名、優先度、所要時間(時間単位)、および期限が含まれます。具体的には以下の機能が必要です:

1. スプレッドシートからタスク情報を取得する

2. タスクの期限に基づいてスケジュールを計算する

3. 計算されたスケジュールをGoogleカレンダーに追加するこの要件を満たす完全なコードを提供してください。

すると、以下の画像のように、具体的な手順とコードが提示されます。

まず新規のスプレッドシートを作成し、「タスク名」「優先度」「所要時間」「期限」を入力していきます。優先度は5段階(1が最も緊急度が高い)で表しました。

入力したらメニューバーの拡張機能からApps Scriptを選択します。

すると新しいタブに以下のような画面が立ち上がります。

ChatGPTに示されたコードをコピーしてスクリプトエディタに貼り付けます。

貼り付けたら保存のマークを選択し、実行します。

初めてGASを連携するときの注意点

このとき、初めてGASを連携させる場合は、以下のような画面に変わることがあります。その際は画面の指示に従い、アプリの使用を許可する必要があります。左下の「詳細」をクリックしましょう。

すると、画面の下部にアプリの連携を許可するページへのリンクが表示されます。

ページが切り替わったら、アカウントへのアクセスを許可します。

アクセスを許可したら再度「実行」をクリックしてみましょう。

Googleカレンダーを見て、タスクが深夜の時間帯に配置されていたり、複数のタスクが重なっていたりしたら、ChatGPTに現状を伝えて、スクリプトを修正してもらいます。エラーが表示されて反映されない場合も同様です。

コードを繰り返し修正していく(ChatGPTが)

筆者は、修正されたコードのどこが変わったのか読み取れないので、都度コードのスクリプトを全部消去して、新しく生成されたコードをもう一度貼り付けていました。そして、実際に反映されるかどうか「実行」して確かめていきます。

大まかには以下の手順を繰り返していくことになります。

・ChatGPTがコードを出力

・出力されたコードをコピーし、GASのスクリプトを上書き

・意図した通りにカレンダーに反映されるか確認

・エラーが表示されたり、さらにカスタマイズしたい場合はChatGPTに問いかける

上記を繰り返して、以下の機能を追加していきました。

・複数のタスクが同じ時間に重ならないように反映

・タスクの挿入は勤務時間中(9時〜18時)に限定

・カレンダーに入っていた予定には重ならないようにする

最終的に、以下のスクリプトに落ち着きました。

このスクリプトで、Googleカレンダーには指定した時間内に、スプレッドシートに入力したタスクが反映されます。優先度の高いタスクから反映されています。

実は、ここに至るまでには、意図通りにスクリプトが動かず、何度もエラー表示を読み込ませるなど、試行錯誤を重ねました。

また、再現性を高めるために、完成したスクリプトを一度のプロンプトで出力できるように試してみたのですが、結局前提条件を付け足し、エラーを修正しながらでないと求めていたスクリプトは生成できませんでした。

とはいえ、ChatGPTに聞いてみることで、スプレッドシートの計算や自動入力などの手軽なものから、Google Workspaceのアプリを連携させる方法まで、様々なGASの活用法を試すことができます。

ChatGPTの使い方に慣れてきたら、少しずつGASの構築にも挑戦してみてはいかがでしょうか。

Photo: 重田信