# POST /scheduling/bookings/:booking_id/hosts

**Resource:** [SCHEDULING](./scheduling.md)  
**MCP tool:** `reassign_booking_hosts`  
**Scopes:** `scheduling:write`  
**Write operation:** yes

Change who hosts ONE booking (a quick reassign) without changing its event type. The calendar invite follows: if the current invite owner stays a host, the new hosts are added as guests; if the owner is removed and a new host has Google Calendar connected, the invite moves to that host's calendar keeping the same time and video link. A past or not-yet-confirmed booking only has its record updated. Group sessions and recurring meetings are refused (change those on the event type). Returns calendar (moved / guests_updated / not_connected / record_only / no_invite / failed) and busy: new hosts who already have something on at that time (advisory; the change still happens). Get user UUIDs from list_company_users; get_booking returns the current host_user_ids.

## Parameters

| Name | In | Type | Required | Description |
|------|----|------|----------|-------------|
| `booking_id` | path | string | yes |  |
| `host_ids` | body | array | yes | User UUIDs of the team members who should host this one booking (at least one). They must be members of this workspace. Passing exactly the event type's own hosts puts the booking back to following its event type. |
| `require_approval` | body | boolean | no | Optional. Set true to route this write into the approval queue for human review instead of executing it immediately (returns 202 + an approval_id). Works even when your key/token has permission to execute directly. |

## Request example

```bash
curl -X POST   "https://api.trustpager.com/functions/v1/api/v1/scheduling/bookings/:booking_id/hosts"   -H "Authorization: Bearer YOUR_API_KEY"   -H "Content-Type: application/json"   -d '{"host_ids":"...","require_approval":"..."}'
```

---
Base URL: `https://api.trustpager.com/functions/v1/api/v1` — Auth: `Authorization: Bearer YOUR_API_KEY`