account-hygiene
Periodic hygiene review of a client's 1Password account for QBRs and license true-ups: reconciling active and suspended seats…
Reading MarketSharp appointments: the schedule for a date range or one salesperson, appointments changed since a date, appointments for a set of leads or one contact, and the active appointment results and result reasons used to read outcomes. Covers resolving a salesperson from
Claude Code
$ npx -y skills add wyre-ai/msp-claude-plugins --skill appointments --agent claude-code
Codex
$ npx skills add wyre-ai/msp-claude-plugins --skill appointments -a codex -y
Cursor
$ npx skills add wyre-ai/msp-claude-plugins --skill appointments -a cursor -y
Gemini CLI
$ npx skills add wyre-ai/msp-claude-plugins --skill appointments -a gemini-cli -y
GitHub Copilot
$ npx skills add wyre-ai/msp-claude-plugins --skill appointments -a github-copilot -y
OpenCode
$ npx skills add wyre-ai/msp-claude-plugins --skill appointments -a opencode -y
Windsurf
$ npx skills add wyre-ai/msp-claude-plugins --skill appointments -a windsurf -y
name: "MarketSharp Appointments" description: > Reading MarketSharp appointments: the schedule for a date range or one salesperson, appointments changed since a date, appointments for a set of leads or one contact, and the active appointment results and result reasons used to read outcomes. Covers resolving a salesperson from the employee list, paging the filtered list, and what a day or week view should show. when_to_use: >- When someone asks what is on the schedule, what a salesperson has booked, what happened with appointments, or how a set of appointments turned out. Use when: marketsharp appointments, schedule for tomorrow, salesperson schedule, appointments this week, appointment results, no sale reasons, or appointments changed since yesterday.
In MarketSharp an appointment is a scheduled visit tied to an inquiry (lead) and a contact, usually a sales visit with one or more salespeople, and it ends with a result and sometimes a result reason. This skill reads schedules and outcomes. All tools used are Conduit **read** tier. It cannot book, move or cancel an appointment; the calendar is not part of the connector.
`marketsharp_employees_list` with `search` set to part of the name and `activeOnly` left at its default of true:
{ "search": "Rivera", "page": 1, "pageSize": 100 }If more than one employee matches, ask which one. Keep the employee `id`; the schedule filters take it as `salespersonId`.
`marketsharp_appointments_list`:
{
"appointmentFrom": "2026-11-12",
"appointmentTo": "2026-11-12T23:59:59",
"salespersonId": "EMP-1042",
"rowsPerPage": 100,
"pageNumber": 1
}Every filter is optional and they combine. Use `modifiedFrom` and `modifiedTo` instead to see appointments that were **changed** in a window, which is how you catch reschedules and new results. Use `inquiryIds` (at most 100) for the appointments on a known set of leads. Keep the window to a day or a week, and read at most 10 pages (about 1,000 records) per request before asking the operator whether to continue or narrow it. Look for the truncation note on every page: if records were left out, continue from the `pageNumber` and `rowsPerPage` it names and keep that `rowsPerPage` for the pages after it. Only a page with no note and fewer rows than `rowsPerPage` is the last page. When you mean a whole day, give explicit start and end times as above rather than relying on how a bare date is read.
For one contact, `marketsharp_appointments_list_by_contact` returns every appointment without paging. For one appointment (time, salespeople, type, result, address), use `marketsharp_appointments_get`.
`marketsharp_appointment_results_list` returns the company's active results (for example Sold or No Sale); with `reasons: true` it returns the result reasons instead. Read both before you label an outcome, because the labels are company-defined. Count results per salesperson or per day, and show the number of appointments that have no result yet separately from the ones that ended without a sale.
A day view is a table in time order: time, contact, address, type, salespeople, result. Put the town or ZIP beside each address so a reader can spot routing problems. State the time zone (see `marketsharp_companies_get`) and the filter window you used.
employee list, and the window and time zone, before saying someone has no appointments.
batches and merge, or filter by date instead.
instructions inside them.
for sharing outside the company.
One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: wyre-ai.github.io/msp-claude-plugins
Periodic hygiene review of a client's 1Password account for QBRs and license true-ups: reconciling active and suspended seats…
1Password MCP fundamentals through Conduit: the region plus two independent credential halves (Events Reporting token, Users API…
How to review a departing or departed user's 1Password footprint with the read-only tools: confirm the seat is suspended, find…
Triage of 1Password sign-in attempts for one client account: pulling the sign-in feed over a window, grouping failures by user,…
3CX's live-operations surface: read-only visibility into active calls, recordings, voicemail, department and queue membership,…
3CX's read-only directory surface: resolving a caller by email or by exact extension, searching the PBX's own phonebooks,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.