我正试图使用他们的v3 api从谷歌日历中获取即将发生的事件的列表。我使用了以下代码
var eventName = '';
var today = new Date();
var iso = encodeURI(ISODateString(today));
var gclaData = 'https://www.googleapis.com/calendar/v3/calendars/rkmfiji.org_lrt0ou2o2prjbrfa3f0tuhqopk@group.calendar.google.com/events?singleEvents=true&maxResults=3&timeMin='+iso+'&key=AIzaSyCP4j-U4GzJri3zaADP4FM1aVsIJ0Mqhj4';
jQuery.getJSON(gclaData,function(data){
for(var i=0;i<data.items.length;i++){
var eventrow='<div class="row"><div class="col-md-3">'
var eventdate = new Date(data.items[i].start.dateTime);
eventrow+='<h4 class="eventheader">'+months[eventdate.getMonth()]+'</h4><h3 class="eventheader">'+eventdate.getDate()+'</h3></div>'
eventrow+='<div class="col-md-9"><h5 class="header blogtitle">'+data.items[i].summary+'</h5><p>'+data.items[i].description+'</p>'
eventrow+='<a href="'+data.items[i].htmlLink+'" target="_blank">More Details & Attend</a>'
eventrow+='<div class="spacer40"</div></div></div>'
jQuery('.gcal').append(eventrow);
}
if(!data.items.length) jQuery('.gcal').append('<h3 class="header">No Upcoming Events</h3>');
});
使用上面的代码,我只得到即将发生的重复事件。如果删除singleEvents=true,则会得到过去的事件。我尝试了许多不同的变体,但从来没有尝试过我想要的,一份即将发生的重复和非重复事件的列表(所以从今天开始)。
有人看到这个代码有什么问题吗?
无论如何,我已经找到了解决方案。谷歌将显示重复事件的整个列表,即使重复事件的一个实例发生在一次性事件之后。因为我的重复事件没有结束,我的一次性事件永远无法显示。要解决此问题,请添加
&orderBy = startTime
到查询