appointment-reminder-drafts

Drafts appointment confirmations and reminders from the next day's bookings using the owner's approved templates, respecting each client's text and email consent and keeping health or child details out of the message. Use when a business with appointments (dental, physio, salon, vet, tutoring, driving school, home services) wants tomorrow's reminders prepared for approval. Drafts only; a person or the booking system sends, and a person makes every calendar change.

Approved for client workInterns may use it on client work, through the gateway.· Version 2

Appointment reminder drafts

Prepares one reminder per booked appointment for a chosen day, in the owner's approved wording, by the channel each client agreed to. A person or the booking system sends; the agent never changes a booking.

Inputs

  • Appointments for the day: id, start, end, status, client first name, consent for text and for email, the mobile number the client gave, and the email address. See examples/appointments.csv.
  • Templates the owner approved: one text, one email, and any per-service variants ("bring your permit", "arrive 10 minutes early").
  • Business facts: name, address, phone for changes, opt-out wording.

Read the calendar through the AHL Action Gateway (calendar.list, at most 31 days per call) or from an export the owner gives you. The agent holds an agent token, never the calendar or booking-system login, and stores no credentials anywhere. The gateway has no text-message action: text drafts are saved for the owner (manual.draft) or loaded into the booking system's own reminder feature by staff. Email drafts go through gmail.draft or manual.draft; any gmail.send is held for the owner.

Read reference/reminder-rules.md before the first run for a business. It covers US federal rules only (FCC TCPA rules, HIPAA minimum necessary); state texting and privacy laws are the owner's check.

