availabilityViewInterval

availabilityViewInterval

我正在尝试使用图形/ getSchedule api来检查会议冲突。但是,我不太了解请求输入字段“ availabilityViewInterval”的功能和用法。

我的基本要求是传递开始和结束日期时间,并查看资源是否可用(忙/闲)。
虽然我可以在/ getSchedule Api中获得该信息,但是不确定请求和响应中的某些字段。


“ availabilityViewInterval”:这是一个请求字段,在文档中被声明为可选,但是在使用图形客户端时,我需要为此传递值。它接受从5到1440的int值,但不确定它是做什么的,我应该传递什么值?
“ availabilityView”:这是一个响应字段,返回一个字符串值。但我无法理解。这个值是什么?如何计算?它的意义是什么?如何利用它?


请求:

ICalendarGetScheduleCollectionPage response = graphClient.users("usrEmailAddress").calendars(calendar.id)
                .getSchedule(schedulesList,endTime,startTime,availabilityViewInterval)
                .buildRequest()
                .post();


以下是我的示例响应(两次请求中的AvailabilityViewInterval值均为5,但响应的AvailabilityView不同):

**"availabilityView": "22"**,
      "scheduleItems": [
        {
          "isPrivate": false,
          "status": "busy",
          "subject": "Test Meeting again",
          "location": "",
          "start": {
            "dateTime": "2020-06-12T10:58:45.0000000",
            "timeZone": "UTC"
          },
          "end": {
            "dateTime": "2020-06-12T11:08:45.0000000",
            "timeZone": "UTC"
          }
        }
      ],
      "workingHours": {
        "daysOfWeek": [
          "monday",
          "tuesday",
          "wednesday",
          "thursday",
          "friday"
        ],
        "startTime": "08:00:00.0000000",
        "endTime": "17:00:00.0000000",
        "timeZone": {
          "name": "India Standard Time"
        }


回应2:

**"availabilityView": "00"**,
      "scheduleItems": [],
      "workingHours": {
        "daysOfWeek": [
          "monday",
          "tuesday",
          "wednesday",
          "thursday",
          "friday"
        ],
        "startTime": "08:00:00.0000000",
        "endTime": "17:00:00.0000000",
        "timeZone": {
          "name": "India Standard Time"
        }


回应3:

**"availabilityView": "220000000000"**,
      "scheduleItems": [
        {
          "isPrivate": false,
          "status": "busy",
          "subject": "Test Meeting again",
          "location": "",
          "start": {
            "dateTime": "2020-06-12T10:58:45.0000000",
            "timeZone": "UTC"
          },
          "end": {
            "dateTime": "2020-06-12T11:08:45.0000000",
            "timeZone": "UTC"
          }
        }
      ],
      "workingHours": {
        "daysOfWeek": [
          "monday",
          "tuesday",
          "wednesday",
          "thursday",
          "friday"
        ],
        "startTime": "08:00:00.0000000",
        "endTime": "17:00:00.0000000",
        "timeZone": {
          "name": "India Standard Time"
        }


注意:所有请求的开始时间和结束时间都不同,但是在所有情况下AvailabilityViewInterval字段均为5。

我指的是以下Microsoft文档:

https://docs.microsoft.com/en-us/graph/api/calendar-getschedule?view=graph-rest-1.0&tabs=java

请帮助我了解请求中“ availabilityViewInterval”的重要性和用法,以及响应中“ availabilityView”的用法。
另外,状态值将仅是“忙/闲”,还是可以具有其他任何值?
提前致谢

最佳答案

文档说:


表示响应中AvailabilityView中的时隙持续时间。默认值为30分钟,最小为5分钟,最大为1440。可选。


这表示availabilityView中的时隙大小。看一个例子可能会有所帮助。

这是来自文档的示例请求:

{
    "schedules": ["[email protected]", "[email protected]"],
    "startTime": {
        "dateTime": "2019-03-15T09:00:00",
        "timeZone": "Pacific Standard Time"
    },
    "endTime": {
        "dateTime": "2019-03-15T18:00:00",
        "timeZone": "Pacific Standard Time"
    },
    "availabilityViewInterval": 60
}


availabilityViewInterval设置为60,这意味着返回的availabilityView中的每个数字代表60分钟的时间。样本响应显示了Megan的值200220010。 0 =空闲,1 =暂定,2 =忙碌时,我们可以将其解码为:


9AM-10AM忙
10AM-11AM免费
11AM-12PM免费
12PM-1PM忙
1PM-2PM忙
2PM-3PM免费
3PM-4PM免费
暂定4PM-5PM
5PM-6PM免费


如果您在availabilityViewInterval设置为30的情况下执行了相同的请求,则会返回availabilityView220000222200001100,每个数字代表30分钟的时间。

07-26 09:33