最近在Google日历中添加新事件并尝试从Google日历API中获取新事件后,我从未获得我帐户的主日历ID的新事件列表。
我还试图从开发者控制台获取: https://developers.google.com/google-apps/calendar/v3/reference/events/list#try-it 即使将来的事件存在,它也会提供相同的空项目列表作为响应。
但我可以获取其他日历列表的事件列表。例如。假期,朋友共享日历等。
答案 0 :(得分:4)
尝试在您的请求中添加singleEvents:true
。
我遇到了同样的问题。在我的例子中,使用Javascript,这可以工作(返回几个单一的非重复事件):
var calendar = googleapis.calendar('v3');
calendar.events.list({
auth: auth,
calendarId: 'primary',
timeMin: (new Date()).toISOString(),
maxResults: 10,
singleEvents: true,
orderBy: 'startTime'
}, function(err, response) {
if (err) {
console.log('The API returned an error: ' + err);
return callback(err);
}
console.log(response);
var events = response.items;
if (events.length == 0) {
console.log('No upcoming events found.');
} else {
console.log('Upcoming 10 events:');
for (var i = 0; i < events.length; i++) {
var event = events[i];
var start = event.start.dateTime || event.start.date;
console.log('%s - %s', start, event.summary);
}
return callback(null, events);
}
});
但这不是(不会返回任何事件,包括主要&#39;日历上的事件,并且是单个非重复事件)。与上述代码的唯一区别是singleEvents
参数已被注释掉,因此其值将默认为false
。
var calendar = googleapis.calendar('v3');
calendar.events.list({
auth: auth,
calendarId: 'primary',
timeMin: (new Date()).toISOString(),
maxResults: 10,
//singleEvents: true,
orderBy: 'startTime'
}, function(err, response) {
if (err) {
console.log('The API returned an error: ' + err);
return callback(err);
}
console.log(response);
var events = response.items;
if (events.length == 0) {
console.log('No upcoming events found.');
} else {
console.log('Upcoming 10 events:');
for (var i = 0; i < events.length; i++) {
var event = events[i];
var start = event.start.dateTime || event.start.date;
console.log('%s - %s', start, event.summary);
}
return callback(null, events);
}
});
答案 1 :(得分:2)
我还遇到events().list(calendarId=<calendar_id>, singleEvents=False)
不返回任何事件的问题(使用python API)。我使用带有一个重复事件的辅助日历进行了测试。通过添加参数maxResults=9999
解决。事实证明,返回事件需要maxResults值1413或更高。很奇怪,似乎是一个错误。