やわらか図書館学

主に大学図書館のデザイン・広報に関するブログです。

国立大学図書館協会のイベントカレンダーをGoogleカレンダーに取り込むためのスクリプトをChatGPTに書いてもらいました

国立大学図書館協会さんでオープンアクセスに関連するイベントのカレンダーが公開されました。最近はイベントも多く、把握するのが大変なので、とてもありがたいです。

www.janul.jp

こちらのイベントカレンダー、予定を確認するには十分なので全然利用に支障はないのですが、単純な技術的なテストとして、ChatGPTを使用してこのイベントカレンダーを整形するコードが書けるか、試してみました。

結果としては、多少の試行錯誤はありましたが、GAS(Google Apps Script)を使用して以下のようにスプレッドシートに出力するコードを書くことができました。必ずしも正規表現のルールが定められているわけではないので、表記の揺れを吸収するのが少し大変でした(私は漏れを指摘していただけですが)。

スクレイピングするコードを公開していいものなのかどうか判断つかなかったので、コードは公開しませんが、上にも書いたとおり、特に変換しなくても利用に支障はないかなと思います。

せっかく綺麗に抽出できたので、この情報をGoogleカレンダーに取り込むためのスクリプトも書いてもらい、取り込んでみました。本日(2025年2月11日時点)のスナップショットにはなってしまいますが、こういうこともできるという一例で。*1

感想

今回もおそらくコードの作成自体は1時間程度でした。モデルは「コーディングとロジックに最適」と書かれているo3-mini-highを使用しています。

最初から厳密なプロンプトで指示を出すよりも対話を重ねていくのが良いと最近よく言われていますが、先日からいくつかのコードを書いてもらってきて、それを実感しています。ふわっとした指示から、できあがったものを見て、徐々に具体的な条件を追加していけばいいということがわかってきました(実際の人間にそれをやったら怒られますが)。

今回の場合は、以下の流れでした。

  1. GASを使って、このイベントカレンダーを分析して、スプレッドシートに出力したい。
  2. 開催日、開始時刻、終了時刻、タイトル、主催者、実施形態 でセルを分けて欲しい。(主催者は()で表示、実施形態はその後ろにあることを説明)
  3. 複数日開催や()が複数ある場合など、漏れたイベントがあるので、それも拾って欲しい。(例を示す)
  4. リンク先がある場合は、それも含めて欲しい。
  5. カレンダーに取り込みたい。
  6. 任意のカレンダーに取り込みたい。

意図的にそうしたわけではありませんが、スプレッドシートへの出力できちんと解析ができていることを確認してから、Googleカレンダーに取り込んだことで、いきなり取り込むよりも精度の高い取り込みができたのではないかと思います。

作成されたコードを読み解けばプログラムの勉強にもなると思うのですが、自分の遊びの範囲でツールを作る程度ならばChatGPTにやってもらえるので、そこまでする必要性が今の自分にはあるのかはやや疑問です。

これはあれですね、FF6で道具を装備する裏技を使って楽をしていて「こんな楽をしていていいのかな」と思いつつ、「それでラスボスまで倒せるんだったらそれで別にいいじゃない」と思った時と同じですね*2

お相手はやわらか図書館学でした。

参考

current.ndl.go.jp

yawatosho.hateblo.jp

yawatosho.hateblo.jp

 

*1:多分ドキュメントの更新を受けて自動で反映することもできると思いますが→聞いてみたらそれはできなくて、定期的に走らせることになるみたいですね。

*2:楽をしてどこかでしっぺ返しを喰らう可能性があるか、これで最後までいけるかということを考える時、いつもこの例が頭をよぎるのです