開催可能な会議日時を Outlook カレンダーで検索する

職場や学校では、集まるための共通の時間と場所を探して頻繁にオーバーヘッドが発生します。 Microsoft Graph アプリケーションでは 、findMeetingTimes を 使用して、時間、場所、その他の制約を満たす可能性のある会議時間を特定できます。

findMeetingTimes アクションを使用すると、会議の日付/時刻範囲、期間、オプションまたは必須の出席者、アクティビティの性質 (activityDomain) などの条件を指定できます。 このアクションでは、出席者と開催者の通常の作業スケジュールと空き時間情報が考慮され、参加者とアクティビティの種類に適した時間が提案されます。 たとえば、作業に関連するアクティビティの提案は、常に開催者と出席者の勤務時間中に行われ、必要な出席者が利用可能な提案は、推奨リストの上位に並べ替えられます。

Microsoft 365 では、勤務時間とタイム ゾーンはメールボックスごとに構成できます。 findMeetingTimes アクションは、開催者と出席者間のタイム ゾーンのバリエーションを処理します。 既定では、 findMeetingTimes は UTC で候補を返します。 次の要求ヘッダーを使用して、特定のタイム ゾーンで findMeetingTimes から提案を返すことができます。

Prefer: outlook.timezone="{time-zone-string}}"

大規模な会議で特に便利な機能として、定足数のパーセンテージ (minimumAttendeePercentage) を指定して、最低限の出席者の空き時間を満たす場合にのみ、findMeetingTimes が提案を返すようにできます。

findMeetingTimes が会議時間を提案できない場合は、開催者や必要な出席者が使用できないなど、特定の理由 (emptySuggestionsReason) を示します。 この値に基づいて、パラメーターをさらに調整して、findMeetingTimes を再度呼び出すことができます。

注:

findMeetingTimes アクションは、現在 Microsoft 365 の職場または学校のメールボックスで使用できますが、個人用 outlook.com のメールボックスでは使用できません。

次の例では、 findMeetingTimes を 使用して、ユーザーの空き時間と作業スケジュール、および出席者が時間の一部を離れていることを考慮して、2 人のユーザーが 2 時間会議できる時間を返す方法を示します。 この会議のユーザーは 2 人だけなので、提案には 100% の出席が必要です。 ユーザーの空き時間情報のスケジュールを次に示します。

開催者のカレンダー

空き時間を示す 4 月 17 日から 21 日の開催者の作業予定表 空き時間

出席者のカレンダー

空き時間を示す 4 月 17 日から 21 日

この例では、findMeetingTimes の呼び出しを 2 回行います。

  1. 最初の呼び出しは、4 月 18 日から 20 日の日付範囲を検索します。 出席者は 4 月 18 日から 19 日に不在であり、4 月 20 日に一般的に使用できる時間がないため、最初の呼び出しでは、出席者が利用できない理由 (emptySuggestionsReason) に関する提案は返されません。
  2. 2 番目の呼び出しは、4 月 21 日の空き時間を検索し、午後 2 時から 4 時の提案を返します。

findMeetingTimes の 2 つの呼び出しには、次のパラメーターが含まれます。 findMeetingTimes のすべてのパラメーターは省略可能です。

  • attendees: 1 人の出席者、Samantha Booth を type プロパティの required として設定します
  • locationConstraint: 場所の提案は必要ありません
  • timeConstraint: 最初の呼び出しは、4 月 18 日午前 9 時から 4 月 20 日午後 5 時までの日付/時間範囲を検索します。最初の呼び出しが日時を提案することに失敗した後、2 番目の呼び出しは 4 月 21 日の午前 9 時から午後 5 時で検索します。
  • meetingDuration: 2 時間
  • returnSuggestionReasons: この例では、各提案に対する理由が必要です
  • minimumAttendeePercentage:100% (出席者が提案された時間に出席できる必要があるため)

最初の要求

4 月 18 日から 20 日で両方のユーザーが 2 時間空いている時間帯を検索します。

POST https://graph.microsoft.com/v1.0/me/findMeetingTimes
Prefer: outlook.timezone="Pacific Standard Time"
Content-type: application/json

