更改日历事件颜色

时间:2015-12-10 23:57:17

标签: google-apps-script google-calendar-api

我希望能够以编程方式更改日历事件的颜色。我正在浏览此文档,但不明白“密钥”在这里指的是什么:https://developers.google.com/google-apps/calendar/v3/reference/colors。它是事件ID吗?

我还想知道是否可以通过电子表格更改日历事件颜色。我有一个脚本可以将电子表格中的条目添加到日历中,但我希望能够定义颜色。如果可能的话,请指出有用的阅读材料或例子。

编辑12/20 / 2015-添加工作脚本以添加事件:

function createEvent() {
var calendarId = 'MY_ID';
var event = {
summary: 'test',
description: 'test desc',
"end": {
"date": "2015-12-21"
},
"start": {
"date": "2015-12-21"
},
colorId: 10
};
event = Calendar.Events.insert(event, calendarId);
Logger.log('Event ID: ' + event.getId());
}

2 个答案:

答案 0 :(得分:2)

哦,你对谷歌缺少这方面的文件感到困惑吗?别担心,我是Here's数字(键)和相关颜色的图表。最后看起来像这样:

var event = {
    summary: "Summarizing",
    description: "Descriptive",
    start: {
      date: Utilities.formatDate(start, "GMT-5", "yyyy-MM-dd")
    },
    end: {
      date: Utilities.formatDate(end, "GMT-5", "yyyy-MM-dd")
    },
    colorId: 10
  };
  event = Calendar.Events.insert(event, calendarId); 
 }

希望有所帮助!对于第二部分:应该可以,只需确保您使用的是Google日历高级服务。如果没有关于你要做什么的更多细节,很难提供更多信息:/

答案 1 :(得分:0)

旧帖子,但万一有人正在寻找一些示例代码。 以下代码包含存储在电子表格中的所有信息:

function myFunction() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Your Sheet Name")
var index = 2;
var lastRow = sheet.getLastRow();

for (;index <= lastRow; index++){
var title = sheet.getRange(index, 1, 1, 1).getValue();
var startTime = sheet.getRange(index, 2, 1, 1).getValue();
var endTime = sheet.getRange(index, 3, 1, 1).getValue();
var description = sheet.getRange(index, 4, 1, 1).getValue();
var location = sheet.getRange(index, 5, 1, 1).getValue();
var guests = sheet.getRange(index, 6, 1, 1).getValue();
var eventColour = sheet.getRange(index, 7, 1, 1).getValue();
var sendInvites = true;

var calendar = CalendarApp.getCalendarById("your Calendar ID").createEvent(title, startTime, endTime,
{description: description, location: location, guests: guests, sendInvites: sendInvites }).getId();

if (eventColour === "Condition1") CalendarApp.getEventById(calendar).setColor("10")
if (eventColour === "Condition2") CalendarApp.getEventById(calendar).setColor("11")
if (eventColour === "Condition3") CalendarApp.getEventById(calendar).setColor("12")
if (eventColour === "Condition4") CalendarApp.getEventById(calendar).setColor("13")


}// End of For Loop
}// End of Function