如何使用GAS将所有事件从一个日历自动复制到另一个日历



在尝试将所有事件从一个谷歌日历自动复制到另一个日历时,我似乎错过了一些相当明显的东西。其他人不想访问源日历,所以就这样吧。

低于不起作用的,作为开球。

function copyAppointments() {
var sourceCalendar = CalendarApp.getCalendarById("exampleSource@group.calendar.google.com");
var targetCalendar = CalendarApp.getCalendarById("targetExample@group.calendar.google.com");
var events = sourceCalendar.getEvents();
for (var i = 0; i < events.length; i++) {
var event = events[i];
if (event > -1) {
targetCalendar.createEvent();
}
}
}

你会怎么做?

function copyAppointments() {
const sourceCalendar = CalendarApp.getCalendarById("exampleSource@group.calendar.google.com");
const targetCalendar = CalendarApp.getCalendarById("targetExample@group.calendar.google.com");
const dt=new Date();
const starttime  = new Date(dt.getFullYear()-1,dt.getMonth(),dt.getDate(),0,0,0,0);//one year ago
const endtime = new Date(dt.getFullYear()+1,dt.getMonth(),dt.getDate(),0,0,0,0);//next year
const events = sourceCalendar.getEvents(starttime,endtime);
events.forEach(e =>{
targetCalendar.createEvent(e.getTitle(),starttime,endtime);
});
}

对不起,我想应该这样做:

function copyAppointments() {
const sourceCalendar = CalendarApp.getCalendarById("exampleSource@group.calendar.google.com");
const targetCalendar = CalendarApp.getCalendarById("targetExample@group.calendar.google.com");
const dt=new Date();
const starttime  = new Date(dt.getFullYear()-1,dt.getMonth(),dt.getDate(),0,0,0,0);//one year ago
const endtime = new Date(dt.getFullYear()+1,dt.getMonth(),dt.getDate(),0,0,0,0);//next year
const events = sourceCalendar.getEvents(starttime,endtime);
events.forEach(e =>{
targetCalendar.createEvent(e.getTitle(),e.getStartTime(),e.getEndTime());
});
}

我只是通过将事件标题、开始时间和结束时间导出到我的电子表格来运行这个简单的测试,然后我就收到了日期。

function copyAppointments() {
const sourceCalendar = CalendarApp.getCalendarById("calid");
const ss= SpreadsheetApp.getActive();
const tsh= ss.getSheetByName('Sheet1');
const dt=new Date();
const starttime  = new Date(dt.getFullYear()-1,dt.getMonth(),dt.getDate(),0,0,0,0);//one year ago
const endtime = new Date(dt.getFullYear()+1,dt.getMonth(),dt.getDate(),0,0,0,0);//next year
const events = sourceCalendar.getEvents(starttime,endtime);
let oA=[];
events.forEach(e =>{
oA.push([e.getTitle(),e.getStartTime(),e.getEndTime()])
});
tsh.getRange(1,1,oA.length,oA[0].length).setValues(oA);
}

相关内容

最新更新