Automate.ioを使ってGoogle Calendarのイベントを基にNotionへのページ追加をやってみた

Google Calendarのイベントを基にNotion上へページを作ろうと考え、とりあえず何か動くものをと思いAutomate.ioを使って試してみました。
2022.03.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

昨年Automate.ioから「NotionへJoin」というニュースが出ており、NotionでのSaaS間の連携機能を試すならAutomate.ioにしておいた方が後々使いやすいかもしれないと考えました。

ただ、試してみると中々癖があります。Google Calendarとの組み合わせでイベントに合わせたページを作ろうとした場合等には特に。実際にやってみたフローを基に書いてみました。

組み立てたワークフロー

今回は週次定例等、定期的に開催される定例の議事録ページのベースを作ってみることにしました。幸いにもAutomate.ioのGoogle Calendar連携にはイベント開催の指定時間前に実行するという指定があります。ドキュメントを見る限り、5分未満の設定には対応していないとあるため、猶予を持った時間設定であれば問題なさそうです。

Unsupported items: Minimum of 5 minutes are required in the ‘Time Before’ field. Location, URL, Event Duration fields are not yet supported. All-day events are not supported.

フロー一覧上ではこのような構成となっています。

ワークフロー詳細

Google Calendarの指定カレンダーに乗っているスケジュールが全て対象になります。必要であればフィルタで絞り込みを行います。

サービス イベント 概要
Google Calendar Event Start Notionにページを作成する対象のイベント絞り込み
Formatter Format Date Notion上でのページ名に使う日付を取得
Google Sheets Search Row Google Sheets上からページに記載する内容を取得する
Notion Add Database Item 議事録用データベースにページを追加
Notion Add Content to Page 追加したページに詳細を記載

Google Calendarは定例の日付に沿ってページを自動でつくるためのものです。

FormatterはGoogle Calendarから取得できた日付がそのままでは使えなかったため、文字列として加工するためのものです。

Google Sheetsは以下の点からページ作成のテンプレートリソース用として追加しました。

  • Notionのページをそのまま複製する操作がとれなかったこと
  • ページ内コンテンツは取得できても新しいページにはフォーマットが崩れた状態での追加となること
  • フォーマットを正すにもコンテンツ内容がJSONやXML等の規定形式ではないためにAutomate.io上では補完できなかった

Notionでのページ追加とコンテンツ追加を分けているのは、個別コンテンツ追加したい場合は2ステップに分けることをAutomate.io上で推奨されているためです。


実行結果

実行するとNotion上で以下のように追加されます。

あとがき

Google Calendarからのイベント取得とNotion上へのページコンテンツをまっさらな状態から設計するのも手間が掛かりそうだったため、連携にて済ませようとしていたところAutomate.io Joinのことがあり試してみました。

フリープランは自動実行不可能だったり、特定のサービスは組み合わせられない等制限はありますが、どんなことができるかの試しには丁度よいかと思います。