Google apps script Google应用程序脚本:日历服务:查找CalendarEventSeries中的第一个事件
我想计算一个人的年龄,他的生日在我的日历中作为事件系列存在。要做到这一点,我需要知道本系列中的第一个事件,这就是问题:如何从实际事件中获取系列中的第一个事件 谢谢 Ronny您需要使用参数来获取序列中第一个事件的日期(只使用日期;忽略时间) 您还可以使用获取具有给定ID的事件系列 如果给定的ID是针对单个事件的,则将返回一个,其中包含系列中的单个事件。请注意,如果事件系列属于默认日历以外的日历,则必须从该日历调用此方法;直接调用CalendarApp.getEventSeriesById(id)将只返回默认日历中存在的事件系列Google apps script Google应用程序脚本:日历服务:查找CalendarEventSeries中的第一个事件,google-apps-script,Google Apps Script,我想计算一个人的年龄,他的生日在我的日历中作为事件系列存在。要做到这一点,我需要知道本系列中的第一个事件,这就是问题:如何从实际事件中获取系列中的第一个事件 谢谢 Ronny您需要使用参数来获取序列中第一个事件的日期(只使用日期;忽略时间) 您还可以使用获取具有给定ID的事件系列 如果给定的ID是针对单个事件的,则将返回一个,其中包含系列中的单个事件。请注意,如果事件系列属于默认日历以外的日历,则必须从该日历调用此方法;直接调用CalendarApp.getEventSeriesById(id)
希望这有帮助 另一个答案实际上没有回答初始请求,CalendarApp没有方法获取重复事件的开始日期。 您应该使用高级日历API(必须手动启用,请参见下文并遵循说明) 然后使用高级API获取所需信息(自动完成功能也适用于这些方法,因此您可以轻松查看可用的内容) 在下面的测试代码中,请注意高级日历API的事件ID不同,您必须删除“@”之后的部分
function createTestEvents() {
var recurrence = CalendarApp.newRecurrence().addWeeklyRule().times(10);
var testEvent = CalendarApp.getDefaultCalendar().createEventSeries('test event serie', new Date('2016/05/10'), new Date(new Date('2016/05/10').getTime()+12*3600000), recurrence);
var id = testEvent.getId();
Logger.log('Event Series ID: ' + id);
viewTestEvent(id)
}
function viewTestEvent(id){
var event= CalendarApp.getDefaultCalendar().getEventSeriesById(id);
var calId = CalendarApp.getDefaultCalendar().getId();
Logger.log('event title = '+event.getTitle());
var AdvanncedId = id.substring(0,id.indexOf('@'));
Logger.log('AdvanncedId = '+AdvanncedId);
var testEvent = Calendar.Events.get(calId, AdvanncedId);
Logger.log('testEvent start = '+ testEvent.start);
return testEvent;
}
function test(){ // a few examples of what you can retrieve...
var event = viewTestEvent('59buf7nq6nr6qo79bh14kmsr6g@google.com');
Logger.log('\n\nstart = '+event.start);
Logger.log('\n\ncreated on = '+event.created);
Logger.log('\n\nend on = '+event.end);
Logger.log('\n\nrecurrence = '+event.recurrence);
}
function createTestEvents() {
var recurrence = CalendarApp.newRecurrence().addWeeklyRule().times(10);
var testEvent = CalendarApp.getDefaultCalendar().createEventSeries('test event serie', new Date('2016/05/10'), new Date(new Date('2016/05/10').getTime()+12*3600000), recurrence);
var id = testEvent.getId();
Logger.log('Event Series ID: ' + id);
viewTestEvent(id)
}
function viewTestEvent(id){
var event= CalendarApp.getDefaultCalendar().getEventSeriesById(id);
var calId = CalendarApp.getDefaultCalendar().getId();
Logger.log('event title = '+event.getTitle());
var AdvanncedId = id.substring(0,id.indexOf('@'));
Logger.log('AdvanncedId = '+AdvanncedId);
var testEvent = Calendar.Events.get(calId, AdvanncedId);
Logger.log('testEvent start = '+ testEvent.start);
return testEvent;
}
function test(){ // a few examples of what you can retrieve...
var event = viewTestEvent('59buf7nq6nr6qo79bh14kmsr6g@google.com');
Logger.log('\n\nstart = '+event.start);
Logger.log('\n\ncreated on = '+event.created);
Logger.log('\n\nend on = '+event.end);
Logger.log('\n\nrecurrence = '+event.recurrence);
}