Office365 如何知道已删除哪些重复事件?
我的应用程序订阅了名为ConferenceRoom的office365日历。因此,当创建/修改/删除事件时,office365服务器将向我的应用程序发送通知,告知发生了这三种情况 在日历中,我为每周一创建定期事件站立会议(通过浏览器)。在此之后,我的应用程序收到带有Office365 如何知道已删除哪些重复事件?,office365,office365api,office365-restapi,Office365,Office365api,Office365 Restapi,我的应用程序订阅了名为ConferenceRoom的office365日历。因此,当创建/修改/删除事件时,office365服务器将向我的应用程序发送通知,告知发生了这三种情况 在日历中,我为每周一创建定期事件站立会议(通过浏览器)。在此之后,我的应用程序收到带有ChangeType:Created的通知,下面是该通知事件的重复部分: Recurrence: { Pattern: { Type: 'Weekly', Interval: 1, Month: 0,
ChangeType:Created
的通知,下面是该通知事件的重复部分:
Recurrence:
{ Pattern:
{ Type: 'Weekly',
Interval: 1,
Month: 0,
DayOfMonth: 0,
DaysOfWeek: [Object],
FirstDayOfWeek: 'Sunday',
Index: 'First' },
Range:
{ Type: 'NoEnd',
StartDate: '2016-09-12',
EndDate: '0001-01-01',
RecurrenceTimeZone: 'FLE Standard Time',
NumberOfOccurrences: 0 } },
以及该事件的全部数据(从通知中获得的id):
以下是我在日历中具体做了什么的图片:
您能告诉我如何知道该事件的哪个事件被删除了吗
这似乎是一条死胡同,所以任何帮助都将不胜感激
仅供参考:定期事件只有一个eventId,删除一次定期事件不会发送带有
ChangeType:DELETED
的通知。不幸的是,API当前不让您知道哪个事件已被删除。但是,当删除单个引用时,它会触发SeriesMaster上的更新。当此更新到来时,您必须计算所有会议应在何时举行,然后获取所有会议。在对这些事件进行迭代之后,您可以推断哪些事件已从先前的计算中删除。由于您的会议每周重复一次,因此您需要限制您请求会议发生的时间范围
如果使用Python,我可以强烈推荐dateutil包,它附带一个方便的rrule类:你能添加删除一个事件时得到的
ChangeType:Updated
的确切结果吗?@jehna1在创建和更新后添加了事件数据。我知道这已经有一段时间了,但这个答案对你有帮助吗?好的,那么你的意思是我必须获取这些日期的所有事件,当我假设重复发生的事件应该发生,然后匹配,如果这些天存在此事件?我想我理解这一点,这是正确的,但要确保以下步骤再次出现:1。收到定期会议(SeriesMaster)的更新后,通过查看SeriesMaster[“定期”]计算所有预期事件。2.通过向/me/events/{event\u id}/instances发出GET请求,实际获取所有事件?startDateTime={start\u datetime}&endDateTime={end\u datetime}3。将2中返回的列表与1中计算的列表进行比较。第二个列表中任何缺失的事件都是已删除的事件。
{ '@odata.context': 'https://outlook.office.com/api/v2.0/$metadata#Users(\'2ce6a929-0b04-40fb-9c73-d812370e0d46%40ea38f869-d755-40c7-9c95-e6277325b7ae\')/Events/$entity',
'@odata.id': 'https://outlook.office.com/api/v2.0/Users(\'2ce6a929-0b04-40fb-9c73-d812370e0d46@ea38f869-d755-40c7-9c95-e6277325b7ae\')/Events(\'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAFZAABi3Yqq_sjMSYdHHux_aUXFAAAMNRbUAAA=\')',
'@odata.etag': 'W/"Yt2KqvrIzEmHRx7sfmlFxQAADDdF3g=="',
Id: 'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAFZAABi3Yqq_sjMSYdHHux_aUXFAAAMNRbUAAA=',
CreatedDateTime: '2016-09-13T03:55:43.5305953-02:00',
LastModifiedDateTime: '2016-09-13T03:55:43.5476101-02:00',
ChangeKey: 'Yt2KqvrIzEmHRx7sfmlFxQAADDdF3g==',
Categories: [],
OriginalStartTimeZone: 'FLE Standard Time',
OriginalEndTimeZone: 'FLE Standard Time',
ResponseStatus: { Response: 'Organizer', Time: '0001-01-01T00:00:00Z' },
iCalUId: '040000008200E00074C5B7101A82E00800000000F9B6FC76830DD2010000000000000000100000005D7D5B0B8D1EA84E86C8AEE4014697CA',
ReminderMinutesBeforeStart: 15,
IsReminderOn: true,
HasAttachments: false,
Subject: 'standup meeting',
Body:
{ ContentType: 'HTML',
Content: '<html>\r\n<head>\r\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r\n<meta content="text/html; charset=us-ascii">\r\n<style type="text/css" style="display:none">\r\n<!--\r\np\r\n\t{margin-top:0;\r\n\tmargin-bottom:0}\r\n-->\r\n</style>\r\n</head>\r\n<body dir="ltr">\r\n<div id="divtagdefaultwrapper" style="font-size:12pt; color:#000000; background-color:#FFFFFF; font-family:Calibri,Arial,Helvetica,sans-serif">\r\n<p><br>\r\n</p>\r\n</div>\r\n</body>\r\n</html>\r\n' },
BodyPreview: '',
Importance: 'Normal',
Sensitivity: 'Normal',
Start:
{ DateTime: '2016-09-12T03:00:00.0000000',
TimeZone: 'Etc/GMT+2' },
End:
{ DateTime: '2016-09-12T03:30:00.0000000',
TimeZone: 'Etc/GMT+2' },
Location: { DisplayName: '', Address: {}, Coordinates: {} },
IsAllDay: false,
IsCancelled: false,
IsOrganizer: true,
Recurrence:
{ Pattern:
{ Type: 'Weekly',
Interval: 1,
Month: 0,
DayOfMonth: 0,
DaysOfWeek: [ 'Monday' ],
FirstDayOfWeek: 'Sunday',
Index: 'First' },
Range:
{ Type: 'NoEnd',
StartDate: '2016-09-12',
EndDate: '0001-01-01',
RecurrenceTimeZone: 'FLE Standard Time',
NumberOfOccurrences: 0 } },
ResponseRequested: false,
SeriesMasterId: null,
ShowAs: 'Busy',
Type: 'SeriesMaster',
Attendees: [],
Organizer:
{ EmailAddress:
{ Name: 'John Smith',
Address: 'john.smith@sample.onmicrosoft.com' } },
WebLink: 'https://outlook.office365.com/owa/?ItemID=AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT%2FM8JoV8TI5B1BhmG2N%2BBwBi3Yqq%2BsjMSYdHHux%2BaUXFAAAAAAFZAABi3Yqq%2BsjMSYdHHux%2BaUXFAAAMNRbUAAA%3D&exvsurl=1&viewModel=ICalendarItemDetailsViewModelFactory',
'Calendar@odata.associationLink': 'https://outlook.office.com/api/v2.0/Users(\'2ce6a929-0b04-40fb-9c73-d812370e0d46@ea38f869-d755-40c7-9c95-e6277325b7ae\')/Calendars(\'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAEGAABi3Yqq_sjMSYdHHux_aUXFAAAAAA0jAAA=\')/$ref',
'Calendar@odata.navigationLink': 'https://outlook.office.com/api/v2.0/Users(\'2ce6a929-0b04-40fb-9c73-d812370e0d46@ea38f869-d755-40c7-9c95-e6277325b7ae\')/Calendars(\'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAEGAABi3Yqq_sjMSYdHHux_aUXFAAAAAA0jAAA=\')' }
{ '@odata.context': 'https://outlook.office.com/api/v2.0/$metadata#Users(\'2ce6a929-0b04-40fb-9c73-d812370e0d46%40ea38f869-d755-40c7-9c95-e6277325b7ae\')/Events/$entity',
'@odata.id': 'https://outlook.office.com/api/v2.0/Users(\'2ce6a929-0b04-40fb-9c73-d812370e0d46@ea38f869-d755-40c7-9c95-e6277325b7ae\')/Events(\'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAFZAABi3Yqq_sjMSYdHHux_aUXFAAAMNRbUAAA=\')',
'@odata.etag': 'W/"Yt2KqvrIzEmHRx7sfmlFxQAADDdF3w=="',
Id: 'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAFZAABi3Yqq_sjMSYdHHux_aUXFAAAMNRbUAAA=',
CreatedDateTime: '2016-09-13T03:55:43.5305953-02:00',
LastModifiedDateTime: '2016-09-13T03:57:48.2229052-02:00',
ChangeKey: 'Yt2KqvrIzEmHRx7sfmlFxQAADDdF3w==',
Categories: [],
OriginalStartTimeZone: 'FLE Standard Time',
OriginalEndTimeZone: 'FLE Standard Time',
ResponseStatus: { Response: 'Organizer', Time: '0001-01-01T00:00:00Z' },
iCalUId: '040000008200E00074C5B7101A82E00800000000F9B6FC76830DD2010000000000000000100000005D7D5B0B8D1EA84E86C8AEE4014697CA',
ReminderMinutesBeforeStart: 15,
IsReminderOn: true,
HasAttachments: false,
Subject: 'standup meeting',
Body:
{ ContentType: 'HTML',
Content: '<html>\r\n<head>\r\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r\n<meta content="text/html; charset=us-ascii">\r\n<style type="text/css" style="display:none">\r\n<!--\r\np\r\n\t{margin-top:0;\r\n\tmargin-bottom:0}\r\n-->\r\n</style>\r\n</head>\r\n<body dir="ltr">\r\n<div id="divtagdefaultwrapper" style="font-size:12pt; color:#000000; background-color:#FFFFFF; font-family:Calibri,Arial,Helvetica,sans-serif">\r\n<p><br>\r\n</p>\r\n</div>\r\n</body>\r\n</html>\r\n' },
BodyPreview: '',
Importance: 'Normal',
Sensitivity: 'Normal',
Start:
{ DateTime: '2016-09-12T03:00:00.0000000',
TimeZone: 'Etc/GMT+2' },
End:
{ DateTime: '2016-09-12T03:30:00.0000000',
TimeZone: 'Etc/GMT+2' },
Location: { DisplayName: '', Address: {}, Coordinates: {} },
IsAllDay: false,
IsCancelled: false,
IsOrganizer: true,
Recurrence:
{ Pattern:
{ Type: 'Weekly',
Interval: 1,
Month: 0,
DayOfMonth: 0,
DaysOfWeek: [ 'Monday' ],
FirstDayOfWeek: 'Sunday',
Index: 'First' },
Range:
{ Type: 'NoEnd',
StartDate: '2016-09-12',
EndDate: '0001-01-01',
RecurrenceTimeZone: 'FLE Standard Time',
NumberOfOccurrences: 0 } },
ResponseRequested: false,
SeriesMasterId: null,
ShowAs: 'Busy',
Type: 'SeriesMaster',
Attendees: [],
Organizer:
{ EmailAddress:
{ Name: 'John Smith',
Address: 'john.smith@sample.onmicrosoft.com' } },
WebLink: 'https://outlook.office365.com/owa/?ItemID=AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT%2FM8JoV8TI5B1BhmG2N%2BBwBi3Yqq%2BsjMSYdHHux%2BaUXFAAAAAAFZAABi3Yqq%2BsjMSYdHHux%2BaUXFAAAMNRbUAAA%3D&exvsurl=1&viewModel=ICalendarItemDetailsViewModelFactory',
'Calendar@odata.associationLink': 'https://outlook.office.com/api/v2.0/Users(\'2ce6a929-0b04-40fb-9c73-d812370e0d46@ea38f869-d755-40c7-9c95-e6277325b7ae\')/Calendars(\'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAEGAABi3Yqq_sjMSYdHHux_aUXFAAAAAA0jAAA=\')/$ref',
'Calendar@odata.navigationLink': 'https://outlook.office.com/api/v2.0/Users(\'2ce6a929-0b04-40fb-9c73-d812370e0d46@ea38f869-d755-40c7-9c95-e6277325b7ae\')/Calendars(\'AAMkADg5YzZmNTViLWM3NjEtNGI4Mi04Yjg4LTkyOWQ4NjFjM2QzOABGAAAAAAATT-M8JoV8TI5B1BhmG2N_BwBi3Yqq_sjMSYdHHux_aUXFAAAAAAEGAABi3Yqq_sjMSYdHHux_aUXFAAAAAA0jAAA=\')' }