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

如何通过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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:45:08