誰がログ

歯切れが悪いのは仕様です。

ZapierでNotionのAPIを試してみた(Google Calendar, OmniFocusとの連携)

はじめに

NotionのAPIが一般ユーザーでも使えるようになりましたので少し試した内容を書いてみます。といっても独力であれこれできるような能力はありませんので,Zapierというサービスを使ってNotionとGoogle Calendar, OmniFocusを連携させてみます。

zapier.com

似たようなサービスではほかにautomate.ioが対応しているのですが,私は今のところあまり良い連携が作れていません。現状でZapierの方が対応サービス・ツールが多いのでいろいろ試しやすいということもあります。一方automate.ioの方はデフォルトで複数のサービス・ツールを組み合わせられるという特徴もあるので,こちらも続けて試してみます。ちなみにIFTTTはまだNotionに対応してないっぽいです。

あ,色々試すにあたって下記の情報をまとめてくれているページが参考になりました。ありがとうございます。

note.com

Notion自体の使用例とどっちを先に書くか迷ったんですが,まずはこちらから。似たような内容の記事がもういろいろ出ていそうではあります。この記事では詳しくは書きませんが,Notionを主に下記の用途に使っています。

  • 会議の記録
  • 研究イベント(学会/研究会など)の記録
  • 指導学生の情報の整理(私は博士,修士,学士で関わる組織が違うので把握がややこしい)
  • 担当授業の情報の整理
  • 日記(起きたことを簡単に記録するタイプ)

Zapierとの連携の手順

NotionとZapierの連携方法については上で紹介したAPIに関する情報のまとめの記事でも紹介されている下記のページが参考になりました。

zapier.com

automate.ioの方はNotionへの連携自体はシンプルで適当にやってできたのですがZapierはけっこう手順が違っていて無理でした。最初からちゃんとやり方を見た方が良かったです(自分を初心者と思っていない初心者あるある)。

私の方でやや要約した手順も下記に書いておきますが,上のページを見ながらやることをおすすめします。英語ですが画像を追っていくだけで大体できてしまうのではないでしょうか。

  1. アプリ版の「Setting & Members」から「Integrations」へ進み下の方にある「Develop your own integrations」をクリック
  2. ブラウザで「My integrations」が開くので「+New integration」ボタンをクリック
  3. integrationに適当な名前を付け(上のページの例では「Zapier bot」)下の方にある「Submit→」ボタンをクリック
  4. 作成したintegrationの情報を表示して「token」の文字列をコピー(これはアプリ版からでも可能)
  5. Zapierで要求されたところにコピーしたtokenの文字列をペーストして登録
  6. Notionで連携させたいページ/データベースを表示させ右上の方にある「Share」をクリック
  7. 「Add ...」とあるボックスをクリックすると詳しい入力画面が開いて「Select an integration」のところに作成したintegrationが表示されているので選択して「Invite」ボタンをクリック

個人的には6以降のデータベースに対して連携の手順を踏む必要もあるというところがポイントかと思います。これをやらないと5までの手順を終えてもZapierでNotionからの情報を使うことができないようです。ちなみにautomate.ioではぜんぶ一連の手順の中でまとめてやるので操作としてはシンプルに感じます。

なお,6, 7のShareの操作は適用させたページ/データベースに含まれるページ/データベースにも自動的に適用されますので,まとめてやりたい場合はできるだけ上位のページ/データベースを対象にして設定すると良いです。「Personal Wiki」みたいなまとめ用のページにほかのページ/データベースを入れる構造で作ってあると一発で全部設定できるので楽ですね。

使用例

会議と研究イベントの記録に下記の有料テンプレートを使っていて,この後紹介する2つの例はいずれもこのテンプレートを使う上で前からできないかなと考えていたことでした。これでいくつか手間が減らせて楽になりました。

store.biz-notion.northsand.co.jp

なお,Zapierの設定方法についてはほかに分かりやすいページがあると思いますのでここで詳しくは書きません。いろいろ検索してみてください。Zapier自体はたぶんまだ日本語化されていないと思いますが,かなり直感的にやってできてしまうと思います。

NotionからGoogle Calendarに予定を登録

