Google日历API不会返回事件列表

Suh*_*raj 6 calendar google-calendar-api google-api

最近在Google日历中添加新事件并尝试从Google日历API中获取新事件后,我从未获得我帐户的主日历ID的新事件列表.

此外,我尝试从开发者控制台获取:https: //developers.google.com/google-apps/calendar/v3/reference/events/list#try-it ,它提供与响应相同的空项目列表,即使未来事件存在.

但我能够获取其他日历列表的事件列表.例如.假期,朋友共享日历等

小智 8

events().list(calendarId=<calendar_id>, singleEvents=False)我还遇到了不返回任何事件的问题(使用 python API)。我使用带有一个重复事件的辅助日历进行了测试。通过添加参数解决maxResults=9999。事实证明,返回事件需要 maxResults 值 1413 或更高。奇怪,好像是bug。


小智 5

尝试添加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); 
    }
  });
Run Code Online (Sandbox Code Playgroud)

但这不会(不返回任何事件,包括那些在“主要”日历上并且是单一的、非重复发生的事件)。与上述代码的唯一区别是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); 
    }
  });
Run Code Online (Sandbox Code Playgroud)

  • 在我的情况下,将 `singleEvents` 设置为 `true` 不会改变输出。它仍然没有列出任何事件。 (3认同)