如何用脚本创建以当前工作表标签命名的两周后Google日历事件?
解决方案
你的需求很清晰——要创建一个以当前活动工作表标签命名、两周后开始的Google日历事件。现有代码的核心问题是硬编码了固定日期,我们只需要替换日期计算逻辑,并优化下代码的可读性即可。
修改后的完整代码
function addWorksheetEventToCalendar() { // 获取当前活动工作表的名称 const sheetName = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName(); // 计算两周后的日期:当前日期 + 14天 const twoWeeksLater = new Date(); twoWeeksLater.setDate(twoWeeksLater.getDate() + 14); // 在默认日历创建全天事件,标题包含工作表名称 const event = CalendarApp.getDefaultCalendar().createAllDayEvent( `Check on status of re:${sheetName} application`, twoWeeksLater ); // 打印事件ID,方便后续编辑或删除 Logger.log(`Event ID: ${event.getId()}`); }
关键细节说明
- 日期计算:使用
new Date()获取当前系统日期,再通过setDate(getDate() + 14)直接添加14天。这种方法会自动处理跨月、闰年等边界情况,比手动计算毫秒数更稳妥。 - 代码可读性优化:
- 把模糊的变量名
name改成sheetName,明确其用途; - 函数名从默认的
myFunction改为addWorksheetEventToCalendar,让你在脚本列表里一眼就能识别它的功能; - 使用模板字符串(反引号
`)拼接标题,比加号拼接更简洁。
- 把模糊的变量名
- 权限说明:第一次运行脚本时,Google会要求你授权脚本访问你的工作表和日历,按照提示完成授权即可。
运行步骤
- 打开你的Google工作表,点击顶部菜单「扩展程序」→「Apps脚本」;
- 替换原有代码为上面的新代码,保存项目(可命名为
SheetToCalendarEvent); - 点击运行按钮,完成授权后即可创建事件。
这样运行后,你的默认Google日历就会新增一个全天事件,标题包含当前活动工作表的名称,开始时间为两周后的当天。
内容的提问来源于stack exchange,提问作者user718229
相关产品推荐
相关产品推荐

