Create shift
-
發行項
-
- 閱讀時間 6 分鐘
-
Namespace: microsoft.graph
Create a new shift instance in a schedule.
Permissions
One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.
Permission type |
Permissions (from least to most privileged) |
Delegated (work or school account) |
Schedule.ReadWrite.All, Group.ReadWrite.All |
Delegated (personal Microsoft account) |
Not supported. |
Application |
Schedule.ReadWrite.All |
HTTP request
POST /teams/{teamId}/schedule/shifts
Header |
Value |
Authorization |
Bearer {token}. Required. |
Content-Type |
application/json. Required. |
Response
If successful, this method returns a 201 Created
response code and a shift object in the response body.
Example
Request
The following is an example of the request.
POST https://graph.microsoft.com/v1.0/teams/{teamId}/schedule/shifts
Content-type: application/json
{
"id": "SHFT_577b75d2-a927-48c0-a5d1-dc984894e7b8",
"userId": "c5d0c76b-80c4-481c-be50-923cd8d680a1",
"schedulingGroupId": "TAG_228940ed-ff84-4e25-b129-1b395cf78be0",
"sharedShift": {
"displayName": "Day shift",
"notes": "Please do inventory as part of your shift.",
"startDateTime": "2019-03-11T15:00:00Z",
"endDateTime": "2019-03-12T00:00:00Z",
"theme": "blue",
"activities": [
{
"isPaid": true,
"startDateTime": "2019-03-11T15:00:00Z",
"endDateTime": "2019-03-11T15:15:00Z",
"code": "",
"displayName": "Lunch"
}
]
},
"draftShift": {
"displayName": "Day shift",
"notes": "Please do inventory as part of your shift.",
"startDateTime": "2019-03-11T15:00:00Z",
"endDateTime": "2019-03-12T00:00:00Z",
"theme": "blue",
"activities": [
{
"isPaid": true,
"startDateTime": "2019-03-11T15:00:00Z",
"endDateTime": "2019-03-11T15:30:00Z",
"code": "",
"displayName": "Lunch"
}
]
}
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var shift = new Shift
{
Id = "SHFT_577b75d2-a927-48c0-a5d1-dc984894e7b8",
UserId = "c5d0c76b-80c4-481c-be50-923cd8d680a1",
SchedulingGroupId = "TAG_228940ed-ff84-4e25-b129-1b395cf78be0",
SharedShift = new ShiftItem
{
DisplayName = "Day shift",
Notes = "Please do inventory as part of your shift.",
StartDateTime = DateTimeOffset.Parse("2019-03-11T15:00:00Z"),
EndDateTime = DateTimeOffset.Parse("2019-03-12T00:00:00Z"),
Theme = ScheduleEntityTheme.Blue,
Activities = new List<ShiftActivity>()
{
new ShiftActivity
{
IsPaid = true,
StartDateTime = DateTimeOffset.Parse("2019-03-11T15:00:00Z"),
EndDateTime = DateTimeOffset.Parse("2019-03-11T15:15:00Z"),
Code = "",
DisplayName = "Lunch"
}
}
},
DraftShift = new ShiftItem
{
DisplayName = "Day shift",
Notes = "Please do inventory as part of your shift.",
StartDateTime = DateTimeOffset.Parse("2019-03-11T15:00:00Z"),
EndDateTime = DateTimeOffset.Parse("2019-03-12T00:00:00Z"),
Theme = ScheduleEntityTheme.Blue,
Activities = new List<ShiftActivity>()
{
new ShiftActivity
{
IsPaid = true,
StartDateTime = DateTimeOffset.Parse("2019-03-11T15:00:00Z"),
EndDateTime = DateTimeOffset.Parse("2019-03-11T15:30:00Z"),
Code = "",
DisplayName = "Lunch"
}
}
}
};
await graphClient.Teams["{team-id}"].Schedule.Shifts
.Request()
.AddAsync(shift);
Read the SDK documentation for details on how to add the SDK to your project and create an authProvider instance.
const options = {
authProvider,
};
const client = Client.init(options);
const shift = {
id: 'SHFT_577b75d2-a927-48c0-a5d1-dc984894e7b8',
userId: 'c5d0c76b-80c4-481c-be50-923cd8d680a1',
schedulingGroupId: 'TAG_228940ed-ff84-4e25-b129-1b395cf78be0',
sharedShift: {
displayName: 'Day shift',
notes: 'Please do inventory as part of your shift.',
startDateTime: '2019-03-11T15:00:00Z',
endDateTime: '2019-03-12T00:00:00Z',
theme: 'blue',
activities: [
{
isPaid: true,
startDateTime: '2019-03-11T15:00:00Z',
endDateTime: '2019-03-11T15:15:00Z',
code: '',
displayName: 'Lunch'
}
]
},
draftShift: {
displayName: 'Day shift',
notes: 'Please do inventory as part of your shift.',
startDateTime: '2019-03-11T15:00:00Z',
endDateTime: '2019-03-12T00:00:00Z',
theme: 'blue',
activities: [
{
isPaid: true,
startDateTime: '2019-03-11T15:00:00Z',
endDateTime: '2019-03-11T15:30:00Z',
code: '',
displayName: 'Lunch'
}
]
}
};
await client.api('/teams/{teamId}/schedule/shifts')
.post(shift);
Read the SDK documentation for details on how to add the SDK to your project and create an authProvider instance.
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/teams/{teamId}/schedule/shifts"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphShift *shift = [[MSGraphShift alloc] init];
[shift setId:@"SHFT_577b75d2-a927-48c0-a5d1-dc984894e7b8"];
[shift setUserId:@"c5d0c76b-80c4-481c-be50-923cd8d680a1"];
[shift setSchedulingGroupId:@"TAG_228940ed-ff84-4e25-b129-1b395cf78be0"];
MSGraphShiftItem *sharedShift = [[MSGraphShiftItem alloc] init];
[sharedShift setDisplayName:@"Day shift"];
[sharedShift setNotes:@"Please do inventory as part of your shift."];
[sharedShift setStartDateTime: "2019-03-11T15:00:00Z"];
[sharedShift setEndDateTime: "2019-03-12T00:00:00Z"];
[sharedShift setTheme: [MSGraphScheduleEntityTheme blue]];
NSMutableArray *activitiesList = [[NSMutableArray alloc] init];
MSGraphShiftActivity *activities = [[MSGraphShiftActivity alloc] init];
[activities setIsPaid: true];
[activities setStartDateTime: "2019-03-11T15:00:00Z"];
[activities setEndDateTime: "2019-03-11T15:15:00Z"];
[activities setCode:@""];
[activities setDisplayName:@"Lunch"];
[activitiesList addObject: activities];
[sharedShift setActivities:activitiesList];
[shift setSharedShift:sharedShift];
MSGraphShiftItem *draftShift = [[MSGraphShiftItem alloc] init];
[draftShift setDisplayName:@"Day shift"];
[draftShift setNotes:@"Please do inventory as part of your shift."];
[draftShift setStartDateTime: "2019-03-11T15:00:00Z"];
[draftShift setEndDateTime: "2019-03-12T00:00:00Z"];
[draftShift setTheme: [MSGraphScheduleEntityTheme blue]];
NSMutableArray *activitiesList = [[NSMutableArray alloc] init];
MSGraphShiftActivity *activities = [[MSGraphShiftActivity alloc] init];
[activities setIsPaid: true];
[activities setStartDateTime: "2019-03-11T15:00:00Z"];
[activities setEndDateTime: "2019-03-11T15:30:00Z"];
[activities setCode:@""];
[activities setDisplayName:@"Lunch"];
[activitiesList addObject: activities];
[draftShift setActivities:activitiesList];
[shift setDraftShift:draftShift];
NSError *error;
NSData *shiftData = [shift getSerializedDataWithError:&error];
[urlRequest setHTTPBody:shiftData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
Read the SDK documentation for details on how to add the SDK to your project and create an authProvider instance.
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
Shift shift = new Shift();
shift.id = "SHFT_577b75d2-a927-48c0-a5d1-dc984894e7b8";
shift.userId = "c5d0c76b-80c4-481c-be50-923cd8d680a1";
shift.schedulingGroupId = "TAG_228940ed-ff84-4e25-b129-1b395cf78be0";
ShiftItem sharedShift = new ShiftItem();
sharedShift.displayName = "Day shift";
sharedShift.notes = "Please do inventory as part of your shift.";
sharedShift.startDateTime = OffsetDateTimeSerializer.deserialize("2019-03-11T15:00:00Z");
sharedShift.endDateTime = OffsetDateTimeSerializer.deserialize("2019-03-12T00:00:00Z");
sharedShift.theme = ScheduleEntityTheme.BLUE;
LinkedList<ShiftActivity> activitiesList = new LinkedList<ShiftActivity>();
ShiftActivity activities = new ShiftActivity();
activities.isPaid = true;
activities.startDateTime = OffsetDateTimeSerializer.deserialize("2019-03-11T15:00:00Z");
activities.endDateTime = OffsetDateTimeSerializer.deserialize("2019-03-11T15:15:00Z");
activities.code = "";
activities.displayName = "Lunch";
activitiesList.add(activities);
sharedShift.activities = activitiesList;
shift.sharedShift = sharedShift;
ShiftItem draftShift = new ShiftItem();
draftShift.displayName = "Day shift";
draftShift.notes = "Please do inventory as part of your shift.";
draftShift.startDateTime = OffsetDateTimeSerializer.deserialize("2019-03-11T15:00:00Z");
draftShift.endDateTime = OffsetDateTimeSerializer.deserialize("2019-03-12T00:00:00Z");
draftShift.theme = ScheduleEntityTheme.BLUE;
LinkedList<ShiftActivity> activitiesList1 = new LinkedList<ShiftActivity>();
ShiftActivity activities1 = new ShiftActivity();
activities1.isPaid = true;
activities1.startDateTime = OffsetDateTimeSerializer.deserialize("2019-03-11T15:00:00Z");
activities1.endDateTime = OffsetDateTimeSerializer.deserialize("2019-03-11T15:30:00Z");
activities1.code = "";
activities1.displayName = "Lunch";
activitiesList1.add(activities1);
draftShift.activities = activitiesList1;
shift.draftShift = draftShift;
graphClient.teams("{teamId}").schedule().shifts()
.buildRequest()
.post(shift);
Read the SDK documentation for details on how to add the SDK to your project and create an authProvider instance.
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewShift()
id := "SHFT_577b75d2-a927-48c0-a5d1-dc984894e7b8"
requestBody.SetId(&id)
userId := "c5d0c76b-80c4-481c-be50-923cd8d680a1"
requestBody.SetUserId(&userId)
schedulingGroupId := "TAG_228940ed-ff84-4e25-b129-1b395cf78be0"
requestBody.SetSchedulingGroupId(&schedulingGroupId)
sharedShift := msgraphsdk.NewShiftItem()
requestBody.SetSharedShift(sharedShift)
displayName := "Day shift"
sharedShift.SetDisplayName(&displayName)
notes := "Please do inventory as part of your shift."
sharedShift.SetNotes(¬es)
startDateTime, err := time.Parse(time.RFC3339, "2019-03-11T15:00:00Z")
sharedShift.SetStartDateTime(&startDateTime)
endDateTime, err := time.Parse(time.RFC3339, "2019-03-12T00:00:00Z")
sharedShift.SetEndDateTime(&endDateTime)
theme := "blue"
sharedShift.SetTheme(&theme)
sharedShift.SetActivities( []ShiftActivity {
msgraphsdk.NewShiftActivity(),
SetAdditionalData(map[string]interface{}{
"isPaid": true,
"startDateTime": "2019-03-11T15:00:00Z",
"endDateTime": "2019-03-11T15:15:00Z",
"code": "",
"displayName": "Lunch",
}
}
draftShift := msgraphsdk.NewShiftItem()
requestBody.SetDraftShift(draftShift)
displayName := "Day shift"
draftShift.SetDisplayName(&displayName)
notes := "Please do inventory as part of your shift."
draftShift.SetNotes(¬es)
startDateTime, err := time.Parse(time.RFC3339, "2019-03-11T15:00:00Z")
draftShift.SetStartDateTime(&startDateTime)
endDateTime, err := time.Parse(time.RFC3339, "2019-03-12T00:00:00Z")
draftShift.SetEndDateTime(&endDateTime)
theme := "blue"
draftShift.SetTheme(&theme)
draftShift.SetActivities( []ShiftActivity {
msgraphsdk.NewShiftActivity(),
SetAdditionalData(map[string]interface{}{
"isPaid": true,
"startDateTime": "2019-03-11T15:00:00Z",
"endDateTime": "2019-03-11T15:30:00Z",
"code": "",
"displayName": "Lunch",
}
}
teamId := "team-id"
result, err := graphClient.TeamsById(&teamId).Schedule().Shifts().Post(requestBody)
Read the SDK documentation for details on how to add the SDK to your project and create an authProvider instance.
Import-Module Microsoft.Graph.Teams
$params = @{
Id = "SHFT_577b75d2-a927-48c0-a5d1-dc984894e7b8"
UserId = "c5d0c76b-80c4-481c-be50-923cd8d680a1"
SchedulingGroupId = "TAG_228940ed-ff84-4e25-b129-1b395cf78be0"
SharedShift = @{
DisplayName = "Day shift"
Notes = "Please do inventory as part of your shift."
StartDateTime = [System.DateTime]::Parse("2019-03-11T15:00:00Z")
EndDateTime = [System.DateTime]::Parse("2019-03-12T00:00:00Z")
Theme = "blue"
Activities = @(
@{
IsPaid = $true
StartDateTime = [System.DateTime]::Parse("2019-03-11T15:00:00Z")
EndDateTime = [System.DateTime]::Parse("2019-03-11T15:15:00Z")
Code = ""
DisplayName = "Lunch"
}
)
}
DraftShift = @{
DisplayName = "Day shift"
Notes = "Please do inventory as part of your shift."
StartDateTime = [System.DateTime]::Parse("2019-03-11T15:00:00Z")
EndDateTime = [System.DateTime]::Parse("2019-03-12T00:00:00Z")
Theme = "blue"
Activities = @(
@{
IsPaid = $true
StartDateTime = [System.DateTime]::Parse("2019-03-11T15:00:00Z")
EndDateTime = [System.DateTime]::Parse("2019-03-11T15:30:00Z")
Code = ""
DisplayName = "Lunch"
}
)
}
}
New-MgTeamScheduleShift -TeamId $teamId -BodyParameter $params
Read the SDK documentation for details on how to add the SDK to your project and create an authProvider instance.
Response
The following is an example of the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 201 Created
Content-type: application/json
{
"id": "SHFT_577b75d2-a927-48c0-a5d1-dc984894e7b8",
"createdDateTime": "2019-03-14T04:32:51.451Z",
"lastModifiedDateTime": "2019-03-14T05:32:51.451Z",
"userId": "c5d0c76b-80c4-481c-be50-923cd8d680a1",
"schedulingGroupId": "TAG_228940ed-ff84-4e25-b129-1b395cf78be0",
"lastModifiedBy": {
"application": null,
"device": null,
"conversation": null,
"user": {
"id": "366c0b19-49b1-41b5-a03f-9f3887bd0ed8",
"displayName": "John Doe"
}
},
"sharedShift": {
"displayName": "Day shift",
"notes": "Please do inventory as part of your shift.",
"startDateTime": "2019-03-11T15:00:00Z",
"endDateTime": "2019-03-12T00:00:00Z",
"theme": "blue",
"activities": [
{
"isPaid": true,
"startDateTime": "2019-03-11T15:00:00Z",
"endDateTime": "2019-03-11T15:15:00Z",
"code": "",
"displayName": "Lunch"
}
]
},
"draftShift": {
"displayName": "Day shift",
"notes": "Please do inventory as part of your shift.",
"startDateTime": "2019-03-11T15:00:00Z",
"endDateTime": "2019-03-12T00:00:00Z",
"theme": "blue",
"activities": [
{
"isPaid": true,
"startDateTime": "2019-03-11T15:00:00Z",
"endDateTime": "2019-03-11T15:30:00Z",
"code": "",
"displayName": "Lunch"
}
]
}
}