Как проверить, является ли событие календаря исключением или экземпляром - PullRequest
0 голосов
/ 08 января 2019

Я использую Google Calendar API в своем приложении для повторяющихся событий (операции создания, обновления и удаления), но не могу найти, является ли повторяющееся событие экземпляром или исключение событие

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

К сожалению, нет способа определить, является ли экземпляр исключением повторяющегося события. Единственный выход - это разнести экземпляр с основным событием или использовать originalStartTime, который уникальным образом идентифицирует экземпляр (можно сравнить originalStartTime с начальными объектами date / dateTime, хотя это не получится, если вы изменили сводку или другое текстовое поле). .

Я решил эту проблему, сделав запрос на добавочное изменение с помощью nextSyncToken. Если было сделано исключение, экземпляр будет в полезной нагрузке, которая возвращается из списка вызовов. Я проверяю, связан ли с этим экземпляром атрибут recurringEventId, и если он есть, я знаю, что этот экземпляр является исключением.

Настоятельно рекомендовал бы, чтобы Google включил систему, аналогичную системе Microsoft Graph, которая использует атрибут, который определяет, является ли событие экземпляром или исключением.

источник: https://developers.google.com/calendar/recurringevents

0 голосов
/ 08 января 2019

Создание повторяющихся событий аналогично созданию регулярного (одиночного) события с установленным полем повторения ресурса события.

POST /calendar/v3/calendars/primary/events
...

{
  "summary": "Appointment",
  "location": "Somewhere",
  "start": {
    "dateTime": "2011-06-03T10:00:00.000-07:00",
    "timeZone": "America/Los_Angeles"
  },
  "end": {
    "dateTime": "2011-06-03T10:25:00.000-07:00",
    "timeZone": "America/Los_Angeles"
  },
  "recurrence": [
    "RRULE:FREQ=WEEKLY;UNTIL=20110701T170000Z",
  ],
  "attendees": [
    {
      "email": "attendeeEmail",
      # Other attendee's data...
    },
    # ...
  ],
}

Чтобы увидеть все экземпляры данного повторяющегося события, вы можете использовать запрос events.instances ().

Запрос events.list () по умолчанию возвращает только отдельные события, повторяющиеся события и исключения; экземпляры, которые не являются исключениями, не возвращаются. Если параметр singleEvents установлен, то все отдельные экземпляры появляются в результате, но не в базовых повторяющихся событиях.

для получения дополнительной информации см. recurringevents

...