You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script获取日历参会人邮箱并按参会人给事件标色

问题根因
  • 原有代码中使用遍历事件的索引变量j来读取参会人列表guestlist的元素,索引不匹配,只能获取到下标与当前事件序号一致的单个参会人
  • 未对单个事件的全部参会人做遍历,无法匹配所有参会人身份
修复后可用代码
var today = new Date();
var nextweek = new Date();
nextweek.setDate(nextweek.getDate() + 7);
Logger.log(today + " " + nextweek);

var calendars = CalendarApp.getAllOwnedCalendars(); 
Logger.log("found number of calendars: " + calendars.length); 

for (var i=0; i<calendars.length; i++) { 
  var calendar = calendars[i];           
  var events = calendar.getEvents(today, nextweek); 
  for (var j=0; j<events.length; j++) {
    var e = events[j];
    var title = e.getTitle();
    var guestlist = e.getGuestList();
    // 遍历当前事件所有参会人
    for (var k = 0; k < guestlist.length; k++) {
      var guestEmail = guestlist[k].getEmail();
      if (guestEmail == "example0@gmail.com") {
        e.setColor(CalendarApp.EventColor.CYAN);
      }
      if (guestEmail == "example1@gmail.com") {
        e.setColor(CalendarApp.EventColor.YELLOW);
      }
      if (guestEmail == 'example2@gmail.com') {
        e.setColor(CalendarApp.EventColor.GREEN);
      }
    }
  }
}
使用说明
  • 代码新增了参会人遍历逻辑,会逐个校验当前事件的所有参会人邮箱,匹配到规则就执行颜色标记
  • 若单个事件同时存在多个符合规则的参会人,后执行的颜色规则会覆盖之前的设置,你可以根据需求调整三个if判断的先后顺序,把优先级更高的颜色规则放在靠后的位置即可

内容的提问来源于stack exchange,提问作者Bebbo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:24:04