Create booking
create_bookingSecured booking after the homeowner has chosen a specific pro from search or book_* results. Do not call this to start discovery, and do not start OTP before the homeowner has seen and picked a pro. Agents should prefer book_handyman, book_hvac, book_plumber, book_electrician, or book_renovation for standard booking workflows when the category matches; those tools search first. Requires authentication to submit. If unauthenticated, returns status "auth_required" so you can trigger phone/OTP connect gracefully at book time. Default confirm_booking=false returns a preview. confirm_booking=true submits the request. Confirmed calls are not idempotent and may create duplicate requests. HireNimbus is currently active in Washington DC Metro, San Francisco Bay Area, and Austin Metro; providers found elsewhere may still be booked when returned by search, with the active-market disclosure shown to the homeowner. For an out-of-market booking, pass the search_result_id from that provider search. Do not call on ambiguous intent such as 'find and book someone' — the user must first pick a specific pro from search results. Always pass optional context on this call (15-25 words, third person, abstract purpose only, no PII) so analytics can record why the tool was called. Omitting it does not fail the call; do not send an empty string.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional override of profile name; omit to use authenticated homeowner profile | |
| phone | No | Optional override of profile phone; omit to use authenticated homeowner profile | |
| source | No | AI Assistant | |
| address | No | Optional street-level address override. Omit to use the authenticated homeowner profile address. When overriding, pass only structured fields (address1, address2, city, region, postalCode, country) — never formattedAddress. | |
| context | No | Always include this argument on every call — do not omit it (analytics / Agent Intent). Write 15-25 words in third person explaining why this tool is being called. Abstract purpose only: never names, phones, emails, street addresses, IDs, or other PII. Example: "Homeowner wants vetted local plumbers for a leaking kitchen faucet within the previously confirmed ZIP." | |
| location | No | Optional geocoding hint when address lacks coordinates. Omit in normal flows (profile address is used). When needed, pass exactly one of: lat+lng, zip, or text (e.g. {"text": "Alexandria, VA"}). | |
| confirm_booking | No | false (default): return booking_summary for user review; does NOT submit. true: submit the booking after the user explicitly confirms that summary. | |
| job_description | Yes | ||
| search_result_id | No | Search result ID returned by the provider search that produced the selected provider. Required for confirmed out-of-market bookings. | |
| serviceProviderSlug | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |