如何使用Google Apps脚本修改Google日历活动?

use*_*447 2 google-calendar-api google-apps-script

我想出了如何将事件添加到日历中,但是花了8个小时试图弄清楚如何编辑现有事件(或删除它,无论哪种方式都可以完成工作).这是我得到的:

function UpdateEventTime() {
  var cal = CalendarApp.getCalendarById("semehjawioe@group.calendar.google.com");
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 1;  // First row of data to process
  var numRows = 1;   // Number of rows to process
  var dataRange = sheet.getRange(startRow, 5, numRows, 5);
  var data = dataRange.getValues();


//  var oldtstart = SpreadsheetApp.getActiveSheet().getRange('G2');
//  var oldtstop = SpreadsheetApp.getActiveSheet().getRange('H2');
// ??????????????????????????????????????????????????
// ??  How do I call up and delete the old event?  ??  
// ??????????????????????????????????????????????????  



  for (i in data) {
    var row = data[i];
    var title = row[0];  // First column
    var desc = row[1];       // Second column
    var tstart = row[2];
    var tstop = row[3];
    var loc = row[4];
    cal.createEvent(title, tstart, tstop, {description:desc,location:loc});
    SpreadsheetApp.getActiveSheet().getRange('G2').setValue(tstart);
    SpreadsheetApp.getActiveSheet().getRange('H2').setValue(tstop);
 }
}
Run Code Online (Sandbox Code Playgroud)

从我在在线文档中可以看出,你不能拉出一个事件,你只能拉出日期范围内的所有事件.所以在代码的最后我尝试将开始时间和停止时间存储在电子表格中,然后在下次执行脚本时返回它.中间的注释部分是我迷失的地方.那是我试图调用我上次运行脚本时添加的事件的地方.我需要编辑它,或删除它.

请帮忙.

Waq*_*mad 6

如果您设法将电子表格中的事件ID与这些详细信息一起保存,那会更好.如果您需要修改或删除这些事件,只需按id获取事件并执行操作.

修改代码用于保存

var event = cal.createEvent(title, tstart, tstop, {description:desc,location:loc});
var eventid = event.getId();
SpreadsheetApp.getActiveSheet().getRange('I2').setValue(eventid);
Run Code Online (Sandbox Code Playgroud)

要在以后获取事件

var id = SpreadsheetApp.getActiveSheet().getRange('I2');
var cal = CalendarApp.getCalendarById("semehjawioe@group.calendar.google.com");
var event = cal.getEventSeriesById(id);
//Now modify or delete the event
event.addEmailReminder(minutesBefore);
event.addGuest(email);
event.deleteEvent();
.
.
.
Run Code Online (Sandbox Code Playgroud)

希望对你有帮助