首页 > 解决方案 > Google 表格到日历应用脚本 ColorId

问题描述

这是我对谷歌脚本编辑器的介绍,我对这件事知之甚少。无论如何,我正在尝试运行一个脚本来使用来自 Google 表格的数据在 Google 日历上创建事件。我最终得到了下面的代码。

function createCalendarEvent() {
  var sheet = SpreadsheetApp.getActiveSheet();
    var calendar = CalendarApp.getCalendarById('ID');

  var startRow = 2;  
  var numRows = sheet.getLastRow();   
  var numColumns = sheet.getLastColumn();

  var dataRange = sheet.getRange(startRow, 1, numRows-1, numColumns);
  var data = dataRange.getValues();

  var complete = "Done";

  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var client = row[0]; //Client
    var task = row[1];  //Task
    var employee = row[2] //Employee
    var date = new Date(row[3]);  //Start Date
    var rDate = new Date(row[4]); //End Date
    var addguest = row[8]; //Employee Email
    var employeecolor = row[9]; //Employee Calendar Color
    var eventID = row[10]; //Scheduled?

    Logger.log(row)

    if (eventID != complete) {
      var currentCell = sheet.getRange(startRow + i, numColumns);
      calendar.createAllDayEvent(employee+ " - " + client, rDate, 
      {description: task, colorId: employeecolor, guests: addguest, sendInvites: true

      });

      currentCell.setValue(complete);

    }
  }
}

该脚本创建一个事件并向客人发送电子邮件邀请,但我唯一无法工作的是 ColorID。现在,表格中的 colorID 单元格会生成一个介于 1-11 之间的数字。我已经尝试了来自 Google 参考的十六进制颜色代码和 Enum EventColor 属性,但似乎没有任何东西可以改变默认日历颜色的颜色。帮助。不知道出了什么问题,如果已经回答了,我很抱歉。谢谢阅读。

标签: google-apps-scriptgoogle-sheetsgoogle-calendar-api

解决方案


如果不使用高级服务,您将无法设置事件颜色。您可以在文档setColor上的方法描述中看到这一点。要更改事件的颜色,请将其插入到具有正确颜色的日历中。您作为选项传递的对象没有这些属性,请查看文档以获取可用属性。

但是,如果您使用的是高级服务,则可以按照此答案中的说明设置颜色。


推荐阅读