Notionにもカレンダー表示があるのですが,スケジュール管理用にはやはりGoogle Calendarが便利で今のところ完全移行はちょっと無理そうですかね。いちおうNotionの方にGoogle Calendarを埋め込むことはできるのですが双方向型での編集はまだできなかったはず。

一方で会議や研究イベントの記録用のページに入力するpropertyは次のようになっていてカレンダーに登録したい情報とかなりかぶるので,両方ちゃんとやるとかなり二度手間感がありました(サンプルなので内容は適当です)。

会議ページのプロパティのサンプル画像
会議ページのproperty(サンプル)

というわけで,Notionに会議や研究イベントの記録の準備としてページを追加したらその情報を元にGoogle Calendarに予定が登録される連携(Zap)を作ります。Zapierが提案してくれるNotionの活用例で「Generate detailed events in Google Calendar from new Notion database items」というのが出てくるのでそれをそのまま使います。

Notionで紐付けたいデータベースを選択するとかGoogleカレンダーのアカウントやカレンダーを選択する辺りは説明不要だと思いますので,どういう情報を対応させているかということを簡単にリストしておきます(Google Calendar側の設定)。

  1. Summary:これがカレンダーに登録される予定のタイトルになるので分かりやすいやつを選びます。私の場合は会議やイベントの名称(上記スクショでは名前が分かりにくいのですが一番上に大きく出ている「タイトル」というproperty)
  2. Location:場所の情報。私は「Zoom」みたいな場所のタイプと「○○会議室」みたいな細かい場所の情報2つをpropertyとして登録しているので,その2つとも登録します(複数登録できます)。
  3. Start/End Date & Time:カレンダーへの登録ではこれが一番重要な情報でしょうか。Dateタイプのproperty(私の上の例では「日付」となっているもの)からはちゃんと「Start」と「End」別々の情報が利用できるようになっているのでそれぞれ対応するように設定します。テスト用のデータに情報があれば迷うことはない…はず。
  4. ほかにも,たとえばZoomのmeeting urlや関連urlの情報をメモに入れるようにすると便利かもしれません。

ほかにもいろいろ設定できる項目がありますし,利用するNotionの情報を選択するだけでなく任意のテキストを追加したりもできますので人や用途に合わせていろいろ使い道がありそうです。

逆(Google Calendar → Notion)もできます。ただ私の使い方だとNotionに登録する会議やイベントは必ずGoogle Calendarでも見たい(くらい重要)なのに対して,Google Calendarの方で仕事用のカレンダーに登録する予定は必ずしもすべて記録を取りたいものばかりではない(5分で終わるサインだけのアポとかも含まれる)ので,この形の非対称性がちょうど良いです。

NotionからOmniFocusにタスクを登録

上で紹介した会議録テンプレートではタスクのデータベースに直接タスクを登録するセクションが設けてあります(スクショだと最下部,こちらもサンプルなので内容は適当です)。

会議録から登録できるタスクのサンプル画像
会議録から登録できるタスク(サンプル)

私の仕事/生活ではNotionにタスク管理を一元化するのはまだ厳しいので,このタスクのデータベースに入力した内容をOmniFocusに自動登録する連携を作ります。OmniFocusのようなさまざまなサービス・ツールに対応しているのはZapierのすごいところですね。

ただ,せっかくNotionの方でいろいろ使えるpropertyがあってもOmniFocusにあまり細かい情報を登録できないようなんですよ。なので下記のような対応にしました。あ,選択肢がほとんどないので迷わないと思いますがNotionの方のTriggerは「New Database Item」に,OmniFocusの方のActionは「Create Task」にします。

  1. Title:タスクの名称。OmniFocusの方の設定で締切が自動的に設定できないので,Notionの方の「タスク名」と「期限」の情報を両方こちらに入れます(必要があればOmniFocusの方で期限等を設定する)。
  2. Note:「メモ」の情報が入るようにする。

試しにOmniFocusじゃなくてTodoistで似たようなことやってみたら期限(Due Date)などほかにいろいろな項目が設定できそうでした。そういう場合は「期限」の情報をNotionから流せば良いですね。OmniFocusも対応しないかな…

結果

両方とも紹介したやり方でそれぞれGoogle Calendar, OmniFocusへの自動登録ができました。

