Stop losing money to no-shows and phone tag
A booked slot that nobody shows up to is money gone twice: the time you held, and the customer you could have given it to. Most no-shows are not flakes, they just forgot. And the ones who do remember often want to move the time, which turns into voicemail tag while you are with another client.
This kit is a reminder that already knows your schedule. It reads your calendar, texts each client a friendly reminder at the intervals you choose, and reads the replies. "See you then" gets a thumbs-up. "Can we push to Friday?" gets a proposed new time it shows you first. The rule it never breaks: it can send reminders on its own, but it will not move anything on your calendar until you confirm.
Connect your calendar: the schedule you own
data/appointments.json file). The kit reads the
upcoming appointments: who, when, what service, and a phone number. That read is all it
needs to know who to remind and when.| When | Client | Service | Status |
|---|---|---|---|
| Thu 9:00am | Dana Reyes | Women's cut & color | booked |
| Thu 1:30pm | Marco Silva | Brake inspection | booked |
| Fri 11:00am | Priya Anand | Cleaning & exam | booked |
| Fri 4:00pm | Sam Cole | 60-min massage | booked |
Set the reminder schedule: when to text
reminders:
- { before: "24h", channel: "sms" } # day-before nudge
- { before: "2h", channel: "sms" } # day-of heads-up
quiet_hours: { from: "21:00", to: "08:00" } # never text overnight
Give it a brain: connect Claude to read the replies
- Go to console.anthropic.com and sign in.
- Open API Keys โ Create Key.
- Copy the key (it starts with
sk-ant-). The setup wizard saves it on your machine.
claude-opus-4-8 (sharpest). High volume? Set claude-haiku-4-5 to cut cost.
Try it: draft a reminder and parse a reply, send nothing
Pick the appointment to remind:
Now paste a client reply (or tap one):
Propose, then confirm: the calendar never moves on its own
โข Reminders can go out automatically (low risk), but no calendar change ever happens without your explicit confirmation. That switch is documented, default-safe, and yours to flip.
โข No double-booking. A proposed slot is checked against the calendar first; if it collides, the kit offers a different open time instead.
โข It never silently cancels. A cancel is surfaced to you, the slot is freed only after you confirm, and the client gets a clear confirmation.
SEND_REMINDERS=auto # reminders go out on the timer (low risk) CALENDAR_WRITES=confirm # every move/cancel waits for your tap (the safe default)
Put it on a channel: SMS or a messaging app
npm run dryrun # draft reminders + parse replies in your terminal, nothing sends npm run remind # find appointments due a reminder and draft the texts npm start # run the reminder bot for real npm run mcp # expose it as an MCP server (drive it from Claude)
DRY_RUN on. In dry-run it drafts reminders and plans reschedules but the
texter and the calendar writer are gated off, so you can watch it work before a single
real text leaves your machine or a single slot moves.Run it yourself: it's free and it's the real thing
The kit is a complete, runnable, MIT-licensed repo: read a calendar, draft reminders on a schedule, parse client replies into confirm / reschedule / cancel, propose a safe new slot, and write nothing until you confirm. Runs on your machine, nothing crippled.
Get the free kit on GitHub โGo live
With the kit downloaded:
npm install npm run setup # Claude key + calendar source saved on YOUR machine npm run dryrun # draft reminders and parse replies, nothing sends npm start # run the reminder bot
Set your reminder windows and quiet hours once, and it keeps an eye on the calendar for
you. Prefer the command line first? npm run dryrun drafts the texts and
shows you the parsed replies without sending anything. The calendar and bot basics live
in the Secretary lesson, and the
Follow-Up lesson pairs nicely for the "see you then"
messages.
Want it wired to your real booking system and a real text line?
This kit is the DIY taste. We connect your real booking system and two-way SMS, so reminders go out on schedule, reschedules land back on your live calendar with no double-booking, and the whole thing runs without you babysitting it.
Have Rabbithole run it โ โณ Pair it with the Follow-Up bot