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)
从我在在线文档中可以看出,你不能拉出一个事件,你只能拉出日期范围内的所有事件.所以在代码的最后我尝试将开始时间和停止时间存储在电子表格中,然后在下次执行脚本时返回它.中间的注释部分是我迷失的地方.那是我试图调用我上次运行脚本时添加的事件的地方.我需要编辑它,或删除它.
请帮忙.
如果您设法将电子表格中的事件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)
希望对你有帮助
| 归档时间: |
|
| 查看次数: |
13864 次 |
| 最近记录: |