0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「次の会議」にボタン1発でアクセスする

0
Posted at

概要

オンラインミーティングが多数入っていると、会議と会議の間の切り替えが忙しくなったり、作業に集中していて「あ!忘れてた!」となって急いでカレンダーを開いたり、みたいなことが多々あるので、ボタン一発で次の会議を開けるようにしたいと思いました。

IMG_6302.jpg

前提

  • Mac
  • 会議予定は Google カレンダーに登録されている
  • 会議は Google Meet か Zoom (統一してくれ)
  • ボタンは Stream Deck(じゃなくてもいい)

やりかた

1. Google カレンダーと Mac のカレンダーを同期させる

まずは Mac 上にカレンダーの予定を持ってこなくてはいけないので、Google カレンダーと連携します。

2. Mac のショートカット機能を使う

ショートカットキー1発で予定の中のリンクにアクセスしたいです。何らかのツールを使えばもっと簡単にできそうですが、会社のPCなので利用できるツールに制限があります。そこで Mac にデフォルトで入っているショートカット機能を使います。

これがめちゃくちゃ癖のある機能で、最終的に以下のような超複雑なワークフローになりました。ほぼプログラムです。

https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_27159_30c5cc56-11c9-49a7-8d7e-bc53acea4890.png

やっていること

  1. 入力の受け取り

    • これはホットキー一発でこのショートカットを呼び出すようにしているだけです
  2. カレンダー予定の検索

    • 以下の「すべて」の条件を満たすカレンダーの予定を最大20件検索します。
      • 開始日:が「今日である」
      • カレンダー:が「tomohiro.sakai@...」と等しい
      • 自分の状況:が「不参加」と等しくない(参加または未定の予定)
        • ここで「参加」にしているものだけ拾いたいと思ったが、「自分の状況」=「参加」の条件にすると「自分が作った予定」はこれに含まれないため、逆転させた条件にしている。
    • 検索結果は、開始日が「古い順(時間が早い順)」に並び替える
  3. 各予定に対する繰り返し処理

    • 取得したカレンダーの予定それぞれについて、以下の処理を順番にループ実行します。
  4. 時間の判定

    • 「現在の時刻」と予定の「開始日」の間の時間を「分」単位で取得します。
    • 「日付間の時間」が -10 より大きい場合(※開始10分前以降、または既に開始している予定である場合)に、以下の処理へ進みます。
  5. テキスト情報の結合とURLの正規表現抽出

    • 予定の「位置情報」と「メモ」を「改行」で結合します。この後の処理でURLを取得するため単一のテキストにしたいというわけです。
    • 結合したテキストの中から、正規表現を用いて Google Meethttps://meet.google.com/...)または Zoomhttps://*.zoom.us/...)の会議URLに一致する部分を検索します。
  6. URLの抽出と実行

    • 一致したURLのリストから「最初の項目(1件目)」を取得します。
    • 「テキスト(抽出したURL)」に任意の値が存在する場合、以下の処理を行います。
      • 抽出されたURL(リストからの項目)をブラウザで開きます。
      • URLを開いた直後に 「このショートカットを停止」 を実行し、ワークフロー全体を終了します(複数の会議を同時に開かないためのストッパー)。
  7. 終了処理

    • 条件に合致しない場合(時間外、またはURLが見つからない場合)は、次の予定のループへと移ります。

ハマりポイント

  • 直近の予定1件だけ取れればシンプルな実装で済むが、カレンダーの絞り込みで「終了日」「が次より前」=「現在日付」にすると、時間では日付だけで判定されてしまい、今日の予定が全て過去のものと判定されてしまう。なのでやむを得ず全件予定をとってきてループしてif文で終了判定している
  • 自分が作った予定は「参加」状態になっていない
  • Google Meet の URL は「メモ」に入っている
    • ちなみに Zoom の URL は「位置情報」に入っている(というか入れている人が多い)

ショートカット機能自体の癖の強さと、Google カレンダーと連携したときのややこしさが合わさって、非常に難しかったです。

3. stream deck のボタンに割り当てる

先ほどのショートカットにホットキーを割り当てておき、stream deck の中の1つのボタンに割り当てます。

IMG_6302.jpg

ボタン1発で次の会議に飛べるようになりました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?