events - 尝试从 Google 表格中删除日历事件时出现“TypeError:无法读取未定义的属性‘getEvents’”
问题描述
我正在使用我发现的代码从谷歌日历中删除批量事件,基于谷歌表格中的值(代码在谷歌表格脚本编辑器中)。当我在我的个人日历上使用它时它正在工作,但是当我尝试从谷歌课堂日历(我是它的经理)中删除事件时,我收到错误消息“TypeError:无法读取未定义的属性'getEvents' ”。你知道为什么会这样吗?
function delete_google_calendar()
{
var spreadsheet = SpreadsheetApp.getActiveSheet();
var startYear = spreadsheet.getRange("B67").getValue();
var startMonth = spreadsheet.getRange("F67").getValue();
var startDay = spreadsheet.getRange("H67").getValue();
var endYear = spreadsheet.getRange("B68").getValue();
var endMonth = spreadsheet.getRange("F68").getValue();
var endDay = spreadsheet.getRange("H68").getValue();
var fromDate = new Date(startYear,startMonth,startDay,0,0,0);
var toDate = new Date(endYear,endMonth,endDay,0,0,0);
var calendarId = "mandel-institute.org.il_classroom682af58e@group.calendar.google.com";
// First number: Year
//Second number: Month (January=0)
//Third number: Day
var calendar = CalendarApp.getCalendarsByName(calendarId)[0];
var events = calendar.getEvents(fromDate, toDate);
for(var i=0; i<events.length;i++){
var ev = events[i];
ev.deleteEvent();
}
}
解决方案
Apps 脚本提供检索日历的方法:getCalendarsByName(name)和getCalendarById(id)
因此,由于您有可用的日历 ID,因此您需要使用以下方法getCalendarById(id)
:
var calendar = CalendarApp.getCalendarById(calendarId)
由于id
明确标识日历,只会返回一个日历(而不是数组),因此请跳过[0]
.
推荐阅读
- python-3.x - 如何在另一个类的实例上使用 tkinter grid()?
- python - 覆盖率显示 Django 测试的百分比太低
- python - Pandas - 拆分列并包含计数
- javascript - 了解 .toggle 功能和隐藏/取消隐藏按钮
- r - 在第一个逗号后提取字符串并使用 R 将其存储在另一列中
- azure - 无法在 Azure 流分析中获取输出
- javascript - for 和 foreach 循环的 JS 节点问题
- python - 尝试使用多行条件遍历 pandas df
- python - 通过 PyOpenSSL 获取 SSL 证书链并查找到期日期
- sql - PostgreSQL 将行动态转换为列