0

当我手动创建日历事件时,可以为事件赋予特殊颜色。如何使用脚本访问/更改此颜色?搜索了所有文档,但仅在日历级别找到颜色,而不是在事件级别。

4

3 回答 3

1

“colorId”是事件资源的字符串属性。

https://developers.google.com/google-apps/calendar/v3/reference/events#resource

于 2013-12-16T07:57:35.437 回答
1

新的高级日历服务允许您现在执行此操作。查看“创建事件”标题下的示例代码:

https://developers.google.com/apps-script/advanced/calendar

如果更改帮助页面,我会将其粘贴在下面:

   function createEvent() {
  var calendarId = 'primary';
  var start = getRelativeDate(1, 12);
  var end = getRelativeDate(1, 13);
  var event = {
    summary: 'Lunch Meeting',
    location: 'The Deli',
    description: 'To discuss our plans for the presentation next week.',
    start: {
      dateTime: start.toISOString()
    },
    end: {
      dateTime: end.toISOString()
    },
    attendees: [
      {email: 'alice@example.com'},
      {email: 'bob@example.com'}
    ],
    // Red background. Use Calendar.Colors.get() for the full list.
    colorId: 11
  };
  event = Calendar.Events.insert(event, calendarId);
  Logger.log('Event ID: ' + event.getId());
}

/**
 * Helper function to get a new Date object relative to the current date.
 * @param {number} daysOffset The number of days in the future for the new date.
 * @param {number} hour The hour of the day for the new date, in the time zone
 *     of the script.
 * @return {Date} The new date.
 */
function getRelativeDate(daysOffset, hour) {
  var date = new Date();
  date.setDate(date.getDate() + daysOffset);
  date.setHours(hour);
  date.setMinutes(0);
  date.setSeconds(0);
  date.setMilliseconds(0);
  return date;
}
于 2015-12-21T17:50:56.027 回答
0

另一个答案是指您最终可以访问的日历 API,但它不是 GAS 中可用的标准日历方法的一部分。

您可以通过使用由 Romain Vialard(gas top 贡献者)开发的库来简化您的生活,该库可在他的网站上以及我编写的广泛使用它的应用程序中找到

编辑:在我不久前提出的问题跟踪器上也有一个增强请求,请随时为它加注星标。

于 2013-12-16T09:19:43.673 回答