Tool tree
gradeNot graded
page: Every page
check_service_areaAnswer
Check whether Clarks Creek Plumbing travels to a given address, city or ZIP code in the Puyallup, Washington area. Call this before checking availability or booking anything, because nothing else matters if the plumber will not drive there. Returns whether the location is covered, how far it is from the shop, and any travel fee that applies.
View tool JSON
{
"name": "check_service_area",
"kind": "answer",
"impl": "imperative",
"description": "Check whether Clarks Creek Plumbing travels to a given address, city or ZIP code in the Puyallup, Washington area. Call this before checking availability or booking anything, because nothing else matters if the plumber will not drive there. Returns whether the location is covered, how far it is from the shop, and any travel fee that applies.",
"inputSchema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Where the job is. A city name, a 5 digit ZIP code, or a street address. For example \"Puyallup\", \"98371\", or \"1204 39th Ave SE, Puyallup WA\"."
}
},
"required": [
"location"
]
},
"page": "/dispatch/"
}check_availabilityAnswer
Find real open appointment windows on a given date. Every window returned can actually be booked, and windows already taken are never returned. Call this after confirming the address is in the service area. Returns two hour arrival windows, or a clear reason when the day is closed or fully booked.
View tool JSON
{
"name": "check_availability",
"kind": "answer",
"impl": "imperative",
"description": "Find real open appointment windows on a given date. Every window returned can actually be booked, and windows already taken are never returned. Call this after confirming the address is in the service area. Returns two hour arrival windows, or a clear reason when the day is closed or fully booked.",
"inputSchema": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "The day to check, in ISO format YYYY-MM-DD. Convert whatever the customer said, such as \"tomorrow\" or \"next Tuesday\", into this format first."
},
"service": {
"type": "string",
"description": "What is wrong, in the words the customer used. For example \"clogged kitchen drain\", \"no hot water\", or \"toilet running\". Optional, but it lets the answer flag emergency handling."
}
},
"required": [
"date"
]
},
"page": "/dispatch/"
}estimate_jobAction
Get the price range for a plumbing job before booking it. Returns a low and high figure plus the diagnostic fee, and is explicit that the final price comes after someone sees the job. Use this when the customer asks what something costs. Do not present the range as a quote.
View tool JSON
{
"name": "estimate_job",
"kind": "act",
"impl": "imperative",
"description": "Get the price range for a plumbing job before booking it. Returns a low and high figure plus the diagnostic fee, and is explicit that the final price comes after someone sees the job. Use this when the customer asks what something costs. Do not present the range as a quote.",
"inputSchema": {
"type": "object",
"properties": {
"job": {
"type": "string",
"description": "The job or the symptom, in plain words. For example \"water heater replacement\", \"clogged drain\", \"leak under the sink\"."
},
"details": {
"type": "string",
"description": "Anything else the customer mentioned that affects the job, such as the age of the fixture or whether water is actively running. Optional."
}
},
"required": [
"job"
]
},
"page": "/dispatch/"
}describe_servicesAnswer
Get everything about the business at once: the services offered with price ranges, opening hours, the service area, the emergency policy, and licence details. Call this to answer general questions about the business rather than guessing from the page text.
View tool JSON
{
"name": "describe_services",
"kind": "answer",
"impl": "imperative",
"description": "Get everything about the business at once: the services offered with price ranges, opening hours, the service area, the emergency policy, and licence details. Call this to answer general questions about the business rather than guessing from the page text.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
},
"page": "/dispatch/"
}book_appointmentSensitive Action
Request an appointment in a specific open window. This does NOT confirm the booking. It holds the slot, texts the owner, and returns a reference while it waits for him to confirm, usually within a few minutes. Tell the customer it is pending rather than booked. Check the service area and availability first, and only pass a window this site actually returned.
View tool JSON
{
"name": "book_appointment",
"kind": "transact",
"impl": "imperative",
"description": "Request an appointment in a specific open window. This does NOT confirm the booking. It holds the slot, texts the owner, and returns a reference while it waits for him to confirm, usually within a few minutes. Tell the customer it is pending rather than booked. Check the service area and availability first, and only pass a window this site actually returned.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The full name of the customer."
},
"phone": {
"type": "string",
"description": "A phone number the plumber can reach them on."
},
"address": {
"type": "string",
"description": "The street address where the work is needed, including the city."
},
"service": {
"type": "string",
"description": "What is wrong, in the words the customer used."
},
"date": {
"type": "string",
"description": "The appointment date in ISO format YYYY-MM-DD."
},
"slot": {
"type": "string",
"description": "The start of the arrival window in 24 hour HH:mm form, exactly as check_availability returned it. For example \"08:00\"."
}
},
"required": [
"name",
"phone",
"address",
"service",
"date",
"slot"
]
},
"page": "/dispatch/"
}