Изменение статуса ответа пользователя на будущие события с помощью API Календаря Google

#google-calendar-api

#google-calendar-api

Вопрос:

У меня есть повторяющееся событие, созданное в Календаре Google. Как я могу принять все будущие события («это и последующие события») для гостя с помощью API Календаря Google?

Я нашел только примеры, в которых responseStatus было установлено значение для всего события (всех экземпляров) или для одного экземпляра. Я не могу следовать решению из: https://developers.google.com/calendar/recurringevents#modifying_all_following_instances , потому что только создателю события разрешено изменять повторяющееся правило исходного события — у меня есть доступ только к учетной записи гостя.

Ответ №1:

Поскольку вы не можете обновить recurrence правила основного события, вместо этого вы можете сделать следующее:

  • Используя eventId повторяющееся событие, вызовите Events: instances, чтобы перечислить все экземпляры события.
  • Фильтруйте возвращенные экземпляры в соответствии с их start и / или end датами, чтобы прошлые события были удалены из списка.
  • Для каждого из оставшихся событий вызовите Events: patch, чтобы обновить статус ответа участника, этот статус:

Единственное изменение события, которое передается от участников обратно организатору

Комментарии:

1. Спасибо за ваш ответ. Предлагаемое решение может привести к созданию нескольких исключений. Этого я бы хотел избежать. Особенно в случае, когда мне приходилось иметь дело с бесконечным повторяющимся событием, это было бы очень неэффективно.

2. @MarcinM Хотя это решение может привести к исключениям, я не думаю, что есть лучший способ сделать это, поскольку изменение recurrence правил основного события невозможно, если вы не являетесь создателем события. Это делает невозможным одновременное обновление многих (но не всех) экземпляров события. Что касается бесконечного повторяющегося события, я бы рассмотрел возможность фильтрации не только по минимальной дате (сегодня?), Но и по максимальной дате (далеко в будущем), чтобы вы получили конечное число экземпляров.