開催可能な会議日時を 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% の出席が必要です。 ユーザーの空き時間情報のスケジュールを次に示します。
開催者のカレンダー
を
出席者のカレンダー
の
この例では、findMeetingTimes の呼び出しを 2 回行います。
- 最初の呼び出しは、4 月 18 日から 20 日の日付範囲を検索します。 出席者は 4 月 18 日から 19 日に不在であり、4 月 20 日に一般的に使用できる時間がないため、最初の呼び出しでは、出席者が利用できない理由 (emptySuggestionsReason) に関する提案は返されません。
- 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 に時間を提案できます。 会議の提案とその他のパラメーターの信頼度の詳細を確認し、大きなサイズの会議に必要に応じて適用します。
会議日時の提案を取得した後、次のことを行うことができます。
詳細については、「Outlook カレンダーとの統合」を参照してください。