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

如何在Google Sheets同步数据到Google Calendar时添加事件颜色

实现Google Sheets数据同步日历并按E列设置事件颜色

要根据工作表E列的颜色选择为日历事件设置对应颜色编码,你需要修改脚本,建立工作表颜色值与Google Calendar颜色ID的映射关系,然后在创建事件时传入颜色参数。具体步骤如下:

1. 了解Google Calendar颜色规则

Google Calendar的事件颜色使用固定的colorId(数字ID),而非直接的RGB或颜色名称,常用对应关系参考:

  • 蓝色: 1
  • 绿色: 2
  • 紫色: 3
  • 橙色: 5
  • 红色: 6
  • 黄色: 7
  • 灰色: 8
    你可以在日历设置里查看所有颜色对应的ID,或直接用数字测试。

2. 修改后的完整脚本

function create_Events() {
  var ss = SpreadsheetApp.getActive();
  var sh = ss.getSheetByName("Timesheet");
  // 获取A到E列的所有数据
  var vs = sh.getRange("A1:E" + sh.getLastRow()).getValues();
  var cal = CalendarApp.getCalendarById("John@email");
  
  // 建立工作表E列值与日历colorId的映射(可根据你的实际需求修改)
  const colorMap = {
    "蓝色": 1,
    "绿色": 2,
    "紫色": 3,
    "橙色": 5,
    "红色": 6,
    "#0000FF": 1, // 也支持直接匹配颜色代码
    "#00FF00": 2
  };

  // 遍历每一行数据,注意解构时加入E列的colorVal
  vs.forEach(([t, s, e, d, colorVal]) => {
    // 从映射表获取对应的colorId,无匹配则用默认(可不传)
    const colorId = colorMap[colorVal] || undefined;
    // 创建事件时传入colorId参数
    cal.createEvent(t, new Date(s), new Date(e), { 
      description: d,
      colorId: colorId
    });
  });
}

3. 关键修改说明

  • 解构E列数据:在forEach的参数里加入colorVal,对应工作表的E列值;
  • 颜色映射表:colorMap定义了你工作表E列的颜色名称/代码和日历colorId的对应关系,你可以根据自己的实际输入(比如E列是下拉选的颜色名称,或直接填的十六进制代码)调整;
  • 传入颜色参数:在createEvent的选项对象里添加colorId,将映射后的ID传入。

如果E列可能为空,脚本会自动使用日历默认颜色,无需额外处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 06:45:33