Schedule.ReadWrite.All
Allows the app to manage all schedules, schedule groups, shifts and associated entities in the Teams or Shifts application without a signed-in user.
In short
Schedule.ReadWrite.All is available as both an application permission and a delegated permission in the Microsoft Graph API, grouped under the Schedule category. Allows the app to manage all schedules, schedule groups, shifts and associated entities in the Teams or Shifts application without a signed-in user. It grants read and write access to resources. Application permissions always require admin consent.
Permission Details
Read and write all schedule items
Allows the app to manage all schedules, schedule groups, shifts and associated entities in the Teams or Shifts application without a signed-in user.
b7760610-0545-4e8a-9ec3-cce9e63db01c
Read and write user schedule items
Allows the app to manage schedule, schedule groups, shifts and associated entities in the Teams or Shifts application on behalf of the signed-in user.
63f27281-c9d9-4f29-94dd-6942f7f1feb0
Properties
Properties is shown from stable Microsoft Graph v1.0 metadata.
| Property | Type | Description |
|---|---|---|
enabled |
BooleanNullable |
Indicates whether the schedule is enabled for the team. Required. |
id |
string |
ID of the schedule. |
isActivitiesIncludedWhenCopyingShiftsEnabled |
BooleanNullable |
Indicates whether copied shifts include activities from the original shift. |
offerShiftRequestsEnabled |
BooleanNullable |
Indicates whether offer shift requests are enabled for the schedule. |
openShiftsEnabled |
BooleanNullable |
Indicates whether open shifts are enabled for the schedule. |
provisionStatus |
operationStatusRead-only |
The status of the schedule provisioning. The possible values are notStarted, running, completed, failed. |
provisionStatusCode |
stringRead-onlyNullable |
Additional information about why schedule provisioning failed. |
startDayOfWeek |
dayOfWeek |
Indicates the start day of the week. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. |
swapShiftsRequestsEnabled |
BooleanNullable |
Indicates whether swap shifts requests are enabled for the schedule. |
timeClockEnabled |
BooleanNullable |
Indicates whether time clock is enabled for the schedule. |
timeClockSettings |
timeClockSettings |
The time clock location settings for this schedule. |
timeOffRequestsEnabled |
BooleanNullable |
Indicates whether time off requests are enabled for the schedule. |
timeZone |
stringNullable |
The time zone of the schedule team as an IANA time zone database (tz database) name; for example, America/Chicago. For the full list of valid values, see List of tz database time zones. Required. |
workforceIntegrationIds |
String collection |
The IDs for the workforce integrations associated with this schedule. |
dayNotes |
dayNote collection |
The day notes in the schedule. |
Showing 15 of 25 properties.
JSON Representation
JSON representation is shown from stable Microsoft Graph v1.0 metadata.
{
"@odata.type": "#microsoft.graph.schedule",
"id": "String (identifier)",
"enabled": "Boolean",
"timeZone": "String",
"provisionStatus": "String",
"provisionStatusCode": "String",
"workforceIntegrationIds": [
"String"
],
"timeClockEnabled": "Boolean",
"timeClockSettings": {
"@odata.type": "microsoft.graph.timeClockSettings"
},
"openShiftsEnabled": "Boolean",
"swapShiftsRequestsEnabled": "Boolean",
"offerShiftRequestsEnabled": "Boolean",
"timeOffRequestsEnabled": "Boolean",
"startDayOfWeek": "String",
"isActivitiesIncludedWhenCopyingShiftsEnabled": "Boolean"
}
Relationships
Relationships is shown from stable Microsoft Graph v1.0 metadata.
| Relationship | Type | Description |
|---|---|---|
dayNotes |
dayNote collection |
The day notes in the schedule. |
offerShiftRequests |
offerShiftRequest collection |
The offer requests for shifts in the schedule. |
openShiftChangeRequests |
openShiftChangeRequest collection |
The open shift requests in the schedule. |
openShifts |
openShift collection |
The set of open shifts in a scheduling group in the schedule. |
schedulingGroups |
schedulingGroup collection |
The logical grouping of users in the schedule (usually by role). |
shifts |
shift collection |
The shifts in the schedule. |
swapShiftsChangeRequests |
swapShiftsChangeRequest collection |
The swap requests for shifts in the schedule. |
timeCards |
timeCard collection |
The time cards in the schedule. |
timesOff |
timeOff collection |
The instances of times off in the schedule. |
timeOffReasons |
timeOffReason collection |
The set of reasons for a time off in the schedule. |
timeOffRequests |
timeOffRequest collection |
The time off requests in the schedule. |
workforceIntegrations |
workforceIntegration collection |
An instance of a workforce integration per team with outbound data flow on synchronous change notifications (for supported entities). |
workforceIntegrationIds |
string collection |
The IDs for the workforce integrations associated with this schedule. |
shiftsRoleDefinitions |
shiftsRoleDefinition collection |
The definitions of the roles in the schedule. |
Graph Methods
Microsoft Graph v1.0 endpoints are mapped directly from refreshed Microsoft Learn permissions tables.
Microsoft Graph beta endpoints are mapped directly from refreshed Microsoft Learn permissions tables.
Microsoft Graph PowerShell v1.0 commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.
Microsoft Graph PowerShell beta commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.
Code Examples
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new OfferShiftRequest
{
SenderShiftId = "SHFT_f7e484ed-fdd6-421c-92d9-0bc9e62e2c29",
SenderMessage = "Having a family emergency, could you take this shift for me?",
RecipientUserId = "fe278b61-21ac-4872-8b41-1962bbb98e3c",
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Teams["{team-id}"].Schedule.OfferShiftRequests.PostAsync(requestBody, (requestConfiguration) =>
{
requestConfiguration.Headers.Add("Authorization", "Bearer {token}");
});
const options = {
authProvider,
};
const client = Client.init(options);
await client.api('/teams/3d88b7a2-f988-4f4b-bb34-d66df66af126/schedule/openShifts/OPNSHFT_577b75d2-a927-48c0-a5d1-dc984894e7b8/stageForDeletion')
.post();
Import-Module Microsoft.Graph.Teams
$params = @{
senderShiftId = "SHFT_f7e484ed-fdd6-421c-92d9-0bc9e62e2c29"
senderMessage = "Having a family emergency, could you take this shift for me?"
recipientUserId = "fe278b61-21ac-4872-8b41-1962bbb98e3c"
}
New-MgTeamScheduleOfferShiftRequest -TeamId $teamId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.teams.item.schedule.offer_shift_requests.offer_shift_requests_request_builder import OfferShiftRequestsRequestBuilder
from kiota_abstractions.base_request_configuration import RequestConfiguration
from msgraph.generated.models.offer_shift_request import OfferShiftRequest
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = OfferShiftRequest(
sender_shift_id = "SHFT_f7e484ed-fdd6-421c-92d9-0bc9e62e2c29",
sender_message = "Having a family emergency, could you take this shift for me?",
recipient_user_id = "fe278b61-21ac-4872-8b41-1962bbb98e3c",
)
request_configuration = RequestConfiguration()
request_configuration.headers.add("Authorization", "Bearer {token}")
result = await graph_client.teams.by_team_id('team-id').schedule.offer_shift_requests.post(request_body, request_configuration = request_configuration)
App Registration
Navigate to Azure Portal
Go to App registrations in Microsoft Entra admin center
Add API Permission
Select your app → API permissions → Add a permission → Microsoft Graph
Select Permission Type
Choose Application permissions or delegated permissions and search for Schedule.ReadWrite.All
Grant Admin Consent
Application permissions always require admin consent.
Frequently asked questions
What is the Schedule.ReadWrite.All Microsoft Graph permission?
Schedule.ReadWrite.All is available as both an application permission and a delegated permission in the Microsoft Graph API, grouped under the Schedule category. Allows the app to manage all schedules, schedule groups, shifts and associated entities in the Teams or Shifts application without a signed-in user. It grants read and write access to resources. Application permissions always require admin consent. It is mapped to the Microsoft Graph schedule resource type. 149 documented Microsoft Graph REST methods require it. 82 Microsoft Graph PowerShell commands are documented for it.
Is Schedule.ReadWrite.All an application or a delegated permission?
Schedule.ReadWrite.All is available as both an application permission (app-only access, no signed-in user) and a delegated permission (access on behalf of a signed-in user).
Does Schedule.ReadWrite.All require admin consent?
Application permissions always require admin consent.
What is the permission ID (GUID) for Schedule.ReadWrite.All?
For Schedule.ReadWrite.All, the application (app role) ID is b7760610-0545-4e8a-9ec3-cce9e63db01c, and the delegated (OAuth2 scope) ID is 63f27281-c9d9-4f29-94dd-6942f7f1feb0. These are the real Microsoft Graph identifiers and can be used directly in an app registration manifest.