谷歌日历-事件日期,而不是第一个实例日期



我正在创建一个从谷歌日历中提取事件的在线议程,目前它只提取重复事件的第一个实例的开始日期。我能用api和javascript显示每个事件的实际日期吗,而不仅仅是第一个实例?

我的HTML:

<div ng-controller="calCtrl">
<div ng-repeat="event in events">
<div class="event-row">
<span id="eventTitle">{{ event.summary }}</span>
<span id="eventDate">{{ event.start.date | date:'EEE M/d/yyyy' }}{{ event.start.dateTime | date:'EEE M/d/yyyy' }}</span> // 
<span id="eventTime">{{event.start.dateTime | date:'H:mm' }}</span>
<span id="eventLocation">{{event.location}}</span>
</div>
</div>

到目前为止我的JS:

var app = angular.module('eventApp', []);
app.factory('calendarServ', ['$http', function($http) {
var today = (new Date()).toISOString();
var APIKey = "___________";
var url = "https://www.googleapis.com/calendar/v3/calendars/–––––––/events?maxResults=30&&timeMin=" + today + "&key=" + APIKey;
return $http.get(url)
.success(function(data) {
return data;
})
.error(function(err) {
return err;
});
}]);
app.controller('calCtrl', ["$scope", "$http", "calendarServ", function($scope, $http, calendarServ) {
$scope.events;
calendarServ.success(function(data) {
$scope.events = data.items;
});
}]);

您可以通过向以下API端点发出请求来获取重复事件的instances的实际数据:

https://www.googleapis.com/calendar/v3/calendars/{calendarId}/events/{eventId}/instances

您将获得一个具有重复事件实例的对象,以及它们的详细信息,如开始时间、结束时间等。

示例响应:

{
"status": "confirmed", 
"kind": "calendar#event", 
"end": {
"timeZone": "Europe/Madrid", 
"dateTime": "2020-04-07T12:30:00+02:00"
}, 
"created": "2020-03-24T10:24:37.000Z", 
"iCalUID": "xxxxxxxxxxxxxxxxxx", 
"reminders": {
"useDefault": true
}, 
"htmlLink": "https://www.google.com/calendar/event?eid=-x-x-x-x-x-x-x-x-x-x-x-x--x-x-x", 
"sequence": 0, 
"updated": "2020-03-24T10:24:37.166Z", 
"summary": "Test recurring event", 
"start": {
"timeZone": "Europe/Madrid", 
"dateTime": "2020-04-07T11:30:00+02:00"
}, 
"etag": ""3170xxxxdddd2000"", 
"originalStartTime": {
"timeZone": "Europe/Madrid", 
"dateTime": "2020-04-07T11:30:00+02:00"
}, 
"recurringEventId": "50qkopajasmentalescsql", 
"organizer": {
"self": true, 
"email": "fatt.miks@egfreeed.eu"
}, 
"creator": {
"self": true, 
"email": "fatt.miks@egfreeed.e"
}, 
"id": "50qkoeauc7jpn3nmelih5loitmustB&wor00Z"
}

注意:查看OAuthPlayground以测试Google API。

参考:-日历API事件实例

相关内容

最新更新