第一次在这里提问。
我已经构建了一个 Google App Script,它根据@Mogsdad 的回答从 Google Sheets 获取事件信息并在 Google Calendar 上创建事件。(由于我不存在的声誉,我无法在该线程上发布问题)
“exportEvents”功能第一次运行得很好。但是一旦电子表格有更多行信息,它并没有完成脚本,而是说“您在短时间内创建或删除了太多日历或日历事件。请稍后再试。”
这不是因为 Google 设置了每日配额,因为我每天没有创建接近 10,000 个事件。我搜索了一个解决方案,并在@JEvans-GSA 的Google 产品论坛上找到了这个,他的脚本像我一样基于 @Mogsdad 的脚本。
我调整了他的解决方案并将“updateEvents”函数与“exportEvents”分开(并创建了“deleteEvents”函数)。现在“exportEvents”不会遇到“您在短时间内创建或删除了太多日历或日历事件。请稍后再试”的问题。但是“updateEvents”在执行到一半时仍然收到相同的警告!
所以函数启动了但没有完成,这让我觉得错误一定是在设置重复的某个地方。是否有一种解决方法可以使“updateEvents”工作,或者正如@Mogsdad 在原始答案中所建议的那样,是删除和重新创建事件的唯一其他方法吗?
预先感谢您的任何帮助。以下是我的电子表格的链接(由于我的代表人数较少,我不允许使用超过 2 个链接): - https://docs.google.com/spreadsheets/d/1V6eioCo4QDPO2DdCyW93sLRWT_xtzKM-drDPVI1Gd8s/edit?usp=sharing
而我目前的脚本:
//Global settings
var calId = 'n02m72vanqabnt1gcjluk2vosk@group.calendar.google.com';
var moderatorEmail = 'EMAIL_ADDRESS';
var idId = 0;
var startTimeId = 1;
var endTimeId = 2;
var titleId = 3;
var organizerId = 4;
var …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个Google Apps脚本,以使Google日历和云端硬盘上的“主电子表格”保持同步-这可能吗?我发现了这两篇文章:
http://blog.ouseful.info/2010/03/04/maintaining-google-calendars-from-a-google-spreadsheet/
http://blog.ouseful.info/2010/03/05/grabbing-google-calendar-event-details-into-a-spreadsheet/
我很确定这可以使用很多if语句和逻辑来完成,但是也许有更简单的方法吗?
我最后只提供了以下简单脚本。真正需要做的只是基于两列添加事件,这将花费很长时间来开发。
function onOpen() {
//spawns a menu with a button that triggers AddToCal
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Add event to calendar",
functionName : "AddToCal"
}];
sheet.addMenu("Data To Calendar Plugin", entries);
};
function AddToCal(){
//get the current row
var ss = SpreadsheetApp.getActiveSpreadsheet();
var cell = ss.getActiveCell();
var R = cell.getRow();
//grab values for current row to pass to calendar event
var date_of_event = ss.getRange('G'+R).getValue();
var date = new Date(date_of_event);
var …Run Code Online (Sandbox Code Playgroud) javascript synchronization google-calendar-api google-sheets google-apps-script
javascript ×1