| title | presence: setManualLocation |
|---|---|
| description | Set the manual work location signal for a user. |
| author | garchiro7 |
| ms.date | 10/23/2025 |
| ms.localizationpriority | medium |
| ms.subservice | cloud-communications |
| doc_type | apiPageType |
Namespace: microsoft.graph
[!INCLUDE beta-disclaimer]
Set the manual work location signal for a user. The explicit value chosen by a user or an authorized client overrides any automatically detected or scheduled working hours and location.
- Precedence: manual > automatic > scheduled
- Precision (within the same layer): more precise wins (for example, office + building > office)
- If a manual location is set, it overrides both automatic and scheduled settings.
[!INCLUDE national-cloud-support]
Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.
[!INCLUDE permissions-table]
POST /me/presence/setManualLocation| Name | Description |
|---|---|
| Authorization | Bearer {token}. Required. Learn more about authentication and authorization. |
| Content-Type | application/json. Required. |
In the request body, supply a JSON representation of the parameters.
The following table lists the parameters that are required when you call this action.
| Parameter | Type | Description |
|---|---|---|
| placeId | String | Identifier of the place, if applicable. |
| workLocationType | workLocationType | Semantic type of the location. Supports a subset of the values for workLocationType. The possible values are: office, remote, timeOff. |
If successful, this action returns a 200 OK response code. It doesn't return anything in the response body.
The following example shows a request.
POST https://graph.microsoft.com/beta/me/presence/setManualLocation
Content-Type: application/json
{
"workLocationType": "office",
"placeId": "eb706f15-137e-4722-b4d1-b601481d9251"
}[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
[!INCLUDE sample-code] [!INCLUDE sdk-documentation]
The following example shows the response.
HTTP/1.1 200 OK