谷歌日历api v3 calendar.events.list并在javascript中使用timeMax,timeMin

时间:2013-09-18 12:56:05

标签: javascript calendar google-calendar-api

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做同样的事情?我尝试了很多 排列,为什么它如此疯狂这个谷歌api的东西.......

需要一个有效的例子

2 个答案:

答案 0 :(得分: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()记录的Events资源。

答案 1 :(得分:0)

使用Google脚本时,使用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()