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

使用Google Apps Script批量导入日历事件遇Bad Request错误求助

排查Google Calendar导入CSV时的Bad Request错误

以下是几个可能导致错误的原因及对应的解决方法:

1. Calendar.Events.import 调用参数不符合API要求

你的代码直接将CSV字符串传入Calendar.Events.import,但该API方法需要将CSV作为带正确MIME类型的Blob对象传入,并且需要指定导入参数。修改代码如下:

function importSheetToCalendar() {
  var spreadsheetId = "YOUR_SPREADSHEET_ID";
  var sheetName = "✨ CUSTOMIZE";
  var calendarId = "YOUR_CALENDAR_ID";
  
  var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
  var sheet = spreadsheet.getSheetByName(sheetName);
  var data = sheet.getDataRange().getValues();
  
  var csvData = convertToCSV(data);
  // 将CSV字符串转为Blob,设置正确的MIME类型
  var csvBlob = Utilities.newBlob(csvData, "text/csv", "events.csv");
  
  // 配置导入参数
  var importParams = {
    sendNotifications: false, // 根据需求设置是否发送通知
    supportsAttachments: false
  };
  
  var events = Calendar.Events.import(csvBlob, calendarId, importParams);
  Logger.log(events);
}

2. CSV格式未正确转义特殊字符

你的convertToCSV函数直接用逗号拼接字段,若字段包含逗号、换行符或双引号,会破坏CSV结构。修改为符合标准的CSV转义逻辑:

function convertToCSV(data) {
  var csvRows = [];
  for (var i = 0; i < data.length; i++) {
    var row = data[i].map(function(field) {
      // 若字段包含逗号、双引号或换行,用双引号包裹并转义内部的双引号
      if (field.toString().match(/[,"\n]/)) {
        return '"' + field.toString().replace(/"/g, '""') + '"';
      }
      return field;
    });
    csvRows.push(row.join(","));
  }
  return csvRows.join("\n");
}

3. 工作表表头与Google Calendar要求不匹配

确认Sheet的第一行表头严格匹配官方要求的字段名(大小写敏感),例如必须包含:

  • Subject(事件标题)
  • Start Date(开始日期,格式如YYYY-MM-DD)
  • Start Time(开始时间,格式如HH:MM,若为全天事件可省略)
  • End Date(结束日期)
  • End Time(结束时间,若为全天事件可省略)
    额外字段如Description、Location需严格使用官方指定的名称,拼写或大小写错误会导致API解析失败。

4. 未启用Google Calendar高级服务

Calendar.Events.import属于Google Apps Script的高级服务,需在编辑器中手动启用:

  • 打开Apps Script编辑器,点击菜单栏的「服务」→「添加服务」
  • 找到「Calendar API」并添加,确保版本选择正确

5. 时区与时间格式问题

  • 若事件包含时间,需确保CSV中包含Time Zone字段(如Asia/Shanghai),或Calendar的默认时区与Sheet的时区一致
  • 日期格式必须为YYYY-MM-DD,时间格式为HH:MM(24小时制),避免使用其他格式(如MM/DD/YYYY)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 18:50:22