【发布时间】:2017-09-18 23:35:26
【问题描述】:
我正在尝试使用 google 日历 api 获取事件的重复规则 (RRULE),但它正在返回 undefined。
据说,每个事件都有一个“重复值,如here所述:
recurrence[] 列表
按照 RFC5545 的规定,重复事件的 RRULE、EXRULE、RDATE 和 EXDATE 行列表。请注意,该字段中不允许使用 DTSTART 和 DTEND 行;事件开始和结束时间在开始和结束字段中指定。对于单个事件或重复事件的实例,该字段被省略。
可写
作为注释,
NO ISSUE:SET在创建事件时执行以下操作时的“重复”值:
var event = {
'summary': this.props.user.calendarEventTitle,
'start': {
'dateTime': this.props.user.calendarEventStartDateTime,
'timeZone': this.props.user.calendarEventTimeZone
},
'end': {
'dateTime': this.props.user.calendarEventEndDateTime,
'timeZone': this.props.user.calendarEventTimeZone
},
"recurrence": [
"RRULE:FREQ=WEEKLY;UNTIL=20110701T170000Z",
]
};
var request = window.gapi.client.calendar.events.insert({
'calendarId': 'primary',
'resource': event
});
request.execute(function(resp) {
console.log('resp = ' + resp);
});
问题:在获取执行以下操作的事件时,无法GET“重复”值:
listUpcomingEvents() {
window.gapi.client.calendar.events.list({
'calendarId': 'primary',
'timeMin': (new Date()).toISOString(),
'showDeleted': false,
'singleEvents': true,
'orderBy': 'startTime'
}).then(function(response) {
var events = response.result.items;
if (events.length > 0) {
var eventsArr = [];
for (var i = 0; i < events.length; i++) {
var event = events[i];
var startDate = event.start.dateTime;
var endDate = event.end.dateTime;
if (!startDate) {
startDate = event.start.date;
}
if (!endDate) {
endDate = event.end.date;
}
var reminders = event.reminders.overrides;
console.log('event.recurrence = ' + event.recurrence);
{Object.keys(event).map(function(key) {
console.log('>Key (event): ' + key + ", Value (event): "
+ event[key]);
})}
注意:我添加了上面的日志以打印出事件对象的每个键和值,但我仍然没有看到“重复”键。如果此对象中没有,如何获取创建此事件的重复规则?可能对 repeatingEventID 做点什么?
var rowArray = {
id: event.id,
title: event.summary,
start: startDate,
end: endDate,
allDay: false,
location: event.location,
description: event.description,
timeZone: event.start.timeZone,
reminders: event.reminders.overrides,
recurrence: event.recurrence //ISSUE: RETURNS UNDEFINED
};
eventsArr.push(rowArray);
this.setState({
eventArray: eventsArr
})
}
} else {
console.log('No upcoming events found.');
}
const { calendar } = this.refs;
}
几乎看起来here 一旦事件发生就没有“重复”属性(只有重复ID)。
有什么建议吗?
【问题讨论】:
标签: javascript reactjs calendar google-calendar-api