谷歌表格到日历脚本

时间:2021-04-30 15:30:15

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

我对脚本编辑很陌生。我复制了一份来自在线来源的电子表格,以便为学生添加活动。

Screenshot Example

我希望能够添加描述,然后根据类更改事件颜色。我正在使用的脚本复制如下。我不知道如何为活动添加描述颜色 ID

function scheduleShifts() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
    var calendarID = spreadsheet.getRange("C4").getValue();
    var eventCal = CalendarApp.getCalendarById("calendarId");
var signups = spreadsheet.getRange("A5:C7").getValues();
for (x=0; x<signups.length;x++)
{
    var shift = signups[x];
    var startTime = shift[0];
    var endTime = shift[1];
    var volunteer= shift[2];
    eventCal.createEvent(volunteer, startTime, endTime);
}
}

1 个答案:

答案 0 :(得分:0)

正如@Ruben 所提到的,您可以使用 Calendar.createEvent(title, startTime, endTime, options) 创建具有附加选项(例如描述、位置、来宾和发送邀请)的事件。它将返回一个 CalendarEvent 对象,您可以在其中使用 CalendarEvent.setColor(color) 设置事件颜色。您可以查看 CalendarEvent 对象中可用的其他方法以获取更多信息。

示例代码:

function scheduleShifts() {
  var spreadsheet = SpreadsheetApp.getActiveSheet();
  var calendarID = spreadsheet.getRange("C4").getValue();
  var eventCal = CalendarApp.getCalendarById(calendarID);
  var signups = spreadsheet.getRange("A5:E7").getValues(); //modified, include column D and E

  
  for (x=0; x<signups.length;x++)
  {
    var shift = signups[x];
    var startTime = shift[0];
    var endTime = shift[1];
    var volunteer= shift[2];
    var desc= shift[3];
    var color = shift[4];
    var event = eventCal.createEvent(volunteer, startTime, endTime,{description:desc});

    //Check if color exist
    if(color){
      //Set event color
      event.setColor(CalendarApp.EventColor[color]);
    }
  }
}

输出:

enter image description here