如何通过Google Apps Script为Google Sheet添加日历事件直接访问链接
谷歌日历事件导出至Google Sheet追加访问链接实现方案
核心实现逻辑:谷歌日历每个事件都有唯一ID,直接拼接即可生成永久访问链接,拼接规则为https://calendar.google.com/calendar/event?eid=事件ID
完整可运行脚本示例
- 打开你的Google Sheet,点击顶部「扩展程序」-「Apps Script」进入脚本编辑页
- 替换原有代码为以下内容即可:
function exportCalendarEventsWithUrl() { // 配置项:可根据需求修改 const CALENDAR_ID = 'primary'; // 替换为你的日历ID,primary为当前账号主日历 const START_DATE = new Date('2024-01-01'); // 导出事件的起始时间 const END_DATE = new Date('2024-12-31'); // 导出事件的结束时间 const SHEET_NAME = 'Sheet1'; // 替换为你的表格工作表名称 const URL_COLUMN_INDEX = 5; // 链接写入第5列(E列),可自行调整 // 获取工作表和日历对象 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME); const calendar = CalendarApp.getCalendarById(CALENDAR_ID); const events = calendar.getEvents(START_DATE, END_DATE); // 构造表头 const headers = ['事件标题', '开始时间', '结束时间', '事件描述', '日历访问链接']; sheet.getRange(1, 1, 1, headers.length).setValues([headers]); // 遍历事件写入表格 const outputData = events.map(event => { const eventId = event.getId(); // 生成事件直接访问链接 const eventUrl = `https://calendar.google.com/calendar/event?eid=${eventId}`; return [ event.getTitle(), event.getStartTime(), event.getEndTime(), event.getDescription(), eventUrl ]; }); // 批量写入数据到表格 if (outputData.length > 0) { sheet.getRange(2, 1, outputData.length, outputData[0].length).setValues(outputData); // 可选:将链接列设置为文本格式避免识别异常 sheet.getRange(2, URL_COLUMN_INDEX, outputData.length, 1).setNumberFormat('@'); } }
已有基础脚本的适配方法
仅需要新增2行代码即可完成功能扩展:
- 遍历事件时获取事件ID生成链接:
const eventUrl =https://calendar.google.com/calendar/event?eid=${event.getId()}`` - 将生成的
eventUrl写入你新增的对应列单元格即可
注意事项
- 首次运行脚本需要按照弹窗提示完成权限授权
- 代码中的配置项可根据你实际的表格结构、时间范围自行调整
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

