Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Namespace: microsoft.graph
Wichtig
Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.
Rufen Sie eine Reihe von Ereignisressourcen ab, die in einem oder mehreren Kalendern hinzugefügt, gelöscht oder aktualisiert werden.
Sie können bestimmte Typen dieser inkrementellen Änderungen in den Ereignissen in allen Kalendern eines Postfachs oder in einem bestimmten Kalender oder in einer Ereignissammlung einer calendarView (durch Start- und Enddatum definierter Ereignisbereich) eines Kalenders abrufen. Der Kalender kann der Standardkalender oder ein anderer angegebener Kalender sein, der dem Benutzer gehört. Beim Abrufen inkrementeller Änderungen in calendarView kann der Kalender auch ein Gruppenkalender sein.
In der Regel erfordert das Synchronisieren von Ereignissen in einem Kalender oder einer Kalenderansicht in einem lokalen Speicher eine Runde mehrerer Delta-Funktionsaufrufe. Der erste Aufruf ist eine vollständige Synchronisierung. Jeder nachfolgende Delta-Aufruf in derselben Runde erhält die inkrementellen Änderungen (Hinzufügungen, Löschungen oder Aktualisierungen). Mithilfe von Deltas können Sie einen lokalen Speicher von Ereignissen im angegebenen Kalender inkrementell verwalten und synchronisieren.
In der folgenden Tabelle sind die Unterschiede zwischen der Delta-Funktion bei Ereignissen und der Delta-Funktion bei einer calendarView in einem Kalender aufgeführt.
| Delta-Funktion für Ereignisse | Delta-Funktion für calendarView |
|---|---|
| Ruft inkrementelle Änderungen aller Ereignisse in einem Kalender ab, der nicht durch einen Start- und Enddatumsbereich begrenzt ist. Alternativ können Sie inkrementelle Änderungen der Ereignisse in einem Kalender abrufen, der durch eine Startzeit begrenzt ist und an oder nach diesem Datum/dieser Uhrzeit beginnt. | Ruft inkrementelle Änderungen von Ereignissen innerhalb des Start- und Enddatums/der Endzeit der calendarView ab. |
Gibt aus Leistungsgründen nur einen begrenzten Satz von Ereigniseigenschaften zurück. Client, der später zum Erweitern von Ereignissen verwendet werden GET /events/{id} soll. |
Die serverseitige Erweiterung gibt einen vollständigeren Satz von Ereigniseigenschaften zurück. |
| Antwort umfasst Einzelinstanzen und wiederkehrende Serien master. | Die Antwort umfasst Einzelinstanzen sowie Vorkommen und Ausnahmen von wiederkehrenden Reihen. |
| Gilt für Ereignisse in Benutzerkalendern, aber nicht in Gruppenkalendern. | Gilt für Ereignisse in Benutzer- und Gruppenkalendern. |
| Derzeit nur in der Betaversion verfügbar. | Verfügbar in den Versionen v1.0 und Beta. |
Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.
| Weltweiter Service | US Government L4 | US Government L5 (DOD) | China, betrieben von 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Berechtigungen
Wählen Sie die Berechtigungen aus, die für diese API als am wenigsten privilegiert markiert sind. Verwenden Sie eine höhere Berechtigung oder Berechtigungen nur, wenn Ihre App dies erfordert. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.
| Berechtigungstyp | Berechtigungen mit den geringsten Berechtigungen | Berechtigungen mit höheren Berechtigungen |
|---|---|---|
| Delegiert (Geschäfts-, Schul- oder Unikonto) | Calendars.ReadBasic | Calendars.Read, Calendars.ReadWrite |
| Delegiert (persönliches Microsoft-Konto) | Calendars.ReadBasic | Calendars.Read, Calendars.ReadWrite |
| Anwendung | Calendars.Read | Calendars.ReadBasic, Calendars.ReadWrite |
HTTP-Anforderung
In diesem Abschnitt wird die HTTP-Anforderungssyntax für den anfänglichen Aufruf der Delta-Funktion zum Starten einer vollständigen Synchronisierung gezeigt, die alle Ereignisse im angegebenen Kalender oder in der angegebenen Kalenderansicht abruft. Diese Syntax enthält keine Statustoken.
Die Abfrage-URL, die in einer @odata.nextLink oder @odata.deltaLink einer erfolgreichen Antwort zurückgegeben wird, enthält ein Zustandstoken. Verwenden Sie für alle nachfolgenden Delta-Funktionsaufrufe die Abfrage-URL in einem @odata.nextLink oder @odata.deltaLink davor.
Delta-Funktion für Ereignisse in einem Benutzerkalender (Vorschau)
Wenden Sie die Delta-Funktion auf alle Ereignisse oder Ereignisse an, die am oder nach einem bestimmten Datum/einer bestimmten Uhrzeit im angegebenen Benutzerkalender oder den angegebenen Benutzerkalendern beginnen:
So rufen Sie inkrementelle Änderungen aller Ereignisse oder von Ereignissen ab, die am oder nach dem angegebenen Datum/der angegebenen Uhrzeit im Postfach des Benutzers beginnen:
GET /me/events/delta GET /users/{id | userPrincipalName}/events/delta GET /me/events/delta?startDateTime={start_datetime} GET /users/{id | userPrincipalName}/events/delta?startDateTime={start_datetime}So rufen Sie inkrementelle Änderungen aller Ereignisse oder von Ereignissen ab, die am oder nach dem angegebenen Datum/der angegebenen Uhrzeit im Standardkalender des Benutzers beginnen:
GET /me/calendar/events/delta GET /users/{id | userPrincipalName}/calendar/events/delta GET /me/calendar/events/delta?startDateTime={start_datetime} GET /users/{id | userPrincipalName}/calendar/events/delta?startDateTime={start_datetime}So rufen Sie inkrementelle Änderungen aller Ereignisse oder von Ereignissen ab, die am oder nach dem angegebenen Datum/der angegebenen Uhrzeit im angegebenen Benutzerkalender beginnen:
GET /me/calendars/{id}/events/delta GET /users/{id | userPrincipalName}/calendars/{id}/events/delta GET /me/calendars/{id}/events/delta?startDateTime={start_datetime} GET /users/{id | userPrincipalName}/calendars/{id}/events/delta?startDateTime={start_datetime}So rufen Sie inkrementelle Änderungen aller Ereignisse oder von Ereignissen ab, die am oder nach dem angegebenen Datum/der angegebenen Uhrzeit in der angegebenen Kalendergruppe und dem angegebenen Kalender beginnen:
GET /me/calendarGroups/{id}/calendars/{id}/events/delta GET /users/{id | userPrincipalName}/calendarGroups/{id}/calendars/{id}/events/delta GET /me/calendarGroups/{id}/calendars/{id}/events/delta?startDateTime={start_datetime} GET /users/{id | userPrincipalName}/calendarGroups/{id}/calendars/{id}/events/delta?startDateTime={start_datetime}
Delta-Funktion in calendarView in a user calendar
Wenden Sie die Delta-Funktion auf einen Bereich von Ereignissen an, die durch Start- und Enddatum/-uhrzeit im angegebenen Benutzerkalender getrennt sind:
So rufen Sie inkrementelle Änderungen in einer Kalenderansicht des Standardkalenders des Benutzers ab:
GET /me/calendarView/delta?startDateTime={start_datetime}&endDateTime={end_datetime} GET /users/{id}/calendarView/delta?startDateTime={start_datetime}&endDateTime={end_datetime}So rufen Sie inkrementelle Änderungen in einer Kalenderansicht des angegebenen Benutzerkalenders ab:
GET /me/calendars/{id}/calendarView/delta?startDateTime={start_datetime}&endDateTime={end_datetime} GET /users/{id}/calendars/{id}/calendarView/delta?startDateTime={start_datetime}&endDateTime={end_datetime}
Delta-Funktion in KalenderAnsicht in einem Gruppenkalender
- So erhalten Sie inkrementelle Änderungen in einer Kalenderansicht des Kalenders einer Gruppe:
GET /groups/{id}/calendarView?startDateTime={start_datetime}&endDateTime={end_datetime}
Abfrageparameter
Das Nachverfolgen von Änderungen führt zu einer Runde von mindestens einem Delta-Funktionsaufruf. Wenn Sie Abfrageparameter (außer $deltatoken und $skiptoken) verwenden, müssen Sie sie in der ursprünglichen Delta-Anforderung angeben. Microsoft Graph codiert automatisch alle angegebenen Parameter in den Tokenteil der in der Antwort enthaltenen @odata.nextLink- oder @odata.deltaLink-URL. Sie müssen alle gewünschten Abfrageparameter nur einmal im Vorfeld angeben.
In nachfolgenden Anforderungen können Sie die @odata.nextLink- oder @odata.deltaLink-URL aus der vorherigen Antwort kopieren und anwenden, da diese URL bereits die codierten gewünschten Parameter enthält.
| Abfrageparameter | Typ | Beschreibung |
|---|---|---|
| startDateTime | String | Startdatum und -uhrzeit des Zeitraums, dargestellt im ISO 8601-Format. Beispiel: "2019-11-08T19:00:00-08:00". Die Zeitzone wird im Zeitzonen-Offset-Teil des Parameterwerts angegeben und wird vom Prefer: outlook.timezone Header nicht beeinflusst, falls vorhanden. Wenn keine Zeitzonenverschiebung im Wert enthalten ist, wird er als UTC interpretiert.Optional für Delta bei Ereignissen in einem Kalender. Erforderlich für Delta in calendarView. |
| endDateTime | String | Enddatum und -zeit des Zeitbereichs, dargestellt im ISO 8601-Format. Beispiel: "2019-11-08T20:00:00-08:00". Die Zeitzone wird im Zeitzonen-Offset-Teil des Parameterwerts angegeben und ist nicht vom Prefer: outlook.timezone Header betroffen, falls vorhanden. Wenn keine Zeitzonenverschiebung im Wert enthalten ist, wird er als UTC interpretiert.Nicht unterstützt von Delta für Ereignisse in einem Kalender. Erforderlich für Delta in calendarView. |
| $deltatoken | string | Ein Zustandstoken, das in der @odata.deltaLink URL des vorherigen Delta-Funktionsaufrufs für dieselbe Kalenderansicht zurückgegeben wurde und den Abschluss dieser Runde der Änderungsnachverfolgung angibt. Speichern Sie die gesamte @odata.deltaLink URL, einschließlich dieses Tokens, und wenden Sie sie in der ersten Anforderung der nächsten Runde der Änderungsnachverfolgung für diese Kalenderansicht an. |
| $skiptoken | string | Ein Statustoken, das in der @odata.nextLink-URL des vorhergehenden delta-Funktionsaufrufs zurückgegeben wird und anzeigt, dass in derselben Kalenderansicht weitere Änderungen zum Nachverfolgen vorliegen. |
OData-Abfrageparameter
Sie können erwarten, dass ein Delta-Funktionsaufruf auf einer calendarView die gleichen Eigenschaften zurückgibt, die Sie normalerweise von einer
GET /calendarViewAnforderung erhalten würden. Sie können nicht verwenden$select, um nur eine Teilmenge dieser Eigenschaften abzurufen.Die Delta-Funktion unterstützt die folgenden Abfrageparameter für Ereignisse in einem Benutzerkalender oder Ereignisse in einer calendarView nicht:
$expand,$filter,$orderby,$searchund$select.
Anforderungsheader
| Name | Typ | Beschreibung |
|---|---|---|
| Authorization | string | Bearer {token}. Erforderlich. Erfahren Sie mehr über Authentifizierung und Autorisierung. |
| Content-Type | string | application/json. Erforderlich. |
| Prefer | string | odata.maxpageSize={x}. Optional. |
| Prefer | string | outlook.timezone={Time zone string}. Optional, UTC wird angenommen, wenn nicht vorhanden. |
Antwort
Delta-Funktion für Ereignisse (Vorschau)
Bei erfolgreicher Ausführung gibt diese Methode einen 200 OK Antwortcode und eine Ereignissammlung im Antworttext zurück. Jedes Ereignis in der Antwort enthält aus Leistungsgründen nur die Eigenschaften id, type, start und end . Verwenden Sie GET /events/{id} später, um alle Ereignisse aus der Antwort zu erweitern.
Delta-Funktion für calendarView
Bei erfolgreicher Ausführung gibt diese Methode einen 200 OK Antwortcode und eine Ereignissammlung im Antworttext zurück.
Erwarten Sie, dass Sie alle Eigenschaften erhalten, die Sie normalerweise von einer GET /calendarView Anfrage erhalten würden.
Innerhalb einer Runde von Delta-Funktionsaufrufen , die an den Datumsbereich einer calendarView gebunden sind, können Sie manchmal einen Delta-Aufruf finden, der zwei Arten von Ereignissen mit @removed dem Grund deletedzurückgibt:
- Ereignisse, die innerhalb des Datumsbereichs liegen und seit dem letzten Delta-Aufruf gelöscht wurden.
- Ereignisse, die außerhalb des Datumsbereichs liegen und die seit dem letzten Delta-Aufruf hinzugefügt, gelöscht oder aktualisiert wurden.
Filtern Sie die Ereignisse unter @removed nach den Datumsangaben, die für Ihr Szenario erforderlich sind.
Beispiele
Beispiel 1: Delta-Funktion für Ereignisse in einem Kalender (Vorschau)
Anforderung
Das folgende Beispiel zeigt die anfängliche Synchronisierungsanforderung zum Abrufen von Ereignissen im Standardkalender des angemeldeten Benutzers, die am oder nach dem angegebenen startDateTime Parameter auftreten. Die ursprüngliche Anforderung enthält kein Zustandstoken.
Die Anforderung verwendet den Prefer: odata.maxpagesize Header, um die maximale Anzahl von Ereignissen in jeder Antwort auf 1 zu beschränken.
Rufen Sie die delta Funktion mithilfe der zurückgegebenen @odata.nextLink Abfrage so lange auf, bis Sie eine @odata.deltaLink Antwort erhalten.
GET https://graph.microsoft.com/beta/me/calendar/events/delta?startDateTime=2020-06-12T00:00:00Z
Prefer: odata.maxpagesize=1
Antwort
Wenn die Anforderung erfolgreich ist, enthält die Antwort ein Zustandstoken, bei dem es sich entweder um einen skipToken (in einem @odata.nextLink-Antwortheader ) oder um ein deltaToken (in einem @odata.deltaLink-Antwortheader ) handelt. Sie zeigen jeweils an, ob Sie mit der Runde fortfahren sollten oder ob Sie alle Änderungen für diese Runde erhalten haben.
Die Antwort unten zeigt ein skipToken in einem @odata.nextLink-Antwortheader.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.nextLink":"https://graph.microsoft.com/beta/me/calendar/events/delta?$skiptoken=R0usmcdvmMu7jxWP8",
"value": [
{
"id": " AAMkADllMWMwNDkzLWJlY2EtNDIyOS1iZjAA=",
"type": "singleInstance",
"start": {
"DateTime": "2020-02-19T10:00:00.0000000",
"TimeZone": "UTC"
},
"end": {
"DateTime": "2020-02-19T11:00:00.0000000",
"TimeZone": "UTC"
}
}
]
}
Beispiel 2: Delta-Funktion für calendarView
Anforderung
Das folgende Beispiel zeigt die anfängliche Synchronisierungsanforderung zum Abrufen von Ereignissen im angegebenen Kalender des angemeldeten Benutzers innerhalb des von calendarView angegebenen Datumsbereichs. Die ursprüngliche Anforderung enthält kein Zustandstoken.
Die Anforderung verwendet den Prefer: odata.maxpagesize Header, um die maximale Anzahl von Ereignissen in jeder Antwort auf 2 zu beschränken. Rufen Sie die delta Funktion mithilfe der zurückgegebenen @odata.nextLink Abfrage so lange auf, bis Sie alle Ereignisse in dieser Kalenderansicht und a @odata.deltaLink in der Antwort erhalten.
GET https://graph.microsoft.com/beta/me/calendars/AAMkADI5M1BbeAAA=/calendarView/delta?startDateTime=2020-06-01T00:00:00Z&endDateTime=2020-06-10T00:00:00Z
Prefer: odata.maxpagesize=2
Antwort
Wenn die Anforderung erfolgreich ist, enthält die Antwort ein Zustandstoken, bei dem es sich entweder um einen skipToken (in einem @odata.nextLink-Antwortheader ) oder um ein deltaToken (in einem @odata.deltaLink-Antwortheader ) handelt. Sie zeigen jeweils an, ob Sie mit der Runde fortfahren sollten oder ob Sie alle Änderungen für diese Runde erhalten haben.
Die folgende Antwort zeigt einen skipToken in einem @odata.nextLink-Antwortheader .
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt sein.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#Collection(event)",
"@odata.nextLink": "https://graph.microsoft.com/beta/me/calendars/AAMkADI5M1BbeAAA=/calendarView/delta?$skiptoken=R0usmcdvmMu7jxWP8",
"value": [
{
"@odata.type": "#microsoft.graph.event",
"@odata.etag": "W/\"Jdsb3FEkPk2qoUHCdliYowACwixTgw==\"",
"createdDateTime": "2020-06-16T04:05:43.8668791Z",
"lastModifiedDateTime": "2020-06-16T04:08:27.354268Z",
"changeKey": "Jdsb3FEkPk2qoUHCdliYowACwixTgw==",
"categories": [],
"transactionId": null,
"originalStartTimeZone": "Pacific Standard Time",
"originalEndTimeZone": "Pacific Standard Time",
"uid": "040000008200E00074C5B7101A82E00800000000F088B8B95843D601000000000000000010000000165CD5547CFC9545B6492B261750B48C",
"reminderMinutesBeforeStart": 15,
"isReminderOn": false,
"hasAttachments": false,
"subject": "Summer party",
"bodyPreview": "",
"importance": "normal",
"sensitivity": "normal",
"isAllDay": false,
"isCancelled": false,
"isOrganizer": true,
"IsRoomRequested": false,
"AutoRoomBookingStatus": "None",
"responseRequested": true,
"seriesMasterId": null,
"showAs": "busy",
"type": "singleInstance",
"webLink": "https://outlook.office365.com/owa/?itemid=AAMkADI5MAAKkeE1QAAA%3D&exvsurl=1&path=/calendar/item",
"onlineMeetingUrl": null,
"isOnlineMeeting": false,
"onlineMeetingProvider": "unknown",
"allowNewTimeProposals": true,
"OccurrenceId": null,
"isDraft": false,
"recurrence": null,
"AutoRoomBookingOptions": null,
"onlineMeeting": null,
"id": "AAMkADI5MAAKkeE1QAAA=",
"responseStatus": {
"response": "none",
"time": "0001-01-01T00:00:00Z"
},
"body": {
"contentType": "html",
"content": "<html>\r\n<head></head>\r\n<body lang=\"EN-US\" link=\"#0563C1\" vlink=\"#954F72\" style=\"\">\r\n<div class=\"WordSection1\">\r\n<p class=\"MsoNormal\"> </p>\r\n</div>\r\n</body>\r\n</html>\r\n"
},
"start": {
"dateTime": "2020-06-02T20:00:00.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2020-06-02T22:30:00.0000000",
"timeZone": "UTC"
},
"location": {
"displayName": "",
"locationType": "default",
"uniqueIdType": "unknown",
"address": {
"type": "unknown"
},
"coordinates": {}
},
"locations": [],
"attendees": [
{
"type": "required",
"status": {
"response": "none",
"time": "0001-01-01T00:00:00Z"
},
"emailAddress": {
"name": "Samantha Booth",
"address": "samanthab@contoso.com"
}
}
],
"organizer": {
"emailAddress": {
"name": "Samantha Booth",
"address": "samanthab@contoso.com"
}
}
},
{
"@odata.type": "#microsoft.graph.event",
"@odata.etag": "W/\"Jdsb3FEkPk2qoUHCdliYowACwixTfw==\"",
"createdDateTime": "2020-06-16T04:06:18.386713Z",
"lastModifiedDateTime": "2020-06-16T04:08:19.5694048Z",
"changeKey": "Jdsb3FEkPk2qoUHCdliYowACwixTfw==",
"categories": [],
"transactionId": null,
"originalStartTimeZone": "Pacific Standard Time",
"originalEndTimeZone": "Pacific Standard Time",
"uid": "040000008200E00074C5B7101A82E0080000000060074BC55843D6010000000000000000100000002D33A89F36B10D43A12FD990B62858B2",
"reminderMinutesBeforeStart": 15,
"isReminderOn": true,
"hasAttachments": false,
"subject": "Summer party part 2",
"bodyPreview": "",
"importance": "normal",
"sensitivity": "normal",
"isAllDay": false,
"isCancelled": false,
"isOrganizer": true,
"IsRoomRequested": false,
"AutoRoomBookingStatus": "None",
"responseRequested": true,
"seriesMasterId": null,
"showAs": "busy",
"type": "singleInstance",
"webLink": "https://outlook.office365.com/owa/?itemid=AAMkADI5MAAKkeE1RAAA%3D&exvsurl=1&path=/calendar/item",
"onlineMeetingUrl": null,
"isOnlineMeeting": false,
"onlineMeetingProvider": "unknown",
"allowNewTimeProposals": true,
"OccurrenceId": null,
"isDraft": false,
"recurrence": null,
"AutoRoomBookingOptions": null,
"onlineMeeting": null,
"id": "AAMkADI5MAAKkeE1RAAA=",
"responseStatus": {
"response": "none",
"time": "0001-01-01T00:00:00Z"
},
"body": {
"contentType": "html",
"content": "<html>\r\n<head></head>\r\n<body lang=\"EN-US\" link=\"#0563C1\" vlink=\"#954F72\" style=\"\">\r\n<div class=\"WordSection1\">\r\n<p class=\"MsoNormal\"> </p>\r\n</div>\r\n</body>\r\n</html>\r\n"
},
"start": {
"dateTime": "2020-06-04T19:30:00.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2020-06-04T22:30:00.0000000",
"timeZone": "UTC"
},
"location": {
"displayName": "",
"locationType": "default",
"uniqueIdType": "unknown",
"address": {
"type": "unknown"
},
"coordinates": {}
},
"locations": [],
"attendees": [
{
"type": "required",
"status": {
"response": "none",
"time": "0001-01-01T00:00:00Z"
},
"emailAddress": {
"name": "Samantha Booth",
"address": "samanthab@contoso.com"
}
}
],
"organizer": {
"emailAddress": {
"name": "Samantha Booth",
"address": "samanthab@contoso.com"
}
}
}
]
}