6
var resource = {
    ///  "kind": "calendar#event",

    "alwaysIncludeEmail" : "true",
    "singleEvents" : "true",
    "orderBy" : "startTime",
    "timeMax": {
        "dateTime": "2013-10-01T00:00:00+10:00" //maxDate.toISOString()
    },
    "timeMin": {
        "dateTime":  "2013-08-29T00:00:00+10:00" //startDateMin.toISOString()
    }
};

var calendar_id = new calendarIds();

var request = gapi.client.calendar.events.list({
    'calendarId': calendar_id.source,
    'resource': resource
});

....

request.execute(function(resp){

这个 javascript 正在返回日历中的所有事件!!!!!!!

将这些时间值插入v3 api explorer 并返回正确的事件时间范围。

那么如何让我的 javascript 做同样的事情呢?我尝试了一堆排列,为什么这个 google api 的东西这么难……

请需要一个工作示例

4

2 回答 2

2

如果请求被重写为

 var request = gapi.client.calendar.events.list({
      'calendarId': calendar_id,
      "singleEvents" : true,
      "orderBy" : "startTime",
      "timeMin":  startDate.toISOString(),
      "timeMax":  maxDate.toISOString()
    });

  request.execute(function(resp){

现在可以了!

该“资源”参数存在一些混淆。显然,我看到了一个使用 insert() api 的示例。但这是为 insert() 记录的事件资源。

于 2013-09-24T22:35:58.517 回答
1

使用 Google Script 和 API v2 和 v3 时,您可以编写:

var calendar_id = CalendarApp.getCalendarById('My Test Calendar')[0];
var start_date = new Date();
var query = Calendar.Events.list(calendar_id, {timeMin: start_date.toISOString()});
var events = query.items;

调用中的技巧Calendar.Events.list是第一个参数是日历ID,第二个是一个对象。过日期时,需要使用x.toISOString().

于 2014-11-10T00:53:40.043 回答