Ошибка «Объект не позволяет» при попытке обновить цвет события с помощью расширенной службы календаря - PullRequest
1 голос
/ 13 июля 2020

Основываясь на этом ответе @Ilya, я создал этот код:

var event = CalendarApp.getCalendarById(calendarid).createEvent(
    eventtitle,
    startfull,
    endfull,
    {description: eventdescription,
    location: eventaddress}
);
event.id = event.getId();
event.colorId = "#616161";
Calendar.Events.patch(event, calendarid, event.id);

В основном пытаюсь «затенять» некоторые менее важные события, оставляя другие в цвет календаря по умолчанию. Это изменение цвета происходит при том же выполнении, что и фактическое создание события. Событие создается нормально, но только с цветом календаря по умолчанию. При запуске приведенного выше кода я получаю сообщение об ошибке:

Объект не позволяет добавлять или изменять свойства.

Я думаю, что, возможно, это как-то связано с это , но я не уверен, как его решить.

Для дальнейшего использования другими пользователями, вот лучший список цветов, который я смог найти на данный момент.

1 Ответ

2 голосов
/ 13 июля 2020

Идентификатор цвета можно получить с помощью метода Colors: get в Calendar API. Например, вы можете протестировать этот метод по адресу «Попробуйте этот API» . В случае "серого", я думаю, идентификатор цвета может быть 8. Поэтому проверьте следующую модификацию.

От:

var event = CalendarApp.getCalendarById(calendarid).createEvent(
    eventtitle,
    startfull,
    endfull,
    {description: eventdescription,
    location: eventaddress}
);
event.id = event.getId();
event.colorId = "#616161";
Calendar.Events.patch(event, calendarid, event.id);

Кому:

var event = CalendarApp.getCalendarById(calendarid).createEvent(
    eventtitle,
    startfull,
    endfull,
    {description: eventdescription,
    location: eventaddress}
);
Calendar.Events.patch({colorId: 8}, calendarid, event.getId().replace("@google.com", ""));

Примечание:

  • К сожалению, event.getId() нельзя использовать для Calendar.Events.patch. В этом случае @google.com необходимо удалить. Будьте осторожны.
  • Если вы хотите использовать другие цвета, получите идентификатор цвета и используйте его.

Ссылки:

...