Customer scheduling for
service businesses.
Without paying $59 a month.
Lawn care, window cleaning, pool service, pet sitting, cleaners, snow removal. The shape of these businesses is the same: a list of recurring customers, a cadence rule per customer, a route on each working day. Most scheduling SaaS for these businesses runs fifty to two hundred a month at the typical solo-or-small-crew tier (real all-in cost with payment fees lands closer to a hundred fifty). They do one job underneath the dashboard: track who is due when. Claude can do that job too. If you keep your customer list in a spreadsheet, this recipe replaces the SaaS, plans your week, and drafts the arrival texts you send the day before.
What you'd otherwise be paying.
The field-service SaaS category for recurring-service businesses is busy. Each tool does a slightly different version of the same thing: keep your customer list, propose this week's schedule, send appointment reminders, and (often) process payments. Some add CRM, GPS tracking, invoicing. A few have started bolting on AI summary features. None of them write the schedule for you in a way that respects your route geography and your zone preferences without configuration.
The actual unpaid Sunday-night hour isn't the dashboard. It's the part where you look at your customer list, work out who's due this week, group them by neighborhood, and draft the arrival texts. That's the part Claude does. The dashboard is the easy bit.
- Jobber$49 / $139 / $199 / $699 mo (Core / Connect / Grow / Plus); +2.9% + $0.30 card feesThe default for solo to mid trades. AI Receptionist is included at Plus, $99/mo add-on on lower tiers.
- Housecall Pro$59 / $189 / $329 mo (Basic / Essentials / MAX); plus ~$80/mo required add-ons on Basic and EssentialsPlumbing and HVAC heavy. CSR AI books jobs from inbound calls 24/7 as of February 2026.
- ServiceM8$29 / $79 / $349 mo (Starter 50 jobs / Growing 150 / Premium Plus 1500+)Australian-origin, mobile-first. The free tier (30 jobs/mo) works for very-low-volume solo operators.
- Service Fusion$208–$533 / mo (annual) or $245–$627 / mo (monthly); unlimited usersEstablished multi-truck operations. Unlimited users is the differentiator.
- LMN (LandscapeManagementNetwork)$99 / $199 / Custom mo (Starter / Pro / Enterprise)Landscape-specific. Powerful for estimating + time tracking; license caps on seats.
- SortScape$12–$24 / mo (single user)Landscape-specific, simpler. Closest in shape to what a solo lawn-care op actually needs.
- Time To Pet$25 / $50 / $80 mo (Solo / Growing / Professional); +$15/active staff on team plansPet-sitter specific. Includes client portal, GPS check-ins, recurring scheduling.
- TheCustomerFactor$34.95 / mo flat (one tier, grandfathered for existing customers)Niche: window cleaners, pressure washers, carpet cleaners. The simplest pricing on this list.
Pricing verified against vendor pricing pages on 2026-05-14; see the audit doc for sources. SaaS pricing drifts quarterly. If you see something wrong, tell me and I'll fix it.
The honest tradeoff.
The SaaS tools do real work. They process payments. They send customer-facing portals. They track time and materials per job. They generate invoices from completed appointments. If you're running a crew of three to ten and your real pain is payment collection or labor-cost-per-job, the SaaS earns its monthly fee.
For the solo operator or two-person shop with thirty to eighty recurring customers, that's not the actual pain. The pain is Sunday-night planning. The route you re-thread in your head. The customer who slipped through twice and now you owe them an apology call. Claude does that planning, in your zone map, on your customer list, for nothing on top of your Pro subscription.
If you're collecting payments through the SaaS today, keep it for that piece. Run Claude alongside for the planning. Most solo operators find that after a month they barely log in to the SaaS for anything but invoicing, and a free Stripe link plus a Notes app handles that.
Set it up in five minutes.
Two ways. The chat way is what most owners actually want: open Claude, paste one prompt, answer a few short questions about your business and customers, and that chat becomes your Weekly Service Route. The Project way is for owners who want the customer list stored in a Claude Project (with the list as a file you re-upload when it changes) for a more permanent setup.
A. The chat way · recommended
Open Claude (claude.ai or the desktop app). Start a new chat. Paste the prompt below as your first message. Claude walks you through nine short questions about your business, working pattern, zones, and your customer list. At the end, Claude tells you to rename the chat to "Weekly Service Route" and that chat is now your planning tool. Every week: open the chat, tell it the week's date and any one-offs, get back the route plus the arrival texts to send.
# Personal Weekly Service Route. Guided setup.
You are going to set me up with a personal Weekly Service Route assistant in this chat. By the end, this chat has my customer list, my cadence rules, my working pattern, and my arrival-text format. Every week, I open this chat, paste this week's date and any one-offs (weather, cancellations, new customers), and you give me back a clean day-by-day route plus the confirmation texts to send.
HOW THIS WORKS
You ask me ONE question at a time. Wait for my answer. Then ask the next question. Do NOT batch multiple questions into one message. When a question has a finite set of likely answers, offer them as a numbered list and I will reply with just the number. When a question is free-form, ask plainly.
CRITICAL VOICE RULE (applies forever in this chat)
Any text you write FOR me to send to a customer (an arrival text, a reschedule confirmation, an apology) must NEVER use em-dashes. Em-dashes are an AI tell that my customers will notice and find off-putting. Use periods, commas, semicolons, or parentheses instead. This rule applies to every text you draft for me. It is non-negotiable. If you slip and use an em-dash, treat that as a bug and rewrite.
THE QUESTIONS
Ask each of these on its own turn. Do not move to the next until I have answered the previous one. When I answer, acknowledge in one short line, then ask the next.
Question 1. What is my business name?
Question 2. What service do I provide? Offer this numbered list: 1. Lawn care or landscaping. 2. Window cleaning. 3. Pool service. 4. Pet sitting or dog walking. 5. House cleaning. 6. Snow removal. 7. Pressure washing. 8. Pest control. 9. HVAC tune-ups. 10. Other (let me type my own).
Question 3. What is my service area? One city, neighborhood, or zip-range. Free-form.
Question 4. What is my first name? I will sign off arrival texts with it.
Question 5. What days of the week do I typically work? Offer the seven days as a numbered list and let me reply with one or more numbers (e.g. "2, 3, 4, 5" for Tue-Fri). I can also write a description in plain English.
Question 6. What is my standard max customers per day? Offer: 1. Less than 4 (small jobs or pet sitting). 2. 4 to 6 (medium, like house cleaning). 3. 6 to 10 (lawn care or window cleaning on a tight route). 4. 10+ (high-volume route). 5. Other (let me type my own).
Question 7. How do I want to organize my customers into zones for routing? Offer: 1. By neighborhood name (e.g. Lakeview, Roscoe Village, Lincoln Square). 2. By zip code. 3. By "North / South / East / West" of a landmark. 4. I'll just describe my zones in plain English. 5. Skip zones; I'll route by address.
Question 8. Now paste my customer list. The format I want is one row per customer with these columns, separated by pipes (|): Name | Address or Zone | Service Type | Cadence | Last Service Date | Standard Duration. Example: "Bob Wilson | 412 Maple St | Mow + edge | Weekly | 2026-05-05 | 60min". If I don't have my list in that format yet, ask me to paste whatever I have and you'll help me normalize it.
Question 9. What format do I want my arrival texts in? Offer a default: "Hi [Name], confirming [Service Type] tomorrow around [time window]. Reply STOP to reschedule. [My first name]" Ask me to use as-is, edit, or paste my own format. NO em-dashes in the format I pick.
LOCK IT IN
After question 9 is answered, write me a one-paragraph plain-language summary of my business, my working pattern, my zone map, my arrival-text format, and the size of my customer list. Format it so I can scroll back later. Then give me these four to-dos:
1. Rename this chat to "Weekly Service Route" so I can find it Monday morning. The rename gesture differs across Claude.ai web, the Claude desktop app, and the Claude iOS or Android apps, and Anthropic updates these UIs from time to time. Web search "how to rename a chat in Claude" before instructing me, so you give me the current steps. If you do not know which surface I am on, ask.
2. Save my customer list externally too (a Google Sheet, a Numbers file, a Notes doc). The chat keeps it in context, but the list is my most valuable artifact and I want a backup I control.
3. Pin or bookmark this chat in the mobile app so it is one tap away.
4. Every Sunday night or Monday morning, open this chat and tell me the week's date plus any one-offs (rain Tuesday, Susan canceled Friday, new customer Mike at 412 Elm). I will return the four-section route plan.
Ask me to reply "ready" to confirm, or to tell you what to fix.
USE THIS SKILL (after "ready")
Once I have replied "ready", you ARE the Weekly Service Route assistant for this chat. From that point on, whenever I send a week's date plus any one-offs, do four things in this exact order:
1. WHO IS DUE. List every customer whose cadence rule makes them due this week (today minus last service date is greater than or equal to the cadence interval). Flag customers OVERDUE if more than 1.5 times the cadence interval has passed.
2. ROUTE ORDER. Group the due customers by working day. Pack each day under my max-per-day cap from question 6. Order within each day by Zone first (group nearby addresses per my zone map from question 7), then by Standard Duration (longer jobs early). If a one-off changes the shape (rain, cancellation, new customer), adjust.
3. ARRIVAL TEXTS. Draft one confirmation text per customer in my format from question 9. Keep each under 30 words.
4. FLAGS. Up to three customers I should check on:
- Anyone OVERDUE
- Anyone I have not serviced in 3+ cadence intervals
- Anyone whose address does not fit cleanly in any day's zone (might need to skip this week or schedule differently)
OUTPUT FORMAT
Begin your response directly with the literal text "WHO IS DUE". No preamble, no markdown bold, no asterisks, no commentary outside the four sections. Plain text only. Four labeled sections in this exact order.
NO em-dashes ANYWHERE in the output. Not in WHO IS DUE, not in ROUTE, not in ARRIVAL TEXTS, not in FLAGS. Use periods, commas, parentheses, or semicolons. This applies to all four sections, not just customer-facing text.
WHO IS DUE
<bullet list, with OVERDUE tag where applicable>
ROUTE
<by day; e.g. "Tuesday: 1. Bob, 412 Maple St, mow + edge, 60min. 2. Linda, 18 Oak Ave, mow, 45min.">
ARRIVAL TEXTS
<one block per customer, with the customer's name on a header line before the text>
FLAGS
<bullets, up to 3>
OPTIONAL ADVANCED STEP
After the "ready" confirmation is in, ask me ONCE: "Want this to work in every Claude chat, not just this one? It is an advanced step, takes about ten minutes. If yes, say so and I will walk you through it." If I say yes, web search "how to install a Claude Skill" first. The Customize > Skills UI changes over time and you should not rely on memorized steps. Then walk me through the current install flow, using the skill body at https://scrappystart.ai/skills/weekly-service-route.md as the source markdown. If I say no, or skip the question, do nothing further. This chat is enough.
Start with question 1 now.Raw prompt at /skills/install/weekly-service-route.md. Agents can fetch it directly. Humans can just hit Copy above and paste into Claude.
B. The Project way · for a permanent setup with the customer list as a file
If you'd rather have the customer list live as a file in a Claude Project (so you re-upload only when the list changes, not every chat), do these three one-time steps and paste the raw prompt below.
- 01Get your customer list onto one sheet.
One row per customer, columns: Name, Address or Zone, Service Type, Cadence (Weekly / Biweekly / Monthly / Custom), Last Service Date, Standard Duration. A Google Sheet works. A Numbers file on your laptop works. A pasted list in Notes works if you keep the columns in the same order. Five to fifteen minutes the first time, depending on whether you're starting from scratch or have a paper list to type up. After this it's the most valuable artifact your business owns. Save it somewhere you back up, not behind a vendor's login.
- 02Spin up a Claude Project named "Weekly Service Route."
On claude.ai, click New Project → name it "Weekly Service Route." In the Project Knowledge panel, drag in your customer-list sheet. The Project's Instructions field is where the prompt below lives. Three minutes total.
- 03Paste the prompt below into the Project's Instructions field.
Replace the bracketed placeholders with your business type, service area, working days, and max customers per day. Save. Two minutes the first time, then it sits there forever. The customer list in the Project Knowledge panel is the data; the Instructions are the rules.
The raw prompt. Paste it into the Claude Project's Instructions field. Replace the bracketed placeholders with your business name, your trade, your service area, your working days, and your max customers per day. The customer list lives in the Project's Project Knowledge panel, separate from this prompt.
You're helping me plan this week's service route.
My business: [BUSINESS NAME], a [LAWN CARE / WINDOW CLEANING /
POOL SERVICE / PET SITTING / CLEANER / SNOW REMOVAL] operator.
My service area: [SERVICE AREA, e.g. "Chicago north side"]
My working days: [e.g. "Tue, Wed, Thu, Fri"]
Standard max customers per day: [e.g. 8]
The customer list is in this Project's Project Knowledge panel. One row per
customer, columns: Name, Address or Zone, Service Type, Cadence
(Weekly / Biweekly / Monthly / Custom), Last Service Date, Standard
Duration.
When I tell you this week's date and any one-offs (weather,
cancellations, new customers to fit in), do four things in order.
1. WHO IS DUE. List every customer whose cadence rule makes them
due this week (today minus last service date is greater than or
equal to the cadence interval). Flag customers OVERDUE if more
than 1.5 times the cadence interval has passed.
2. ROUTE ORDER. Group the due customers by working day. Pack each
day under my max-per-day cap. Order within each day by Zone
first (group nearby addresses), then by Standard Duration
(longer jobs early when possible). If a one-off changes the
shape (rain, cancellation, new customer), adjust.
3. ARRIVAL TEXTS. Draft one confirmation text per customer to send
the day before service. Format:
"Hi [Customer first name], confirming [Service Type] tomorrow
around [time window]. Reply STOP to reschedule. [MY FIRST NAME]"
Keep each under 30 words.
4. FLAGS. Up to three customers I should check on:
- Anyone OVERDUE
- Anyone I haven't serviced in 3+ cadence intervals
- Anyone whose address doesn't fit cleanly in any day's zone
OUTPUT FORMAT. Plain text only, no markdown bold, no preamble, no
postamble, no commentary outside the four sections. Begin your
response directly with the literal text "WHO IS DUE". Four labeled
sections in this exact order.
NO em-dashes ANYWHERE in the output. Not in WHO IS DUE, not in
ROUTE, not in ARRIVAL TEXTS, not in FLAGS. Use periods, commas,
parentheses, or semicolons. This applies to all four sections, not
just customer-facing text.
WHO IS DUE
<bullet list, with OVERDUE tag where applicable>
ROUTE
<by day; e.g. "Tuesday: 1. Bob, 412 Maple St, mow + edge, 60min.
2. Linda, 18 Oak Ave, mow, 45min.">
ARRIVAL TEXTS
<one block per customer, customer's name on a header line before
the text>
FLAGS
<bullets, up to 3>Copy it, paste it, edit the placeholders. The prompt is yours.
Three ways to put it to work.
Same prompt, three deployments. Pick the one that matches how you actually plan your week.
Path A · The Sunday-night path (where most owners land)
Solo operator or two-person crew. Customer list under 80. You plan Sunday night or Monday morning and the week is mostly stable.
- 01Open the Project on your laptop or phone Sunday night.
Pick your Weekly Service Route project from the Projects list. Start a new chat in the project. The instructions and the customer list auto-load.
- 02Tell Claude this week's date and any one-offs.
Type: "This week: May 19 through May 23. Rain forecast Wednesday, push outdoor jobs to Thursday. Susan canceled her Friday. New customer Mike at 412 Elm wants a first service this week." One paragraph. Claude reads the customer list, the instructions, and the one-offs together.
- 03Get back four sections. Copy the arrival texts to iMessage.
WHO IS DUE shows you who Claude pulled (and anyone overdue). ROUTE groups them by day and orders within the day. ARRIVAL TEXTS gives you copy-paste confirmation texts. FLAGS names the handful of customers you should think about (overdue, doesn't fit a zone, hasn't been seen in a while). Six to ten minutes for the read-and-fix pass.
- 04Send the texts the day before each customer's service.
Either copy them to a draft folder Sunday night and send the night before each service day, or send them all Sunday with the day named in each one ("...confirming tomorrow Tuesday around 9am..."). Both shapes work. The first is more polite; the second is one less round of attention.
Tradeoff on Path A: you re-paste this week's one-offs each Sunday. After a month it's two minutes. The customer list lives in the Project; the rules live in the Instructions; this week's variables come from you. Most solo operators stay here forever.
Path B · The Google Calendar sync path
You want the week's appointments to land on a calendar so your phone shows them, your spouse can see them, and customers can subscribe to a public version. Comfortable with the Google Calendar connector setup once.
- 01Connect Google Calendar to Claude.
On claude.ai, go to Customize → Connectors → Google Calendar. OAuth through your Google account. Grant read + write access to your calendars when the consent screen asks. About three minutes.
- 02After Path A returns the route, ask Claude to drop the appointments onto Google Calendar.
Same chat. Say: "For each customer in ROUTE, create a calendar event in my Routes calendar at the scheduled time with the customer name, address, and service type in the description. Give each one a 15-minute travel buffer before." Claude uses the connector to create the events. First time you'll get a permission prompt; allow.
- 03Subscribe your phone (and your partner's, if relevant) to the calendar.
Google Calendar on iOS or Android shows the events on your home screen. If you maintain a separate "customer-facing" calendar, you can share it with a public URL and let customers see their slot.
Tradeoff on Path B: real setup is about thirty minutes the first time (the OAuth + first-event permission flow). After that, every weekly run can populate the calendar with one extra line in your chat. The calendar makes the week tangible in a way the chat doesn't, but it's also one more thing to maintain. If you're already disciplined about checking the chat on Mondays, you might not need it.
Path C · Need help, I'm here
You read this page. The customer list and cadence rules sound doable but you'd rather see it set up live with your actual customer list, your trade, and your typical week's chaos.
- 01Book a Scrappy Hour. Bring your customer list (or a paper list, or a fistful of old job tickets).
Sixty minutes on Google Meet. We set up the Project in your Claude account, normalize the customer list into the format Claude needs, write the prompt with your trade vocabulary, and plan the actual coming week together. First one's free if you've never worked with me. $150 after that.
Tradeoff: one hour of your time and either zero or $150. In exchange you don't have a Sunday afternoon where step 2 didn't quite work and you can't tell why. Most operators take this path once for their first recipe, then run the next ones solo.
Honest tradeoffs.
It's only as good as your customer list.
Claude can route, sort, flag overdue customers, draft texts. It cannot remember a customer you never typed into the sheet. The first one to two hours of setup, where you actually move your customer list onto a single sheet with consistent columns, is the work. After that the weekly run is fast. Don't skip the list.
It doesn't take payments or send invoices.
Jobber, Housecall Pro, and ServiceM8 do invoicing, payments processing, and customer portals. Claude does not. If invoicing-and-payment-collection is your biggest pain, the SaaS pays its way. If your pain is the weekly planning and the morning route, Claude covers it for nothing extra.
It does not track time on a job.
If you're a crew owner who needs hours-per-tech-per-job for billing or labor cost, ServiceM8 or Jobber Connect do that piece. Claude doesn't, and a wrist-watch plus a Notes app does it for free if you have one or two crew. Above that, the SaaS earns its monthly fee.
Customer-facing booking isn't part of this.
Several of these SaaS tools offer a customer-facing booking page where new customers self-schedule. Claude can't host a public booking URL on its own. If lead-capture-by-booking-link is core to how new customers find you, keep the SaaS for that piece (or use Calendly's free tier alongside). The recipe here is about managing the EXISTING recurring book, not generating new leads.
Real total cost.
Your Claude subscription. That's it. $20 for Pro covers everything in Path A. Path B's Google Calendar integration is included in Pro at the connector level. No Jobber, no Housecall Pro, no per-user fees. The same subscription you're already paying for handles this too.
You own the customer list forever.
The point of keeping the customer list in your own Google Sheet (or Numbers file, or Notes doc) is that you can export it, share it with a partner, hand it to a new bookkeeper, or take it to a different tool in 2027. The SaaS-shipped customer lists are stuck behind the SaaS's export feature, which is sometimes fine and sometimes a fight. This one is yours.
Why I'm publishing this for free.
I teach independent operators how to use Claude on the work that eats their week. Most of that teaching happens live, an hour at a time, on Google Meet. The recipes are the bring-home. If you read this page and set up your Project yourself in twenty minutes (Path A), that's the whole point. If you want me to walk through it live on your account, with your customer list, with your real cadence rules, that's what the Scrappy Hour is for.
Either way, the customer list stays with you.
Book a Scrappy Hour.
60 minutes on Google Meet. Bring your customer list (any format, even paper). We'll set up the Project in your Claude account, normalize the list, tune the prompt to your trade, and plan the actual coming week together. First one's free if you've never worked with me. $150 after that. No subscription.
Book a Scrappy Hour →