我要做的是只获取默认日历中所有事件的列表?我不希望包括任何其他日历活动,即假期。
我正在使用“... / feeds / username / default / full”并对从1个月前到永久的所有事件进行查询。我有两个我创建的事件但是我得到一个有25个条目的提要。我的两个活动首先是23个假期。我真的不把它们包括在内但是如果它们必须在那里,我该如何检测它们。我唯一能找到的是我的两个活动的eTag与假日活动不同。但我不能只说从我遇到的第一个Etag中获取所有事件,因为默认日历可能没有任何事件,所以第一个就是假期。
任何帮助都将不胜感激。
答案 0 :(得分:1)
使用最新版本的Google Calendar API可以使用几行代码完成此操作。您需要做的就是拉出主日历的事件,如下所示:
http://code.google.com/apis/calendar/v3/using.html#retrieving_events
您需要的代码是:
Events events = service.events().list("primary").execute();
while (true) {
for (Event event : events.getItems()) {
System.out.println(event.getSummary());
}
String pageToken = events.getNextPageToken();
if (pageToken != null && !pageToken.isEmpty()) {
events = service.events().list("primary").setPageToken(pageToken).execute();
} else {
break;
}
}
答案 1 :(得分:0)
我想知道你使用的是什么版本的Calendar API?在第3节,我可以在没有度假的情况下完成所有活动。我添加了一些代码示例,因为通过Oauth2 for Java连接到Calendar V3 API的Google文档不正确。
使用其他帖子中列出的代码循环设置Oauth并初始化日历后的日历事件。您可能可以,但不需要声明事件API。我只是从日历服务(3)中调用它。请注意,我列出的日历ID是“主要”。
Calendar service3 = new Calendar(transport, jsonFactory, accessProtectedResource);
com.google.api.services.calendar.model.Calendar calendar = service3.calendars().get("primary").execute();
com.google.api.services.calendar.model.Events events = service3.events().list("primary").execute();