Power Automate iconPower Automate お助けレシピ集

期限切れが近いPlannerタスクをリマインドする

公開日: 2025-12-14|カテゴリ: 通知ワークフロー|難易度: 中級

解決できる課題

Plannerで作成したタスクの期限を管理します。 ・タスクが多すぎて期限を管理できていない ・期限の過ぎたタスクがいつも発生してしまう ・タスクの期限はPlannerを見ないと分からない Plannerのタスク管理に追われず、期限が近付けば自動で知らせてくれる仕組みを作ります。

完成イメージ

Flowchart for 期限切れが近いPlannerタスクをリマインドする

必要なもの

  • Planner iconPlanner コネクタ
  • Teams iconTeams コネクタ

作り方

Plannerでは締切日を設定できますが、標準機能では期限の表示に留まります。
期限が迫っていることや切れたことを通知するには、Power Automateを使用してフローを作成する必要があります。

 

  • 1. トリガー「Recurrence」(スケジュール済みのクラウドフロー)を設定

タスクのリマインドを行うタイミングを設定します。
このレシピでは、日時で行うことを想定し、[間隔]を「1」、[頻度]を「日」にしています。
プレビューが「毎日に実行する」になっていれば良いです。
リマインドは日時実行

 

  • 2. アクション「現在の時刻」を設定

タスクの期限と比較するため、フローを実行する日時を取得します。
 ※つまり、フロー実行日から○日目のタスクを抽出するのに使用します
比較用に日時を取得

 

  • 3. アクション「バケットを一覧表示する」を設定

Plannerは、プラン>バケット>タスクの階層構成になっています。
全てのバケットを対象にするのではなく、このレシピでは特定のバケットを対象にします。
[グループID]と[プランID]は、任意のものを設定します。
valueとしては下記が取得でき、上から二つ目と五つ目に"name"と"id"(バケットID)があります。

{
    "@odata.etag": " 省略 ",
    "name": "検証用",
    "planId": " 省略 ",
    "orderHint": "85843Zr",
    "id": " 省略 "
}

バケットを限定

 

  • 4. アクション「変数を初期化する」を設定

後のステップで、取得したタスクが該当のバケットにあるか判定するため、変数を使用します。
[名前]は「targetBucketID」、[タイプ]は「文字列」にします。
バケット判定用の変数

 

  • 5. 条件を設定

ステップ3で取得したバケットの名前を用い、対象のバケットを特定します。
条件式は「name」が「検証用」と「等しい」になります。
対象バケットの特定

 

  • 6. アクション「変数の設定」を設定

ステップ5の条件内でTrueになった場合、「検証用」のIDを変数に設定します。
[名前]はステップ4で用意した「targetBucketID」で、[値]は「id」です。
これで対象バケットのIDが取得できます。
対象バケットのID取得

 

  • 7. アクション「タスクを一覧表示します」を設定

[グループID]と[プランID]は、ステップ3で設定したものと同じにします。
valueは下記を取得でき、三つ目と四つ目に"bucketId"と"title"があります。

{
    "@odata.etag": " 省略 ",
    "planId": " 省略 ",
    "bucketId": " 省略 ",
    "title": "テスト~12/17",
    "orderHint": "8584359001340455997P2",
    "assigneePriority": "",
    "percentComplete": 0,
    "createdDateTime": "2025-12-14T10:06:51.4575653Z",
    "dueDateTime": "2025-12-17T10:00:00Z",
    "hasDescription": false,
    "previewType": "automatic",
    "referenceCount": 0,
    "checklistItemCount": 0,
    "activeChecklistItemCount": 0,
    "priority": 5,
    "id": " 省略 ",
    "createdBy": {
        "user": {
            "id": " 省略 "
        },
        "application": {
            "displayName": null,
            "id": " 省略 "
        }
    },
    "appliedCategories": {},
    "assignments": {},
    "_assignments": []
}

バケット取得と同じグループとプランにする

 

  • 8. 条件を設定

ステップ7で取得した全てのタスクのうち、「検証用」プランに該当するものに絞ります。
この条件式は「bucketId」が「targetBucketID」と「等しい」になります。
また、タスクの期限を条件判定に使用するため、日付比較も合わせて(「かつ」)行います。
条件式は「dueDateTime」が「addDays(body('現在の時刻'), 7)」に比べて「より少ない」になります。
 ※addDays関数では、ステップ2で取得した現在日時に7を加算しています
  つまり、現在よりも7日以内の期限を持ったタスクを抽出します
比較用に日時を取得

 

  • 9. アクション「チャットまたはチャネルでメッセージを投稿する」を設定

[投稿者]と[投稿先]は任意のものを設定します。
このレシピでは、特定チャネル内でフローボットによる投稿を行います。
[チーム]と[チャネル]は任意のものを設定します。
[メッセージ]では「title」と「dueDateTime」を使用し、該当のタスクの件名と期日を表記します。
タスクの件名と期日を明記

 

  • 10. 動作確認

対象のタスクは下図の通り、「検証用」プランにあるタスクとします。
検証用プランのタスクが対象

 

フローの実行後、12/14に実施した場合、12/17と12/20を期日とした二つのタスクのみが抽出されています。
対象期日のみのタスクを抽出

関連レシピ

広告