けっこう感心したのは(仕組みを知っている人には当たり前なのかもしれませんが)Notionの方のpropertyはtextだけでなく,selectやmulti-selectのやつもちゃんとその内容が登録されるんですよ。たとえば,会議の会場でselect情報の「Zoom」がGoogle Calendarの場所に「Zoom」と登録されます。

雑感

ここで紹介している例だと予定を予定として,タスクをタスクとして登録しなおしているだけなので何が嬉しいのか微妙に見えますね。元々のNotionの方の使用例抜きなのでしかたないところですが,あくまで参考ということで。

Twitterでもちょっとツイートしたのですが,Notionの方で個々の情報を「予定」とか「タスク」のように分類しているわけではなくて,すべてデータベースの項目として扱ってそこにさまざまなpropertyを付けられるって構成になっているので,連携先のサービス・ツールが対応してさえいればNotionの方の豊富な情報を参照できていろいろ柔軟な使い方ができそうだなと感じました。上記例もまだまだ試行錯誤の段階ですので今後もいろいろ試してみます。

追記(2021/05/16)

なんか設定しなくてもうまくいってるような気もしたのですが,日付や時間に関する情報を使う場合は特にZapierの方でタイムゾーンの設定はしておいた方が良いかと思います。

カーシェア使用雑感(プロローグ)

実はちょっと前に江東区内で引っ越しをしまして,その際にマイカーを手放し現在カーシェアを使っています(といっても月数回)。

引っ越し前はマイカーで保育園の送迎をしていました。引っ越し後は保育園へは徒歩あるいは自転車で行けるようになったので短時間用途にカーシェア,状況によってタクシーやレンタカーも使っています。カーシェアはずっとタイムズを使ってきたのですがさいきんカレコも登録して使用感が分かったら比較記事でも書いてみるかと思っていたところに下記の記事。

kabumatome.doorblog.jp

使っていて「こんなに手軽に借りたり返したりできて大丈夫なんだろうか」という感覚があったのではてブのコメントにもそういう主旨のことを書きましたが,ほかのコメントでも指摘されいるようにいくつかの要因が重ならないとそこまでひどいことはあまり起きないんじゃないかという辺りが実感でしょうか。

もう1年以上,回数にして数十回使っていますが今のところ予約した車両に乗れなかったということは一度もありません(返却が遅れたこともないけどこれは用途にもよるでしょう)。ただこれは地域,場所によって相当事情が違いそうです。私がふだん使用しているところは車両数は少ないけどそこそこの数のステーションが点在という感じなんですが週末の予約はけっこう争奪戦ですね。

トラブルもほとんどないです。少ない分かえって1つ1つを覚えているくらい。一時期タバコの臭いがひどかったことが数回続いたのですがすぐになくなりました。あとガソリン残量は減ったら利用者が給油するんですが(専用のカードで給油,給油したら利用料金が割引に),1回だけものすごく残量が少ないことが。ただその時は後部座席にチャイルドシートが置きっぱなしにしてあって,こども関係で時間に追われて給油する時間がなかったのかなと思われ腹は立ちませんでした(ホントに忘れただけかもしれませんが)。

詳しいことはまた改めて書こうと思いますが,私の場合毎回同じ車両を借りられるとは限らないので,けっこう色んなタイプを運転しなきゃいけないというのが面白くもあり大変でもあります。ガソリン車もあればハイブリッド車もあり,エンジンスタートの方式(鍵がボタンか)に始まり,サイドブレーキ(レバー/踏む)など意外と細かい違いがいろいろあり。細かい点については思い出すのも調べるのも意外と難しく,さいきんNotionにデータベースを作ってしまいました。

書きながら思いだしたんですけど今月カレコで借りる予定はキャンセルしなきゃいけない状況になったので,次に使う予定は来月です。これはやっぱりタイムズとカレコとの比較はまた別にしてまずマイカーとカーシェアの比較で記事にしておいた方が良いかも。

オンライン国際研究イベントで司会をやってちょっと思ったこと

英語で司会,久しぶりにやったんですが予想通りつらかったです。定型表現も多いんですが,突発的な対応も意外と発生するので…というわけで体験談です。ちなみに司会をやったのは日本英語学会のSpring Forumという大会です(国際イベントで使用言語は英語)。

質疑応答への対応

