FindMeetingTimesで、Outlookのカレンダーに自動で作成をしたいです

WindowsのOutlookのカレンダーを自動で動かすことをしたいと思っています。
ーーーーーーーーーーーーーーーーーーーーーーーー
動作環境:
UiPath Studioで、Windowsを使用しています。WindowsPC環境。

課題内容:
記事にあるように、

Outlookのカレンダーに対して、複数人が空いている日程を選択して、カレンダーの予定を作成するということをしたいと思っています。

記事通りだとうまく動かず、添付のスクリーンショットのように設定をしております。

実行したところ、
会議日時を検索: Object reference not set to an instance of an object.
というエラーメッセージが出てきます。

どのようにしたらいいか、詰まってしまっておりご質問させていただきたいです。

続報です。

利用可能な時間帯 の出力を、
メッセージをログしてみると、

{
“message”: “Microsoft.Graph.MeetingTimeSuggestion”,
“level”: “Trace”,
“logType”: “User”,
“timeStamp”: “21:38:37”,
“fileName”: “Main”,
“jobId”: “304a238a-5129-4201-a962-bae3cb4416b0”,
“robotName”: “メールアドレスがここに入ってます-attended”,
“machineId”: 4255963,
“processVersion”: “1.0.0”,
“organizationUnitId”: 5784793,
“businessOperationId”: “bd8c407d180f49d8b6aed2fc265941e1-1d9c7b621f734c7e89410d2b595220e4”
}

とあり、候補の時間が見当たりません。

取得する情報があっているのかも、知りたいと思っています。

こんにちは

Microsoft365スコープの設定は正しくできていますでしょうか?
他のアクティビティでは正常に動作していますでしょうか?

ご質問いただきありがとうございます。

Microsoft365スコープの設定は正しくできていますでしょうか?
他のアクティビティでは正常に動作していますでしょうか?

について、

会議日時を検索(FindMeetingTimes)

を実行したところ、
実行はできています。

会議日時を検索(FindMeetingTimes)
のプロパティで出力となっている、
利用可能な時間帯
を変数にして、

その変数を、
メッセージをログ(LogMessage)
で出してみると、

{
“message”: “Microsoft.Graph.MeetingTimeSuggestion”,
“level”: “Information”,
“logType”: “User”,
“timeStamp”: “22:26:29”,
“fileName”: “Main”,
“jobId”: “9dc45fdb-57a8-4b15-abad-f1bebe8df6e5”,
“robotName”: “自身のメールアドレス-attended”,
“machineId”: 4255963,
“processVersion”: “1.0.0”,
“organizationUnitId”: 5784793,
“businessOperationId”: “2ff9377fd50846bf860a64d961d53f1f-464b9a167b6345beb1c1a682eefde684”
}

というログが出力されます。
なので、実行はできているのかな?と思っています。
ただログの中身として時間が取得はできていない気がしています。

というのも、

の記事にあるような、

{
“attendeeAvailability”: [{“@odata.type”: “microsoft.graph.attendeeAvailability”}],
“confidence”: 100.0,
“locations”: [{“@odata.type”: “microsoft.graph.location”}],
“meetingTimeSlot”: {“@odata.type”: “microsoft.graph.timeSlot”},
“order”: 1024,
“organizerAvailability”: “String”,
“suggestionReason”: “String”
}

の中の、
meetingTimeSlot": {“@odata.type”: “microsoft.graph.timeSlot”}
とかが出てきて、その時間がわかるのかなとおもったのですが、
それに該当するようなものが自身のログには記載がなく、
ただしく実行できているのかが疑問なのと、時間がわからないので次のイベントを作成するに移れていない状態です。

ちなみに、他のアクティビティも試してみたところ、

イベントを作成(CreateEventConnections)
は、実行できてOutlookのカレンダーに作成することが出来ました。

今一番気になっているところとしては、
会議日時を検索(FindMeetingTimes)の出力の返り値が正しいのかがわからないところになります。

ご確認のほどよろしくお願いいたします。

そのように出力されるのは配列だからかと思います。

例えば以下の式を出力するとどのようになりますでしょうか?
上記アクティビティの出力をslotsとしています。

String.Join(vbcrlf,slots.Select(Function(x) x.MeetingTimeSlot.Start.ToString))

ご回答ありがとうございます。

ログを見てみると、

{
“message”: “Microsoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone\r\nMicrosoft.Graph.DateTimeTimeZone”,
“level”: “Information”,
“logType”: “User”,
“timeStamp”: “16:17:56”,
“fileName”: “Main”,
“jobId”: “afccc7e2-6698-4215-9755-0425848c14ed”,
“robotName”: “自身のメールアドレス-attended”,
“machineId”: 4255963,
“processVersion”: “1.0.0”,
“organizationUnitId”: 5784793,
“businessOperationId”: “4ad95e228d6d435ca6d56601b57077f4-f81c0d5bf07c4dde96d4a546cf308d7e”
}

と返答が返ってきました。

すみません、式が不足していました。これで開始日時のリストが出力されると思います。

String.Join(vbcrlf,slots.Select(Function(x) x.MeetingTimeSlot.Start.DateTime))

いずれにしても中身は入ってそうですので、繰り返し(コレクションの各要素)アクティビティでイテレートして、中身を確認していってもらえればと思います。

2 Likes

ありがとうございます!
日時が表示されるようになりました!!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.