{
  "attendees": [
    {
      "type": "required",
      "emailAddress": {
        "name": "Samantha Booth",
        "address": "samanthab@contoso.com"
      }
    }
  ],
  "locationConstraint": {
    "isRequired": false,
    "suggestLocation": false,
    "locations": [
      {
        "resolveAvailability": false,
        "displayName": "Conf room Hood"
      }
    ]
  },
  "timeConstraint": {
    "activityDomain":"work",
    "timeslots": [
      {
        "start": {
          "dateTime": "2017-04-18T09:00:00",
          "timeZone": "Pacific Standard Time"
        },
        "end": {
          "dateTime": "2017-04-20T17:00:00",
          "timeZone": "Pacific Standard Time"
        }
      }
    ]
  },
  "meetingDuration": "PT2H",
  "returnSuggestionReasons": true,
  "minimumAttendeePercentage": 100
}

最初の応答

4 月 18 日から 20 日の勤務時間中に両方のユーザーが出席可能な 2 時間の時間帯はありません。

HTTP/1.1 200 OK
Content-type: application/json
Preference-Applied: outlook.timezone="Pacific Standard Time"
Content-Length: 184

{
    "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.meetingTimeSuggestionsResult",
    "emptySuggestionsReason":"AttendeesUnavailable",
    "meetingTimeSuggestions":[

    ]
}

2 番目の要求

4 月 21 日の 2 時間の時間帯を検索します。

POST https://graph.microsoft.com/v1.0/me/findMeetingTimes
Prefer: outlook.timezone="Pacific Standard Time"
Content-type: application/json

{
  "attendees": [
    {
      "type": "required",
      "emailAddress": {
        "name": "Samantha Booth",
        "address": "samanthab@contoso.com"
      }
    }
  ],
  "locationConstraint": {
    "isRequired": false,
    "suggestLocation": false,
    "locations": [
      {
        "resolveAvailability": false,
        "displayName": "Conf room Hood"
      }
    ]
  },
  "timeConstraint": {
    "activityDomain":"work",
    "timeslots": [
      {
        "start": {
          "dateTime": "2017-04-21T09:00:00",
          "timeZone": "Pacific Standard Time"
        },
        "end": {
          "dateTime": "2017-04-21T17:00:00",
          "timeZone": "Pacific Standard Time"
        }
      }
    ]
  },
  "meetingDuration": "PT2H",
  "returnSuggestionReasons": true,
  "minimumAttendeePercentage": 100
}

2 番目の応答のサンプル

2 番目の findMeetingTimes 要求は、両方のユーザーが会合するために 4 月 21 日午後 2 時から 4 時を提案します。

HTTP/1.1 200 OK
Content-type: application/json
Preference-Applied: outlook.timezone="Pacific Standard Time"
Content-Length: 714

{
    "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.meetingTimeSuggestionsResult",
    "emptySuggestionsReason":"",
    "meetingTimeSuggestions":[
        {
            "confidence":100.0,
            "organizerAvailability":"free",
            "suggestionReason":"Suggested because it is one of the nearest times when all attendees are available.",
            "meetingTimeSlot":{
                "start":{
                    "dateTime":"2017-04-21T14:00:00.0000000",
                    "timeZone":"Pacific Standard Time"
                },
                "end":{
                    "dateTime":"2017-04-21T16:00:00.0000000",
                    "timeZone":"Pacific Standard Time"
                }
            },
            "attendeeAvailability":[
                {
                    "availability":"free",
                    "attendee":{
                        "type":"required",
                        "emailAddress":{
                            "address":"samanthab@contoso.com"
                        }
                    }
                }
            ],
            "locations":[
                {
                    "displayName":"Conf room Hood"
                }
            ]
        }
    ]
}

次の手順

すべての出席者が会議に出席できない場合があります。 minimumAttendeePercentage オプション パラメーターを指定することで、出席の信頼度が一定の割合に達した場合に、findMeetingTimes に時間を提案できます。 会議の提案とその他のパラメーターの信頼度詳細を確認し、大きなサイズの会議に必要に応じて適用します。

会議日時の提案を取得した後、次のことを行うことができます。

  1. イベントを作成し、会議出席依頼として送信する
  2. イベントに添付ファイルを追加する

詳細については、「Outlook カレンダーとの統合」を参照してください。