使用Apps Script从GSheet同步至GCal报错:Exception: Invalid argument: title
解决建议
核心问题
你取的表格范围GE!F14:G16只有2列(F列是开始时间、G列是结束时间),但代码里尝试获取event[2]作为事件标题,这会导致tasks的值为undefined。而Google日历创建事件时标题参数不能为空或无效值,因此抛出Invalid argument: title错误。
具体修复步骤
调整数据范围
如果事件标题在H列(比如GE!H14:H16),需要把获取数据的范围改成包含标题列,示例代码:var workplans = spreadsheet.getRange("GE!F14:H16").getValues();这样
event[2]就能正确获取到标题内容。添加标题有效性校验
在创建事件前先检查标题是否有效,避免无效值导致报错:if (tasks && typeof tasks === "string" && tasks.trim() !== "") { eventCal.createEvent(tasks, startTime, endTime); } else { console.log(`第${x+1}行无有效标题,跳过事件创建`); }校验时间格式(可选)
额外检查时间是否为有效日期,避免因时间格式错误引发其他问题:if (isNaN(startTime.getTime()) || isNaN(endTime.getTime())) { console.log(`第${x+1}行时间格式无效,跳过`); continue; }修复循环变量声明
代码中x未用let/const声明会成为全局变量,建议修改为:for (let x = 0; x < workplans.length; x++) {
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

