Создайте ресурс calendarPermission , чтобы указать удостоверение и роль пользователя, которому предоставлен общий или делегированный доступ к указанному календарю.
В зависимости от типа календаря, к которому относится событие, а также от требуемого типа разрешений (делегированные или разрешения приложений), для вызова этого API необходимо одно из указанных ниже разрешений. Дополнительные сведения, включая сведения о том, как выбрать разрешения, см. в статье Разрешения.
Календарь
Делегированные (рабочая или учебная учетная запись)
Делегированное (личная учетная запись Майкрософт)
Приложение
календарь пользователя
Calendars.Read, Calendars.ReadWrite
Calendars.Read, Calendars.ReadWrite
Calendars.Read, Calendars.ReadWrite
календарь группы
Group.Read.All, Group.ReadWrite.All
Не поддерживается.
Не поддерживается.
HTTP-запрос
Создайте указанные разрешения для основного календаря пользователя:
POST /users/{id}/calendar/calendarPermissions
Создайте указанные разрешения календаря группы:
POST /groups/{id}/calendar/calendarPermissions
Создайте указанные разрешения пользовательского календаря, содержащего идентифицированное событие:
POST /users/{id}/events/{id}/calendar/calendarPermissions
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.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.Me.Calendar.CalendarPermissions.PostAsync(requestBody);
// 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.me().calendar().calendarPermissions().post(calendarPermission);
Import-Module Microsoft.Graph.Calendar
$params = @{
emailAddress = @{
name = "Samantha Booth"
address = "samanthab@contoso.com"
}
isInsideOrganization = $true
isRemovable = $true
role = "read"
}
# A UPN can also be used as -UserId.
New-MgUserCalendarPermission -UserId $userId -BodyParameter $params
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе https://aka.ms/ContentUserFeedback.