简体   繁体   中英

Fill Google calendar events in spreadsheet by color via Google apps script

I have the following so far to add events within a specified date range on a Google calendar to a spreadsheet. However, I was wondering if there's a way to color the spreadsheet event according to its Google calendar color. Thank you for looking.

function calendartosheet(){
  var cal = CalendarApp.getCalendarById('CALENDAR_ID');
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SHEET_NAME");
  var events = cal.getEvents(new Date("October 1, 2015"), new Date("October 14, 2015"));
for (var i=0;i<events.length;i++) {
var details=[[events[i].getTitle(), events[i].getStartTime(), events[i].getDescription(), events[i].getEndTime()]];
var row=i+1;
var range=sheet.getRange(row,1,1,4);
range.setValues(details);
}
}

You can get the color of the calendar with the function "getColor()". And to set that same color you can call the function "setBackground(color);"

So your code could be like:

function calendartosheet(){
  var cal = CalendarApp.getCalendarById('CALENDAR_ID');
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SHEET_NAME");
  var events = cal.getEvents(new Date("October 1, 2015"), new Date("October 14, 2015"));
  var color = cal.getColor();
for (var i=0;i<events.length;i++) {
var details=[[events[i].getTitle(), events[i].getStartTime(), events[i].getDescription(), events[i].getEndTime()]];
var row=i+1;
var range=sheet.getRange(row,1,1,4);
range.setValues(details);
range.setBackground(color);
}
}

Hope this helps you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM