MCP App Store
by KeenEthics
Business & Operations
Apptoto icon

Apptoto

by Go-Cort Inc.

Overview

Communicate with clients, schedule appointments, and stay on top of your calendar, all by chatting with your AI assistant. Catch up on text, email, and voice conversations, see who’s waiting on a reply, and send responses or start new ones from approved templates. Look up and book appointments, check your availability across connected calendars, and keep contacts up to date. Mark participants confirmed, cancelled, or no-show to keep attendance accurate, while your existing reminders run automatically. It’s secure by design: you decide what the assistant can do, and it always confirms before sending or booking.

Tools

cancel_participant_auto_message

ChatGPT
WRITE: Un-queue one of a participant's automated reminder messages so it will NOT send at its configured time. This cancels a scheduled (queued) reminder; it does not recall a message that has already been sent. Call list_participant_auto_messages first to get the participant_id and the auto_message_id; queued indicates whether a message is currently scheduled. To queue a message again, use schedule_participant_auto_message.

check_availability

ChatGPT
Look up open booking slots on a specific booking page within a date range. Honors the booking page's working hours, buffers, and existing calendar busy time.

create_booking

ChatGPT
WRITE: Book an appointment on a booking page at a specific time. This creates a real booking, writes an event to the connected calendar, and may trigger confirmation/reminder messages. Always confirm the details with the user before calling. Use list_booking_pages to find the booking_page slug, its appointment types, and which fields it requires. Use check_availability first to confirm the time is open. If the booking page requires consent to text about appointments (or for marketing), set the matching opted_into_text_messaging flag, otherwise the booking is rejected.

create_contact

ChatGPT
Creates a new contact in the user's Apptoto address book. Requires at least a name (or first_name + last_name), email, or phone number. WRITE: this persists a new contact in the user's account.

create_event

ChatGPT
Creates a new calendar event on one of the user's Apptoto calendars. WRITE: this writes a real event to the connected calendar (Google/Outlook/etc.) and may trigger reminders configured on that calendar.

delete_contact

ChatGPT
WRITE: Permanently delete a contact from an address book. This removes the contact and may affect events/reminders tied to it. Always confirm with the user before calling. Supply either id (Apptoto contact id) or external_id (id from the originating address book).

delete_event

ChatGPT
WRITE: Permanently delete a calendar event. This deletes the event from the connected calendar (Google/Outlook/etc.) and cancels any reminders configured on it. Always confirm with the user before calling. Supply either id (Apptoto event id) or external_id (the id from the originating calendar).

get_contact

ChatGPT
Fetch a single contact. Supply either id (Apptoto contact id) or external_id (id from the originating address book).

get_event

ChatGPT
Fetch a single event. Supply either id (Apptoto event id) or external_id (the id from the originating calendar). Returns the full event with participants and reminders, including when the appointment was created and last changed (created_on_calendar / updated_on_calendar). Each participant carries that person's REAL, shareable links: link is their Appointment Page -- the page a message's {{ reminder.link }} field points at, where they see their appointment details and can confirm, cancel, reschedule, or add it to their calendar -- along with reschedule_link, direct_reschedule_link and cancel_link. These are live URLs, safe to show the user. This is the ONLY way to get a real link for a real appointment: preview_message_template always renders a fixed .../r/preview placeholder instead. What that page shows -- whether it carries the address, a map, directions -- is this account's own Appointment Page setup: read it with get_appointment_page / preview_appointment_page, never from memory.

get_userinfo

ChatGPT
Returns the authenticated Apptoto user (username, account info, shard, admin status). Useful for confirming which Apptoto account is connected.

list_address_books

ChatGPT
List the address books (contact sources) connected to this Apptoto account.

list_booking_pages

ChatGPT
List the authenticated user's booking pages. Returns id, name, public url, enabled flag, appointment types, and field definitions for each page. A page's url is its shareable public booking link. Inside an appointment type, link_to_url is NOT a separate booking link for that type -- it only appears on types whose action is "link", meaning picking that type forwards the visitor to another one of the user's booking pages, and that other page is listed here in its own right. There is no per-appointment-type link: to send someone to a specific type, share the page url. Paginated; default 20 per page, max 50.

list_bookings

ChatGPT
List completed bookings (self-scheduled appointments) made through a booking page within a date range. Paginated; default 20 per page, max 50.

list_calendars

ChatGPT
List the calendars connected to this Apptoto account. Returns id, title, type (google/outlook/etc.), and enabled state for each.

list_contacts

ChatGPT
List or search contacts in the user's address books. Paginated; default 20 per page, max 50.

list_conversation_messages

ChatGPT
Fetch the individual messages (logs) for one conversation. Supply the conversation_id from list_conversations. Returns each message with content, from, to, direction, delivery state, and timestamps.

list_conversation_templates

ChatGPT
List the message templates that can be used to start a conversation with start_conversation. Only approved templates are returned (any template awaiting content approval is omitted). Each template includes: id - pass this as template_id to start_conversation name - human-readable template name comm_types - which channels the template supports: { sms, email, call } (call means a voice call) Use the comm_types to decide the type to pass to start_conversation.

list_conversations

ChatGPT
List conversations (text/email/call threads) for the authenticated user. Defaults to the inbox folder. The optional q parameter accepts the Apptoto search syntax: from:fred@example.com - match sender to=+15035551212 - exact phone match (= is exact, : is tokenized) comm_type:sms - only SMS conversations event:sent AND delivery_state:delivered auto:true - only automated messages subject:"appointment confirmation" content:reschedule - body text match confirmed:true - participant confirmed the appointment For the full search syntax reference (additional operators, aggregations, fuzzy matching) see https://www.apptoto.com/apptoto-manual/article/inbox-outbox-tab/conversation-search-syntax/ Returns id, event, participant, conversation_type, from, to, last_out, last_in for each conversation. Paginated; default 20 per page, max 50.

list_events

ChatGPT
List or search the authenticated user's calendar events (appointments) within a date range. Events can be ANYTHING on the user's connected calendars -- flights and travel, doctor/dentist appointments, meetings, closings, reminders, personal plans -- so a question about the user's own flights, trips, appointments, or "what's coming up" is almost always answerable here, not out of scope. For "when is my next X" or "my upcoming X" (e.g. "upcoming flights"), search with q set to the keyword (e.g. "flight") and begin set to the current time so only future events are returned; sort/scan the results for the soonest. begin and end are in the account's time zone: pass a date (e.g. "2026-05-20") for whole days or a local datetime (e.g. "2026-05-20T09:00:00"). q supports a real query language (see its description) -- when the user names SEVERAL people or topics, combine them into ONE call with "or" rather than making a separate call per name. Results are paginated; default 20 per page, max 50, and each response includes "total" -- the count of every match, not just this page -- so use it to decide whether to fetch more pages instead of guessing. A "warnings" key means the search understood part of your query but not all of it; read it and retry rather than reporting no results. Each event includes created_on_calendar / updated_on_calendar timestamps, so "when was this appointment created/booked" is answerable here. Each participant carries that person's REAL, shareable links: link is their Appointment Page -- the page a message's {{ reminder.link }} field points at, where they see their appointment details and can confirm, cancel, reschedule, or add it to their calendar -- along with reschedule_link, direct_reschedule_link and cancel_link. These are live URLs, safe to show the user. This is the ONLY way to get a real link for a real appointment: preview_message_template always renders a fixed .../r/preview placeholder instead. What that page shows -- whether it carries the address, a map, directions -- is this account's own Appointment Page setup: read it with get_appointment_page / preview_appointment_page, never from memory.

list_participant_auto_messages

ChatGPT
List the automated reminder messages from a participant's applicable schedule. Use get_event / list_conversations to find a participant_id first. Each message returns id, name, comm_type (sms/call/email), content, enabled, and -- evaluated for this participant -- matches (whether the message applies), send_time (when it would fire), queued (whether it is currently scheduled to send), and reminder_state. Use schedule_participant_auto_message / cancel_participant_auto_message to queue or un-queue one for its configured time, or send_participant_auto_message to send it immediately.

mark_participant

ChatGPT
Marks all participants in an event with a state (e.g. confirmed, cancelled, noshow). Supply either id or external_id to identify the event. Use list_events / get_event to find the event first. WRITE: this updates participant state and may trigger redispatch of reminders.

provide_feedback

ChatGPT
Report a problem you ran into, or a capability the user asked for that the available Apptoto MCP tools do not support. Use this when a task cannot be completed with the current tools, when a tool behaves unexpectedly, or when the user explicitly asks to leave feedback. Describe who the user is, what they were trying to do, what the issue or limitation is, and what change would help. This sends a report to the Apptoto team.

reply_to_conversation

ChatGPT
WRITE: Send a reply on an existing conversation. This SENDS a real SMS or email and may incur per-message cost on the user's account. Always confirm with the user before calling. Supply conversation_id (from list_conversations) and the message body.

schedule_participant_auto_message

ChatGPT
WRITE: Queue one of a participant's automated reminder messages so it sends automatically at its configured time (not immediately). Use this to "enable" a specific auto message for a participant. Call list_participant_auto_messages first to get the participant_id and the auto_message_id. The message must have an applicable send_time for this participant. To send immediately instead, use send_participant_auto_message. To un-queue, use cancel_participant_auto_message.

send_participant_auto_message

ChatGPT
WRITE: Send one of a participant's automated reminder messages RIGHT NOW, mirroring the "send now" button in the participant schedule editor. This SENDS a real SMS, email, or voice call and may incur per-message cost on the user's account. Always confirm with the user before calling. Call list_participant_auto_messages first to get the participant_id and the auto_message_id to send. To queue a message for its configured time instead of sending immediately, use schedule_participant_auto_message.

start_conversation

ChatGPT
WRITE: Message the participant(s) of an appointment (or any phone/email) by sending an approved template as a new SMS, email, or voice call. Use this to notify people about their appointment -- e.g. that it was rescheduled, confirmed, or cancelled. This SENDS a real message and may incur per-message cost on the user's account. Always confirm with the user before calling. Call list_conversation_templates first to get a template_id and the channels (comm_types) it supports. Choose the recipient by supplying exactly ONE of: participant_id - a specific participant on an event (use list_conversations / get_event to find ids) event_id - every participant on the event receives the message individually to - a one-off phone number (sms/call) or email address (email) When using to, set type to match: "sms" or "call" for a phone number, "email" for an email address. This tool only sends pre-approved templates. For free-text (non-template) wording, use send_message_to_participant instead.

tag

ChatGPT
Add or remove a tag on an event, participant, or contact. The tag is appended to the title for events and tracked in a searchable tags field for all targets. Identify the target with id (or external_id for events and contacts; participants require id). Set remove to true to remove the tag instead of adding it. WRITE: requires events:write for event/participant targets, contacts:write for contact targets.

update_contact

ChatGPT
Updates an existing contact. Supply either id (Apptoto contact id) or external_id to identify the contact. Only the fields supplied are changed. Phone numbers and email addresses are managed explicitly: use add_phone / remove_phone to add or remove a single value, or pass phone_numbers (array of strings) to replace the entire set. Same for add_email / remove_email / email_addresses. Use primary_phone / primary_email to mark which existing value is the primary (the one returned as the contact's main phone/email); pair with add_phone in the same call to add and promote in one step. To change a phone, remove the old one and add the new one. WRITE: this modifies an existing contact.

update_event

ChatGPT
Updates an existing event. Supply either id (Apptoto event id) or external_id to identify it. Only fields supplied are changed. WRITE: this modifies a real calendar event.

Capabilities

Writes

App Stats

29

Tools

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily