3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Power AutomateでGoogle カレンダーの予定をOffice 365にコピーする

Last updated at Posted at 2023-01-25

Power Automate

Microsoft 認定資格 PL-900: Microsoft Power Platform 基礎の学習をしています。

Power Apps, Power Automate, Power BI, Virtual Agentsなんかを学習するのですが、ラーニング パスでいくつかサンプルを作成しています。
こういう演習は、自分にとって身近であるほど退屈にならないし、デベロッパー・エクスペリエンスたりうるものだと思います。
(とはいっても、Power Platformでの開発は従来の“開発(Development)”という言葉ほど、ガチガチなものではありません)

何を作る?

Power Automateで何ができるかの説明やアカウント等の環境の準備は色々なところに解説があると思うので省きます。
GoogleやOffice 365といったウェブ上の様々のサービスをトリガー(きっかけ)やアクション(動作)にできるということで、
まず1つやってみたい事を思いつきました。

Google カレンダーで作成した予定をOffice 365の予定表に同期する

職場ではGoogleのアカウントとOffice 365のアカウントを併用しているのですが、
どちらも似たようなサービスがあって使い分けが必要になってきます。

会議はTeamsを使う事が多いのでOfficeとの親和性があるのですが、
私はメールやスケジュールはGoogleの方を使っています。

Googleだけを使っているとOfficeメインで使っている人から私の予定が確認できなかったり、
Teamsの状態表示(取り込み中とか)が変化しません。

そこで、Google カレンダーで予定を作成するのをトリガーにしてOffice 365にコピーするようにしてみたいと思います。
ちなみにGoogleカレンダーでOffice 365の予定表を表示させたりその逆を行う事はインポート等の基本的な機能で可能ですが、
予定自体はどちらかに入っているのを同時に見ているだけです。

テンプレートから

新規に作成してもいいですが、何しろ初めてなのでひな形から作成してみます。
Power Automateにはすぐに使えそうな数多くのテンプレートがあります。
その中から今回の要件に近いものを探します。
Google カレンダーで検索すると、Google カレンダーにイベントが追加されたときにメールを送信するがありました。
image.png
トリガーはGoogle カレンダーで、アクションはOffice 365のOutlookでメールを送信するみたいです。
“メールを送信”のアクションを予定の作成に作り変えれば、実現できそうな気がします。
各サービスに接続したら、続行をクリックしてテンプレートからフローを作成します。
image.png
初期状態はこんな感じ
image.png
カレンダーIDでGoogleのアカウントを選択します。右端の▽でドロップダウンが現れます。
image.png
ボタンをクリックして、新しいステップを挿入
image.png
Office 365の予定の作成は、イベントの作成でした。
image.png
詳細オプションを展開して、入力していきます。
image.png
予定表 IDはドロップダウンを展開するとCalendarが出てきます。
環境によって変わるかもしれませんが、Office既定の予定表はこれを入力すれば良いようです(後で編集する時にはIDに展開されています)。
image.png
件名は動的なコンテンツからイベント リスト イベント タイトルを使います。入力にフォーカスすると自動的にUIがポップアップします。
イベント リスト イベントは、Google カレンダーで作成した予定を指すと思えば良いでしょう。
同様に開始時刻イベント リスト イベント 開始日時終了時刻イベント リスト イベント 終了日時
これらは動的なコンテンツのリストに現れませんが、動的なコンテンツの検索日時等と入力すれば現れました。
タイム ゾーン(UTC+09:00) Osaka, Sapporo, Tokyoを選択し、
本文イベント リスト イベント 説明
場所イベント リスト イベント 場所を入力しました。
他にも出席者等入力できる項目はありますが、この辺の扱いはGoogleとOfficeで異なっているので空にしておきます。
(もし作成すると、出席者にも案内が行われるような気がする...)
最後に、テンプレートによって作成されたGet my profile (V2)(マイ プロフィールの取得)とSend an email(メールの送信)は削除します(右端の 削除)。

テスト

image.png
右上の保存をクリックして作成したフローを保存し、フロー チェッカーでエラーや警告がなければテストをクリックしてテストします(手動テスト)。
Google カレンダーで予定を作成します。
本文には装飾(ハイパーリンク)も入れてみました。
image.png
テスト画面の方を見ると、正常に実行されたメッセージが表示されました。
image.png
Officeの予定表を見てみます。
すぐに予定が作成されました。
image.pngimage.png
本文の装飾も問題なく表示されています。
ちなみにPower Automateのトリガーにはイベントの変更や削除といったトリガーもあります。
それらを駆使することで変更と削除に対しても同期することができますが、
現状、一方向の管理にするとは限らないので(例えばOffice側で変更してしまうと、こんどはGoogle側への同期が必要になる)
一旦作り込みはここまでにしました。

又、このような要件に対してもっと優れたソリューションが他にあるかもしれませんが、
今回はPower Automateの学習ということで題材にしてみました。

現状、繰り返しの予定に対応していないので、またいずれ作り込んでみたいと思います。

必要がなくなったら、フローをオフにするなり削除するなりしておきましょう。
又、エクスポートすればファイルに保存して取っておくこともできます。

Power Platformはローコード開発プラットフォーム

Power Platformでの開発はとても簡単なので、とにかく「思いつき」が全ての入り口になると思います。
「これ不便だなあ」とか「こんなのがあったらなあ」等が思いついたらまず触ってみて、
もしつまづいたらどのように解決するかをその段階で調べるというのも、良いのではないかと思います。
自分の目的を達成するという事がモチベーションにつながり、
手を動かす事で仕組みを覚えて理解が深まると、私は思っています。

3
4
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
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?