Amelia
New in 3.19.0 (Pro). Two dispatcher tools work with Amelia 2.4 or later (Amelia Lite is enough):
| Tool | Default | Purpose |
|---|---|---|
amelia-read | On | The setup, categories, services, employees, customers, appointments, free slots, events and attendees (14 operations) |
amelia-write | Off | Set up services, employees and customers, book and manage appointments and events (25 operations) |
Enable the write tool under Tools > Plugins > Amelia. EMCP runs Amelia’s own controllers, the ones its admin uses, so Amelia checks permissions, working hours and slots. Amelia administrators and managers work on everything Amelia lets them; an Amelia employee on their own appointments and profile; Amelia customers are refused.
Units and times
Section titled “Units and times”- Every time is site-local
Y-m-d H:i, in and out. Amelia stores UTC; EMCP converts both ways, across daylight-saving changes too. - Durations, buffers and slot lengths are minutes. Prices are numbers.
Read first
Section titled “Read first”get-setup: version, edition (Lite or premium), time zone, currency, default appointment status, slot length, booking window, whether a mail sender is configured (without one Amelia sends no email), and the write operations you may run.list-services/get-service,list-employees/get-employee(the working week and days off),list-customers/get-customer,list-categories.list-appointments(default today to 30 days),get-appointment(the appointment with its bookings, and its version);list-event-bookingsgives each event booking its own version.get-availability: free start times per day for a service, computed by Amelia from working hours, breaks, days off and bookings.list-events/get-event(periods, places left),list-event-bookings.
Every object answers a version; pass it to every write on that object. A different version is a conflict; force: true writes anyway.
Set up
Section titled “Set up”create-category, thencreate-employee(first_name,last_name,email, optionalphone,description,services).set-working-hoursfor each employee: the whole week,[{day, start, end, breaks}]; a day left out is closed. Without working hours an employee has no free slots and bookings answertime_slot_unavailable.set-days-offreplaces the days off.create-service(name,category_id,duration,price,employees, optionally with an employee’s own price).create-customer. An email another employee or customer has answersemail_exists.
Amelia Lite stores no buffer times, deposits, hidden services, capacities above 1 or event tags, and schedules one employee only; EMCP answers not_in_lite naming the fields instead of writing what Lite would drop.
Appointments
Section titled “Appointments”create-appointment:service_id,employee_id,customer_id,start, optionalpersons,internal_notes,status. A taken slot or a time outside the working hours istime_slot_unavailable. A second customer in a group service’s slot joins that appointment (merged: true).reschedule-appointment,set-appointment-status(approved,pending,canceled,rejected),update-appointment,set-booking-status.- Payments are created by Amelia as for its admin; EMCP never changes payments.
Who gets emailed
Section titled “Who gets emailed”notifydefaults to false: EMCP holds every message to customers through Amelia’s own mail filter. Passnotify: trueto let Amelia email the customer.- Amelia still emails the employee when a mail sender is configured.
- Every answer lists
notified: what Amelia actually sent during the call. Undo never sends anything.
Events
Section titled “Events”create-eventwithnameandperiods;update-eventchanges only what you pass (periodsreplaces the list: keep a period’sid).set-event-status:openorcancelled.add-event-booking: EMCP checks the places left first (event_full), because Amelia does not for back-end bookings.
Deletes
Section titled “Deletes”delete-category, delete-service, delete-employee and delete-customer need confirm: true and only work when nothing uses them, past bookings included (in_use). Hide services and employees instead. Appointments and events are never deleted: cancel them.
On a real site
Section titled “On a real site”From our test run with the fictional Larkspur Kitchen School, recorded over a real MCP connection with Amelia’s free edition. The Amelia integration page shows every call the assistant made.

Both lessons on Amelia’s own calendar.

Amelia’s booking form, open on the working days the assistant set.
History
Section titled “History”Every write is one History entry and can be undone there; undo puts Amelia’s rows back with their ids and notifies nobody. It is refused when the object changed since (conflict, force overrides), or always when later real work depends on it: bookings made since, a payment that moved on, a slot taken since, an event with no places left, an email someone else took, or a link that is gone.
