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

从Google Sheets同步预订信息到Google Calendar的脚本求助

修正后的Google Sheets到Calendar同步脚本(指定单元格版本)

原脚本存在的问题

  • 冗余循环逻辑:你要同步的是指定单个单元格的预订信息,无需获取B3:D6区域并循环处理,且循环中用单元格地址(如shift["B4"])访问数组的方式完全错误——getValue()返回的是二维数组,只能通过行列索引访问,不能用单元格地址作为键。
  • 事件参数键名错误:Google Calendar的createEvent方法中,地点对应的参数键是location,描述是description,原脚本用loc和des会导致这两个信息无法同步到日历。
  • 变量重复赋值:循环内重新赋值title等变量,覆盖了之前从指定单元格获取的正确值。

修正后的脚本

function Reservaciones() {
  // 获取当前活跃工作表
  const spreadsheet = SpreadsheetApp.getActiveSheet();
  
  // 从B1单元格获取目标日历ID
  const calendarId = spreadsheet.getRange("B1").getValue();
  const eventCal = CalendarApp.getCalendarById(calendarId);
  
  // 从指定单元格获取预订信息
  const title = spreadsheet.getRange("D4").getValue();
  const startTime = spreadsheet.getRange("B4").getValue();
  const endTime = spreadsheet.getRange("C4").getValue();
  const location = spreadsheet.getRange("C5").getValue();
  const description = spreadsheet.getRange("C6").getValue();
  // 指定参会人邮箱,多个邮箱用逗号分隔
  const guests = 'something@hotmail.com';

  // 验证必要信息是否存在
  if (!title || !startTime || !endTime || !calendarId) {
    SpreadsheetApp.getUi().alert('请确保标题、时间、日历ID已填写完整');
    return;
  }

  // 创建日历事件
  eventCal.createEvent(title, startTime, endTime, {
    location: location,
    description: description,
    guests: guests,
    sendInvites: true // 自动发送参会邀请
  });

  // 同步成功提示
  SpreadsheetApp.getUi().alert('预订信息已成功同步到Google Calendar');
}

关键修改说明

  1. 移除冗余逻辑:删掉无用的signup变量和循环,直接使用指定单元格的信息创建单个事件,完全匹配你“指定特定单元格而非连续区域”的需求。
  2. 修正参数键名:将loc改为location、des改为description,确保地点和描述能正确同步到日历事件中。
  3. 添加验证与提示:增加必填项校验,避免因信息缺失导致脚本报错;同步完成后弹出提示,明确操作结果。
  4. 优化参会人设置:保留sendInvites: true确保参会人收到邀请邮件,多个参会人可写成'email1@xxx.com,email2@xxx.com'。

可选:设置自动触发(新增预订时自动同步)

如果需要在填写完预订信息后自动触发同步,可按以下步骤操作:

  1. 打开脚本编辑器,点击左侧「触发器」图标。
  2. 点击「添加触发器」,设置:
    • 选择函数:Reservaciones
    • 选择部署类型:「从电子表格」
    • 选择事件源:「编辑时」
    • 保存并授权权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 22:05:26