Endpoints:
GET /people/2/out_of_office.jsonwill return the out of office status for the person with the given ID.
When out of office is not enabled, start_date and end_date will be null.
{
"person": {
"id": 1049715914,
"name": "David Heinemeier Hansson"
},
"enabled": true,
"ongoing": true,
"start_date": "2026-03-10",
"end_date": "2026-03-17"
}curl -s -H "Authorization: Bearer $ACCESS_TOKEN" https://3.basecampapi.com/$ACCOUNT_ID/people/2/out_of_office.jsonPOST /people/2/out_of_office.jsonwill enable or replace out of office for the person with the given ID.
Admins on accounts with a Pro Pack can enable out of office on behalf of other people. Otherwise, you can only manage your own out of office.
This endpoint will return 200 OK with the current JSON representation of the out of office if the creation was a success. If the person already has an out of office set, it will be replaced.
Required parameters:
start_date- the start date in ISO 8601 format (e.g.2026-03-10).end_date- the end date in ISO 8601 format (e.g.2026-03-17).
{
"out_of_office": {
"start_date": "2026-03-10",
"end_date": "2026-03-17"
}
}{
"person": {
"id": 1049715914,
"name": "David Heinemeier Hansson"
},
"enabled": true,
"ongoing": true,
"start_date": "2026-03-10",
"end_date": "2026-03-17"
}curl -s -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \
-d '{"out_of_office": {"start_date": "2026-03-10", "end_date": "2026-03-17"}}' \
https://3.basecampapi.com/$ACCOUNT_ID/people/2/out_of_office.jsonDELETE /people/2/out_of_office.jsonwill disable out of office for the person with the given ID.
Admins on accounts with a Pro Pack can disable out of office on behalf of other people. Otherwise, you can only manage your own out of office.
This endpoint will return 204 No Content if the disable was a success. Disabling when out of office is already off will also return 204 No Content.
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" -X DELETE \
https://3.basecampapi.com/$ACCOUNT_ID/people/2/out_of_office.json