首页 > 解决方案 > 通过检查 Google SpreadSheet 列的值“YES”为绿色和“NO”为红色来更改 Google 日历中事件的颜色

问题描述

下面的代码完美运行,现在我需要有条件地更改日历事件的颜色。我是这种编码的新手。任何人都可以为我编辑此代码......

function CreateEvent() {
  var sh=SpreadsheetApp.getActiveSheet();
  //var calendarId = spreadsheet.getRange('***<LINKTOCELLTHATHASCALENDARID>***').getValue();
  var eventCal = CalendarApp.getCalendarById('YOUR_CALENDAR_ID');
  var drg=sh.getRange(2,1,sh.getLastRow()-1,7);
  var dA=drg.getValues(); 
  var crg=sh.getRange(2,6,sh.getLastRow()-1,1);//save that event was created in column G
  var cA=crg.getValues();
  for (i=0;i<dA.length;i++) {
    var shift=dA[i];
    var title=shift[0];
    var startTime=shift[1];
    var endTime=shift[2];
    //var guests=shift[3];
    var description=shift[3];
    var location=shift[4];  
    if(!shift[5]) {
      var event={'location': location,'description': description +',','sendInvites': 'True'}
      eventCal.createEvent(title, startTime, endTime, event)
      cA[i][0]="CREATED";//keeps this event from being created again
    }
  }
  crg.setValues(cA);
}

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

解决方案


假设值在 G 列中:

      var e = eventCal.createEvent(title, startTime, endTime, event);
      var b = shift[6];
      if (b === 'YES') { e.setColor(CalendarApp.EventColor.GREEN); }
      if (b === 'NO') { e.setColor(CalendarApp.EventColor.RED); }

参考:

设置颜色(颜色)

枚举颜色


推荐阅读