学会など研究関連イベントの司会で大変な事態の1つに「質問やコメントが出ない」というものがあります。分野によって違いがあるのかもしれませんが,出ない場合は司会が質問やコメントをするということが多いのではないでしょうか。これは使用言語が自分の第1言語でも難しいことがあり,使用言語が第2言語だとなおさら大変です。

ただ,今回は幸い質問,コメントがある程度出てくれましたので司会としては助かりました。私の専門的にはけっこう厳しい内容の発表でしたので一応事前に準備はしてありましたが披露することにならなくて良かったです。

今回司会をやっていてちょっと困ったのは,質疑応答が長引いた際に誘導をどうするかということです。第1の問題は私に適度な丁寧さで議論を遮る英語力がないということなのですが,幸いすべての発表の後に休憩があったので次の発表への直接の影響はありませんでした(準備には影響したかも…)。

じゃあ何が問題かというと,オンライン発表(今回はZoom)だと1つの会話がその場で支配的になってしまう感じがあって。対面でやっている発表だと議論が休み時間へ延長した場合,議論を継続したい人たちが場所を移して司会は休憩に入ることを宣言するということが比較的難しくないのですが,オンラインだとどうするのが良いんでしょうね。

ちなみに,ほぼ同じ日程でやはりオンラインで開催されていたCLS (Chicago Linguistic Society)では,議論のサポートとしてDiscordを採用していて,「議論を続けたい人はDiscordへ移ってください」という形にしていました。私の感覚だと学会レベルの規模で複数のツールを使い分けてもらうのはけっこう大変そうだなという気がするのですが,たとえばZoomだとブレークアウトルームを用意しておいてそちらに移ってもらうという手が使えるでしょうか。また,6月にある日本言語学会では懇親会や書籍販売にRemoを使うようなのですが,そういう場があればそちらに誘導するのもありですね(対面でも休憩室で質疑応答の延長戦てありますよね)。

dlit.hatenadiary.com

いや,運営としてはまずタイムスケジュールを守ることが最優先だというのは分かっているのですが,盛り上がっている議論を聞いていると「これこそが研究発表をする意義だもんなあ」と思ってしまって。

ちなみに使用言語が英語であってもお互い日本語が第1言語だと分かっていると日本語でコミュニケーションがなされることもあるのですが(それどうなのよという話は定期的に出ます),私が司会をしたセッションの発表者は全員そうではなく,「お前英語もっとがんばれよ」という天の声なのでしょう。

おまけ:発表者の名前

これも司会をやっていて困ることの1つで「発表者の名前をどう読んだら良いか分からない」というものがあります。英語だと日本名の漢字の読みに悩まされるということはなくなるのですが,海外の名前はけっこう難しいものもあり。

今回私が司会を担当した発表の発表者はいずれもUniversity of Warsawからの参加で,呼び方が私にとっては厳しく。こういう場合(というか間違いないと思っていても違うことがあるのでできるだけする人が多いかな),司会は事前に「発表者に名前を確認」します。ただ,私は「言語学者」を名乗るのが憚られるくらい語学ができませんので,そもそも確認する際の呼び方の案に悩んだわけです。

というわけで,今回はGoogle翻訳に付いている音声を聞く機能を使ってみました。名前を発表資料やプログラムからコピペして入力ボックスに入れてスピーカーのアイコンを押すと音声を聞かせてくれます。もちろんこれが正確な音声かどうかは分からないわけですが,「あなたの名前(の発音)は○○で良いですか」と聞くためのとっかかりとしては使えました(ちょっと修正してもらえました)。言語によって精度が違うかもしれませんが,試しに同じ名前で言語選択を変えて音声を確認したら各言語に対応した音声に変わりましたのでけっこう細かく多言語対応してるっぽいです。

そんなことしないでストレートに「あなたの名前の発音を教えてください」と聞けば良いじゃないかと思うかもしれませんが,私の経験から言うと音声の推測ができない名前のフルの発音をはじめてで聞き取る方が難しいんですよね。今回はじめて試してみましたので,どの言語にも使えるかどうかはまったく保証できないのですが,困ったときの手段の1つとして覚えておこうと思います。一番良いのは知ってる人に事前に聞いておくことですけどね。今回はそれもちょっと難しかったので。