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.
Erstellen Sie eine calendarPermission-Ressource , um die Identität und Rolle des Benutzers anzugeben, für den der angegebene Kalender freigegeben oder delegiert wird.
Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.
| Weltweiter Service |
US Government L4 |
US Government L5 (DOD) |
China, betrieben von 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Berechtigungen
Je nach dem Typ des Kalenders, in dem sich das Ereignis befindet, und dem Typ der Berechtigung (delegierte Berechtigung oder Anwendungsberechtigung), ist eine der folgenden Berechtigungen erforderlich, um diese API aufzurufen. Weitere Informationen, unter anderem zur Auswahl von Berechtigungen, finden Sie unter Berechtigungen.
| Kalender |
Delegiert (Geschäfts-, Schul- oder Unikonto) |
Delegiert (persönliches Microsoft-Konto) |
Application |
| Benutzerkalender |
Calendars.Read, Calendars.ReadWrite |
Calendars.Read, Calendars.ReadWrite |
Calendars.Read, Calendars.ReadWrite |
| Gruppenkalender |
Group.Read.All, Group.ReadWrite.All |
Nicht unterstützt |
Nicht unterstützt |
HTTP-Anforderung
Erstellen Sie die angegebenen Berechtigungen für den primären Kalender eines Benutzers:
POST /users/{id}/calendar/calendarPermissions
Erstellen Sie die angegebenen Berechtigungen eines Gruppenkalenders:
POST /groups/{id}/calendar/calendarPermissions
Erstellen Sie die angegebenen Berechtigungen des Benutzerkalenders, der das identifizierte Ereignis enthält:
POST /users/{id}/events/{id}/calendar/calendarPermissions
Anforderungstext
Geben Sie im Anforderungstext eine JSON-Darstellung eines calendarPermission-Objekts an.
Antwort
Bei erfolgreicher Ausführung gibt die Methode den 200 OK Antwortcode und eine Auflistung von calendarPermission-Objekten im Antworttext zurück.
Beispiele
Anforderung
Das folgende Beispiel zeigt eine Anfrage.
POST https://graph.microsoft.com/beta/users/458d4c95-124e-49da-ba9d-1dd0387e682e/calendar/calendarPermissions
{
"emailAddress": {
"name": "Samantha Booth",
"address": "samanthab@contoso.com"
},
"isInsideOrganization": true,
"isRemovable": true,
"role": "read"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new CalendarPermission
{
EmailAddress = new EmailAddress
{
Name = "Samantha Booth",
Address = "samanthab@contoso.com",
},
IsInsideOrganization = true,
IsRemovable = true,
Role = CalendarRoleType.Read,
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].Calendar.CalendarPermissions.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewCalendarPermission()
emailAddress := graphmodels.NewEmailAddress()
name := "Samantha Booth"
emailAddress.SetName(&name)
address := "samanthab@contoso.com"
emailAddress.SetAddress(&address)
requestBody.SetEmailAddress(emailAddress)
isInsideOrganization := true
requestBody.SetIsInsideOrganization(&isInsideOrganization)
isRemovable := true
requestBody.SetIsRemovable(&isRemovable)
role := graphmodels.READ_CALENDARROLETYPE
requestBody.SetRole(&role)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
calendarPermissions, err := graphClient.Users().ByUserId("user-id").Calendar().CalendarPermissions().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
CalendarPermission calendarPermission = new CalendarPermission();
EmailAddress emailAddress = new EmailAddress();
emailAddress.setName("Samantha Booth");
emailAddress.setAddress("samanthab@contoso.com");
calendarPermission.setEmailAddress(emailAddress);
calendarPermission.setIsInsideOrganization(true);
calendarPermission.setIsRemovable(true);
calendarPermission.setRole(CalendarRoleType.Read);
CalendarPermission result = graphClient.users().byUserId("{user-id}").calendar().calendarPermissions().post(calendarPermission);
const options = {
authProvider,
};
const client = Client.init(options);
const calendarPermission = {
emailAddress: {
name: 'Samantha Booth',
address: 'samanthab@contoso.com'
},
isInsideOrganization: true,
isRemovable: true,
role: 'read'
};
await client.api('/users/458d4c95-124e-49da-ba9d-1dd0387e682e/calendar/calendarPermissions')
.version('beta')
.post(calendarPermission);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\CalendarPermission;
use Microsoft\Graph\Beta\Generated\Models\EmailAddress;
use Microsoft\Graph\Beta\Generated\Models\CalendarRoleType;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new CalendarPermission();
$emailAddress = new EmailAddress();
$emailAddress->setName('Samantha Booth');
$emailAddress->setAddress('samanthab@contoso.com');
$requestBody->setEmailAddress($emailAddress);
$requestBody->setIsInsideOrganization(true);
$requestBody->setIsRemovable(true);
$requestBody->setRole(new CalendarRoleType('read'));
$result = $graphServiceClient->users()->byUserId('user-id')->calendar()->calendarPermissions()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Calendar
$params = @{
emailAddress = @{
name = "Samantha Booth"
address = "samanthab@contoso.com"
}
isInsideOrganization = $true
isRemovable = $true
role = "read"
}
New-MgBetaUserCalendarPermission -UserId $userId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.calendar_permission import CalendarPermission
from msgraph_beta.generated.models.email_address import EmailAddress
from msgraph_beta.generated.models.calendar_role_type import CalendarRoleType
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = CalendarPermission(
email_address = EmailAddress(
name = "Samantha Booth",
address = "samanthab@contoso.com",
),
is_inside_organization = True,
is_removable = True,
role = CalendarRoleType.Read,
)
result = await graph_client.users.by_user_id('user-id').calendar.calendar_permissions.post(request_body)
Antwort
Das folgende Beispiel zeigt die Antwort.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users('458d4c95-124e-49da-ba9d-1dd0387e682e')/calendar/calendarPermissions/$entity",
"id": "RXhjaGFuZ2VQdWJsaXNoZWRVc2VyLnNhbWFudGhhYkBhZGF0dW0ub25taWNyb3NvZnQuY29t",
"isRemovable": true,
"isInsideOrganization": true,
"role": "read",
"allowedRoles": [
"freeBusyRead",
"limitedRead",
"read"
],
"emailAddress": {
"name": "Samantha Booth",
"address": "samanthab@contoso.com"
}
}