【问题标题】:Change Google Calendar event colour based on variable instead of Enum EventColor根据变量而不是 Enum EventColor 更改 Google 日历事件颜色
【发布时间】:2019-12-29 22:36:48
【问题描述】:

我可以根据枚举事件颜色 (https://developers.google.com/apps-script/reference/calendar/event-color) 更改事件颜色,但我想传递一个包含用户选择的枚举事件颜色的变量。如果我运行下面的代码,我会得到错误 Invalid argument: undefined,所以它似乎没有找到 var greenEv。是否可以使用变量而不是硬编码的颜色?

我查看了其他一些似乎使用 colorId 的方法,但我认为这已被 Google 逐步淘汰,因为我在他们的文档中找不到任何内容。

function ColorEvents() {

//test to change colours of past events
var start = new Date();
var end = new Date();
start.setDate(start.getDate() - 11);


var calendars = CalendarApp.getDefaultCalendar();
var calColour = CalendarApp.getColor();
var calName = calendars.getName();
Logger.log("Name of calendar: " + calName);
Logger.log("Colour of calendar: " + calColour);

var events = calendars.getEvents(start, end);
Logger.log("Number of events: " + events.length);

for (var j = 0; j < events.length; j++) {
    var ev = events[j];

    var title = ev.getTitle();
    var desc = ev.getDescription();
    var guestList = ev.getGuestList();


    var internalOnly = 1;

    for (var d = 0; d < guestList.length; d++) {
        var guest = guestList[d];

        var guestName = guest.getEmail();
        if (guestName.indexOf("gmail") == -1) {
            internalOnly = 0;
        }
    }

        var greenEv = "GREEN"; //but this could also be RED depending on what the user selects on the spreadsheet

    //internal event
    if (internalOnly == 1) {
        ev.setColor(CalendarApp.EventColor.greenEv); //this breaks
    }

    //personal
    if (guestList.length == 0) {
        ev.setColor(CalendarApp.EventColor.MAUVE); //this works
    }

}
}

【问题讨论】:

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


    【解决方案1】:

    一个简单的 if 语句就解决了这个问题:

            if (intColour == "GREEN") {
        var internalEv = CalendarApp.EventColor.GREEN;
        } else if (intColour == "RED") {
        var internalEv = CalendarApp.EventColor.RED;
        }
    
        //internal event
        if (internalOnly == 1) {
            ev.setColor(internalEv);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-12
      相关资源
      最近更新 更多