我想計算一個生日在我的日曆中作爲事件系列存在的人的年齡。爲此,我需要知道本系列中的第一個事件,這就是問題:如何從實際事件中獲得一系列的第一個事件?Google Apps腳本:日曆服務:查找CalendarEventSeries中的第一個事件
感謝 羅尼
我想計算一個生日在我的日曆中作爲事件系列存在的人的年齡。爲此,我需要知道本系列中的第一個事件,這就是問題:如何從實際事件中獲得一系列的第一個事件?Google Apps腳本:日曆服務:查找CalendarEventSeries中的第一個事件
感謝 羅尼
您需要使用startDate
參數來獲取該系列中的第一個事件的日期(僅白天使用;在時間忽略不計)。
var eventSeries = CalendarApp.getDefaultCalendar().createAllDayEventSeries('No Meetings',
new Date('January 2, 2013 03:00:00 PM EST'),
CalendarApp.newRecurrence().addWeeklyRule()
.onlyOnWeekday(CalendarApp.Weekday.WEDNESDAY)
.until(new Date('January 1, 2014')));
Logger.log('Event Series ID: ' + eventSeries.getId());
您還可以使用getEventSeriesById(iCalId)
獲得給定ID的事件系列。
如果給定的ID是單個
CalendarEvent
,那麼CalendarEventSeries
將以系列中的單個事件返回。請注意,如果事件系列屬於默認日曆以外的日曆,則必須從該Calendar
調用此方法;直接調用CalendarApp.getEventSeriesById(id)
將僅返回默認日曆中存在的事件系列。
希望這會有所幫助!
其他答案實際上並沒有回答最初的請求,CalendarApp沒有方法獲取重複事件的開始日期。 您應該使用先進的日曆API(必須手動啓用,見下文,並按照指示)
然後使用先進的API來獲取你想要的信息,(自動完成功能適用於這些方法因此您可以輕鬆查看可用的內容)
測試代碼如下,請注意,高級Calendar 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('[email protected]');
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);
}