Steps

  1. Filter. Keep appointments with status booked (or the system's equivalent) on the chosen day. List cancelled and no-show records under "Skipped" with the reason.
  2. Pick the channel for each client:
    • text only if text consent is yes and a mobile number the client gave is on file;
    • otherwise email if email consent is yes and an address is on file;
    • otherwise skip and tell the front desk to call. A stop, no or blank means no. A client who replied STOP is never texted, even with a new booking, until staff record fresh consent.
  3. Fill the template. Use the client's first name, the business name, the day, the time in the business's time zone, and the address. Use only fields the template names.
  4. Apply minimum necessary. Leave out the service name when it reveals a health condition, treatment, test or medication; leave out notes, balances, insurance and anything about another person. For minors, address the parent or guardian on file and use the child's first name at most. When unsure, leave it out.
  5. Keep it a reminder. No offers, upsells or review requests: a promotional line turns a reminder into marketing, which needs separate consent.
  6. Check length, count and timing. Keep each text to 160 characters or fewer, with the business name, a phone number and the opt-out line, and note its length. At most one reminder per client per day and three per week (the TCPA health care limits, 47 CFR 64.1200(a)(9)(iv)); hold any that would go over. Schedule texts for the owner's chosen window; never suggest sending before 8 a.m. or after 9 p.m. in the client's local time.
  7. Save the batch and write the summary (format below).
  8. Route replies. Replies to reschedule, cancel or ask a question go to the front desk with the appointment id. A "stop" reply goes to the front desk to record; the agent does not edit consent.

Output

A markdown file like examples/expected-output.md: the templates and facts used; "Ready for approval" with one block per draft (id, first name, time, channel and why, the message); "Skipped" with a reason per appointment; a closing count.

Edge cases

  • Time zone missing on a start time: stop and ask; do not guess.
  • Two appointments for one client the same day: one message listing both times.
  • Template mentions a fee or deposit: draft it as written, but flag it; fees are the owner's wording, not the agent's.
  • Booking system already sends reminders: say so and ask the owner whether this skill should only cover the gaps, so clients do not get two.

Never

  • Move, cancel, book or confirm an appointment, or edit consent flags.
  • Text someone without text consent, or anyone who replied STOP.
  • Put a diagnosis, treatment, test, medication, balance or a child's details in a reminder.
  • Add marketing, discounts or review requests to a reminder.
  • Send anything itself, or keep a calendar or booking login, token or cookie.

Hand over

The front desk or owner gets the batch. They check: every draft is for a booked appointment; the channel matches the consent on file; nothing in a message reveals why the person is coming; skipped clients who still need a reminder get a call. The owner decides whether to approve and send each batch, the template wording and any fee line. For a health practice, the owner decides (with counsel if needed) whether texts rely on consent or on the health care message exemption, and whether state law adds limits. Staff alone record consent, opt-outs and every booking change.

The skill folder

Every file in the folder. Download each one into a folder with the same layout, or copy it.

appointment-reminder-drafts/
  SKILL.md
  examples/appointments.csv
  examples/expected-output.md
  reference/reminder-rules.md
SKILL.md
---
name: appointment-reminder-drafts
description: Drafts appointment confirmations and reminders from the next day's bookings using the owner's approved templates, respecting each client's text and email consent and keeping health or child details out of the message. Use when a business with appointments (dental, physio, salon, vet, tutoring, driving school, home services) wants tomorrow's reminders prepared for approval. Drafts only; a person or the booking system sends, and a person makes every calendar change.
metadata:
  ahl-category: front
  ahl-jobs: scheduling, front-desk
  ahl-industries: dental, physio-chiro, salon, spa, veterinary, tutoring, driving-school, plumbing, hvac
  ahl-connectors: google-calendar, gmail
  ahl-workflows: operations--01-appointment-confirmations-and-reminders, front--2263-driving-school-lesson-reminders-with-parent-copy, operations--1965-nonprofit-volunteer-shift-reminders-and-gaps
  ahl-human-check: The owner approves the templates and each batch of drafts before anything is sent, and staff handle every reschedule, cancellation and opt-out.
  ahl-proposed-status: approved
  ahl-version: 2
  ahl-sources: |
    Legal Information Institute (Cornell) — 47 CFR § 64.1200 - Delivery restrictions — https://www.law.cornell.edu/cfr/text/47/64.1200 — 2026-10-06
    Legal Information Institute (Cornell) — 45 CFR § 164.502 - Uses and disclosures of protected health information: General rules — https://www.law.cornell.edu/cfr/text/45/164.502 — 2026-10-06
---

# Appointment reminder drafts

Prepares one reminder per booked appointment for a chosen day, in the owner's approved wording, by the channel each client agreed to. A person or the booking system sends; the agent never changes a booking.

## Inputs

- **Appointments** for the day: id, start, end, status, client first name, consent for text and for email, the mobile number the client gave, and the email address. See [examples/appointments.csv](examples/appointments.csv).
- **Templates** the owner approved: one text, one email, and any per-service variants ("bring your permit", "arrive 10 minutes early").
- **Business facts**: name, address, phone for changes, opt-out wording.

Read the calendar through the AHL Action Gateway (`calendar.list`, at most 31 days per call) or from an export the owner gives you. The agent holds an agent token, never the calendar or booking-system login, and stores no credentials anywhere. The gateway has no text-message action: text drafts are saved for the owner (`manual.draft`) or loaded into the booking system's own reminder feature by staff. Email drafts go through `gmail.draft` or `manual.draft`; any `gmail.send` is held for the owner.

Read [reference/reminder-rules.md](reference/reminder-rules.md) before the first run for a business. It covers US federal rules only (FCC TCPA rules, HIPAA minimum necessary); state texting and privacy laws are the owner's check.

## Steps

1. **Filter.** Keep appointments with status `booked` (or the system's equivalent) on the chosen day. List cancelled and no-show records under "Skipped" with the reason.
2. **Pick the channel** for each client:
   - text only if text consent is `yes` and a mobile number the client gave is on file;
   - otherwise email if email consent is `yes` and an address is on file;
   - otherwise skip and tell the front desk to call.
   A `stop`, `no` or blank means no. A client who replied STOP is never texted, even with a new booking, until staff record fresh consent.
3. **Fill the template.** Use the client's first name, the business name, the day, the time in the business's time zone, and the address. Use only fields the template names.
4. **Apply minimum necessary.** Leave out the service name when it reveals a health condition, treatment, test or medication; leave out notes, balances, insurance and anything about another person. For minors, address the parent or guardian on file and use the child's first name at most. When unsure, leave it out.
5. **Keep it a reminder.** No offers, upsells or review requests: a promotional line turns a reminder into marketing, which needs separate consent.
6. **Check length, count and timing.** Keep each text to 160 characters or fewer, with the business name, a phone number and the opt-out line, and note its length. At most one reminder per client per day and three per week (the TCPA health care limits, 47 CFR 64.1200(a)(9)(iv)); hold any that would go over. Schedule texts for the owner's chosen window; never suggest sending before 8 a.m. or after 9 p.m. in the client's local time.
7. **Save the batch** and write the summary (format below).
8. **Route replies.** Replies to reschedule, cancel or ask a question go to the front desk with the appointment id. A "stop" reply goes to the front desk to record; the agent does not edit consent.

## Output

A markdown file like [examples/expected-output.md](examples/expected-output.md): the templates and facts used; "Ready for approval" with one block per draft (id, first name, time, channel and why, the message); "Skipped" with a reason per appointment; a closing count.

## Edge cases

- **Time zone missing** on a start time: stop and ask; do not guess.
- **Two appointments for one client** the same day: one message listing both times.
- **Template mentions a fee or deposit**: draft it as written, but flag it; fees are the owner's wording, not the agent's.
- **Booking system already sends reminders**: say so and ask the owner whether this skill should only cover the gaps, so clients do not get two.

## Never

- Move, cancel, book or confirm an appointment, or edit consent flags.
- Text someone without text consent, or anyone who replied STOP.
- Put a diagnosis, treatment, test, medication, balance or a child's details in a reminder.
- Add marketing, discounts or review requests to a reminder.
- Send anything itself, or keep a calendar or booking login, token or cookie.

## Hand over

The front desk or owner gets the batch. They check: every draft is for a booked appointment; the channel matches the consent on file; nothing in a message reveals why the person is coming; skipped clients who still need a reminder get a call. The owner decides whether to approve and send each batch, the template wording and any fee line. For a health practice, the owner decides (with counsel if needed) whether texts rely on consent or on the health care message exemption, and whether state law adds limits. Staff alone record consent, opt-outs and every booking change.
examples/appointments.csv
appointment_id,start,end,status,client_first_name,channel_text_consent,channel_email_consent,mobile,email,service,notes
A-501,2026-10-08T09:00-04:00,2026-10-08T10:00-04:00,booked,Morgan,yes,yes,(555) 010-2231,morgan@example.com,Cleaning and exam,Prefers mornings
A-502,2026-10-08T11:30-04:00,2026-10-08T12:30-04:00,cancelled,Lee,yes,no,(555) 010-6618,,Crown fitting,
A-503,2026-10-08T14:00-04:00,2026-10-08T15:30-04:00,booked,Ari,no,yes,,ari@example.com,Root canal follow-up,Anxious patient
A-504,2026-10-08T16:00-04:00,2026-10-08T16:30-04:00,booked,Jesse,stop,no,(555) 010-9045,,Consultation,Replied STOP on 2026-09-30
examples/expected-output.md
# Reminder drafts for 2026-10-08 (invented example: Maple Row Dental)

Owner-approved templates used:
- Text (kept to 160 characters or fewer): "Hi {first name}, {business} reminder: {short day} at {time}, {address}. Reply C to confirm or call {phone} to change. Reply STOP to opt out."
- Email subject: "Your visit on {day}"; body as the text, signed by the front desk.

Business facts used: Maple Row Dental, 18 Maple Row, (555) 010-7700.

## Ready for approval (2)

### A-501, Morgan, Thu 8 Oct, 9:00 a.m.
Channel: text to (555) 010-2231 (consent: yes); 151 characters; first reminder to this client this week
> Hi Morgan, Maple Row Dental reminder: Thu 8 Oct at 9:00 a.m., 18 Maple Row. Reply C to confirm or call (555) 010-7700 to change. Reply STOP to opt out.

### A-503, Ari, Thu 8 Oct, 2:00 p.m.
Channel: email to ari@example.com (text consent: no; email consent: yes)
Subject: Your visit on Thursday 8 October
> Hi Ari, a reminder of your visit at Maple Row Dental on Thursday 8 October at 2:00 p.m., 18 Maple Row. Reply to this email or call (555) 010-7700 if you need to change it.
> Maple Row Dental front desk

The service ("Root canal follow-up") and the note ("Anxious patient") are left out of both drafts on purpose: minimum necessary.

## Skipped (2)

- A-502, Lee: appointment is cancelled. No reminder.
- A-504, Jesse: replied STOP on 2026-09-30 and has no email consent. No reminder drafted. Front desk: call if the visit should be confirmed, and record new consent only if Jesse gives it.

## For the front desk

- 4 appointments read, 2 drafts, 2 skipped.
- Drafts were created with `manual.draft` through the gateway (rehearsal: held for the owner).
reference/reminder-rules.md
# Reminder rules the skill applies

A summary for the agent, not legal advice. US federal rules only (FCC TCPA rules, HIPAA); state texting and privacy laws are not covered. The owner (and their counsel, for a health practice) decides how the business applies these rules.

## Texts and automated calls (TCPA, 47 CFR 64.1200)

Source: Legal Information Institute (Cornell), "47 CFR § 64.1200 - Delivery restrictions", https://www.law.cornell.edu/cfr/text/47/64.1200, opened 2026-10-06.

- Automated calls and texts to a mobile number need the person's prior express consent ((a)(1)(iii)). A message that advertises or telemarkets needs prior express **written** consent ((a)(2)).
- Health care messages to mobile numbers from a provider covered by HIPAA (appointment confirmations and reminders, among others) are exempt only under conditions ((a)(9)(iv)): sent only to the mobile number the patient gave; the provider names itself and a contact number; no telemarketing, solicitation or advertising; generally 160 characters or less for a text; at most one message a day and three a week per patient; each message says how to opt out; opt-outs honored immediately. The owner confirms whether the practice relies on it. The skill keeps every text within these limits so it is safe either way.
- A person can revoke consent by any reasonable method, including replying "stop", "quit", "end", "revoke", "opt out", "cancel" or "unsubscribe" ((a)(10)); the business must honor it within a reasonable time not exceeding ten business days. The skill treats a stop reply as immediate: no more texts until staff record new consent.
- Telephone solicitations are barred before 8 a.m. and after 9 p.m. local time at the recipient's location ((c)(1)). A reminder is not a solicitation, but the skill keeps to the same window unless the owner sets a narrower one.

What the skill does with this: drafts texts only for clients whose text consent is `yes` and who have a mobile number on file; keeps each text at 160 characters or fewer with the business name, a phone number and the opt-out line; counts reminders per client per day and week; puts nothing promotional in a reminder; reports any "stop" reply for staff to record.

## Health practices (HIPAA minimum necessary, 45 CFR 164.502(b))

Source: Legal Information Institute (Cornell), "45 CFR § 164.502 - Uses and disclosures of protected health information: General rules", https://www.law.cornell.edu/cfr/text/45/164.502, opened 2026-10-06.

- A covered entity must "make reasonable efforts to limit protected health information to the minimum necessary" for the purpose.

What the skill does with this: a reminder names the business, the date, the time and the address, and nothing about the reason for the visit, the provider's specialty if it reveals a condition, test results or balances. Anyone could see a phone's lock screen.

## Minors

For students or patients under 18, send to the parent or guardian the owner has on file with consent, and keep the child's details to a first name at most (see the driving-school and tutoring workflows).

Use it in Claude Code

Put the folder at .claude/skills/appointment-reminder-drafts/ in your project (or ~/.claude/skills/appointment-reminder-drafts/ to use it in every project). Claude Code finds SKILL.md there and uses the skill when a request matches its description.

Other agents that read the Agent Skills format take the same folder.

Sources