UNPKG

@awesomate/hosting-mcp

Version:

Awesomate MCP server — lets Claude manage your Awesomate WordPress hosting, plan, limits, n8n automations, and build Node/static apps + databases

100 lines (83 loc) • 7.02 kB
--- name: awesomate-bookings description: Let the business's own customers book appointments or classes online, and manage those bookings. Sets up calendars (a person, room or resource with weekly hours), services (what is booked, how long, how many places, the questions asked), and the booking box for their website, then books, moves and cancels for them. Use when the user says "booking", "bookings", "appointments", "book online", "booking calendar", "scheduling", "let customers book", "Calendly", "class bookings", "who's booked tomorrow", or wants a booking page on their site. Companion to awesomate-app-builder and awesomate-hosting (the page it goes on) and awesomate-n8n (follow-ups): same connection, same token. --- # Awesomate Bookings: customers book themselves, bookings land in Contacts A business's customers pick a time on the business's own website, get an email with a calendar invite and a link to change or cancel, and the business gets a notice for each booking. Every booking is a record in the business's own Contacts, linked to the person who made it. Everything goes through one tool, `awesomate_bookings`. Work in plain words with the owner: ask what people book, who with, and when they are open, then set it up and show them the result in a sentence or two. ## What it is made of - **Calendars**: a person, room or resource people book. Each has weekly hours in its own time zone, how much notice it needs, a gap between bookings, an optional daily limit, and the email that hears about every booking (with an invite for their own calendar). Set the notice email: without one, customers' replies to booking emails reach nobody. - **Services**: what is booked. A length in minutes, places (1 for one person at a time, more for a class several people join), a price shown as text (nothing is charged), where it happens, questions to ask when booking, how many hours before the start changes close online, and which calendars offer it. - **The booking box**: one key per website, locked to that site's address. `create_key` returns the snippet to paste. ## Setting up (in this order) 1. `awesomate_bookings` action `save_calendar` with `key` (lower case, like `nicole`), `name`, `timezone` (like `Australia/Sydney`), `hours` (`{"mon": [["09:00","17:00"]], ...}`, 24-hour, no overlaps), and `notify_email`. `granularity_minutes` (5, 10, 15, 20, 30 or 60) sets how often start times fall. 2. `save_service` with `key`, `name`, `minutes`, `calendars` (keys), and optionally `capacity`, `price_text`, `location`, `cancel_cutoff_hours`, `sort` (order on the booking page, lower first), `intake` (questions: `[{"key":"reason","label":"What brings you in?","type":"textarea","required":true}]`; types are text, textarea, select, multiselect, url; select and multiselect take `options`). 3. `open_times` with `service` to check the times look right before telling the owner it is ready. 4. `create_key` with `website` (the site's address, https). Put the returned `snippet` on the page the owner wants, or give it to them to paste: ```html <div data-awesomate-bookings></div> <script src="https://hub.awesomate.ai/widget/v1/bookings.js" data-key="bk_..." async></script> ``` On the div, `data-service="<key>"` offers one service only, and `data-accent="#0f766e"` colours the buttons to match the site. On a WordPress site, a Custom HTML block holds both lines. On a site you build with awesomate-app-builder, put them in the page where booking belongs (a "Book now" section, or a /book page) and deploy as usual. The box only works on the website named on its key: to use it on another domain, `update_key` with `allowed_origins`. Changing a calendar or service later: call the same `save_` action with only what changes. ## Running the diary - `list` (optionally `from`, `to`, `status`): upcoming bookings with each customer's name, email, phone and answers. Use it for "who's booked tomorrow". - `book`: book someone in (`service`, `calendar`, `starts_at` from `open_times`, the customer's `email`, `first_name`, `last_name`, `phone`, `answers`). `notify: false` when the customer should not get an email (a booking taken by phone that they already know about). Staff may book outside the hours with `outside_hours: true`; nobody can double-book a time. - `move` (`booking_id`, `starts_at`, optional `calendar` to move it to another calendar) and `cancel` (`booking_id`, `reason`): the customer is emailed unless `notify: false`, and the calendar's notice email always is. - `get` (`booking_id`): one booking with its customer and their answers. - `outcome` (`booking_id`, `outcome: completed | no_show`): how it went, once the time has passed. Nobody is emailed. Mark a no-show only when the owner says the person did not come. - `disconnect_calendar` (`key`, `provider: google | microsoft`, `confirm: true`): unlink the Google or Microsoft calendar connected to one of the business's calendars, only on the owner's yes, so its busy times stop blocking bookings. Connecting one, and choosing which of its calendars count as busy, is done in the hub under Contacts, Bookings. ## Follow-ups through n8n (Pro) Each booking is a record of the `booking` kind in Contacts. On Pro, an account with one of its own apps (`awesomate_crm_apps`) can add a hook with `awesomate_crm_hooks` and `kinds: ["booking"]` to send each booking's created, updated and archived events to its own n8n: an SMS reminder, copying it into Google Calendar with the owner's own n8n credential, a thank-you after the visit. Bookings themselves cannot be written through `awesomate_crm_write`; only these actions change them. ## Plans and limits - Every plan can set up bookings and take them on its website. Essentials takes up to 50 website bookings a month; bookings the business makes itself never count. - Changing bookings from Claude Code (the write actions here) needs Support Plus or above. On Essentials, the tool answers `upgrade_required`: say the owner can do the same in the hub under Contacts, Bookings, and do not retry. - Payments and deposits are not part of bookings yet. Do not promise them; the price is shown only. - **Google Calendar or Outlook** is connected per calendar in the hub (Contacts, Bookings, Set up, Connect Google Calendar or Connect Outlook), by the person whose calendar it is: Claude cannot connect it, so send them there. Once connected, times they are busy there are never offered, and every booking is written to an "Awesomate bookings" calendar in their account, moved and removed with it. `setup` lists the connected calendars under `links` (each with its `provider`), and says which providers this hub offers (`google.available`, `microsoft.available`). Where neither is offered, the notice email's invite is how a booking reaches their calendar. A work account whose organisation limits apps may need its Microsoft 365 admin to approve Awesomate once; the hub says so when that happens.