Как вернуться, если Календарное время Google или Календарное событие занято? - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь определить, есть ли календарь в течение определенного времени c. В частности, когда событие календаря создается вручную, есть флажок для занят или свободен :

Image of Setting

Я хотел бы проверить если календарь свободен или нет. Я предположил, что это было бы свойство в самом календаре, но я не вижу его в Google Calendar классах . (Я искал какое-то свойство по типу «isBusy»).

Мой следующий шаг - проверить, есть ли события в запрошенное время, и если они есть, я снова не вижу метод, чтобы проверить, занята ли установка события или нет. Кто-нибудь знает, как это сделать?

Вот что у меня есть:

function getAvailability(startTime,EndTime){
  var myCalendar = CalendarApp.getDefaultCalendar();

  //sample date to test availability 
  var aDate = new Date(2020,3,19);
  var dayEvents = myCalendar.getEventsForDay(aDate);

  //specific event captured:
  var myEvent = dayEvents[0];
  Logger.log(myEvent.getDescription());
 //here is where I don't know what to do. 
 //How can I return if during this event's time if calendar is free?

}

1 Ответ

0 голосов
/ 13 апреля 2020

Вам необходимо использовать объект FreeBusy для проверки этой детали.

Это можно сделать, создав запрос, подобный:

    var check = {
 items: [{id: calendarId, busy: 'Active'}],
 timeMax: "2014-09-09T21:00:31-00:00",
 timeMin: "2014-09-09T17:00:31-00:00"
};

, и используя запрос:

var response = Calendar.Freebusy.query(check);

, чтобы получить детали, которые вы просили проверить.

Документацию API для FreeBusy можно найти здесь: https://developers.google.com/calendar/v3/reference/freebusy

...