Meeting scheduler
meeting-scheduler v1Turns a reply into a meeting that actually happens. Reads what the person asked for and how soon they want it, offers times in their own time zone within the hour, gets the invitation accepted, puts the joining details in it, briefs everyone who attends and reminds both sides before it. Chases a meeting nobody attended once, rebooks it once, then lets it go. Hands the notes, the recording where there is one, and the next step to whoever picks the account up, because a meeting with no write-up does not count as held.
What it is granted, and what it hands to a person
This diagram shows which systems the agent may reach, which processes it works in, and what it hands to a person. Everything drawn here is written down in the document, and an abstract agent is worth having only if both edges of it are.
Convenes the briefing that puts every attendee in the same picture before the meeting, so nobody asks again what the person already answered. Runs collect-and-report to read the ask and to report what was booked, held and missed, and closes with a debrief on which replies became meetings that held. Sits in the decide-and-announce where the seller says whether the account goes forward. Takes the reply and the thread from the sequence operator, ownership and what is already open from the account monitor, and background on the person and the account from the researcher. Tells the sequence operator to stop the touches as soon as the meeting is confirmed, and hands the outcome back to the prospect researcher.
What is in the package
5 skills and the systems they need, written to version 1.1.0 of the Agent Plugins standard. Nothing in these files names a product. The package says which systems the agent needs and what it does with each one, and you say which of your systems fills each role when you set it up.
# Where this abstract agent stops Does not hold the meeting and does not qualify the account. The seller does both, and writes up what was said. Does not write or send the outbound touches, which belong to the sequence operator, and does not restart the touches it stopped when the meeting was confirmed. Does not decide who may be contacted. ## What always goes to a person - an account two sellers both claim - to whoever settles it, before any times are offered - a reply not answered inside the stated hours - recorded as a miss and raised, rather than explained away - a second no-show - the person goes back to the list and the seller is told, instead of the chase continuing - anyone present who does not agree to the meeting being recorded - no recording is made, and the meeting goes ahead without one
# The records this abstract agent must leave
This is the contract. An agent implementing `meeting-scheduler` leaves
the following behind, on every run.
Per booking: the reply and the touch that caused it, what the person
asked for and how soon, who was coming from each side and what each was
for, the times offered and the time zone they were offered in, the
accepted invitation with its joining details, the brief as every
attendee read it, and the reminder with whether both sides acknowledged.
Per held meeting: the write-up against the account inside the stated
hours, the recording where one was agreed and the notice that was read
out, the decision to go forward or stop, and the next step with a date
on it. Per missed meeting: the chase, the rebooking, and the point at
which it was let go.
An agent that leaves less than this does not implement
`meeting-scheduler`, whatever else it does well.
# The systems this abstract agent needs
Five systems, named by role rather than by product. The access level is
the most this work needs, and a deployment that grants more is granting
more than the job requires.
| Role | Access | What the access is for |
|---|---|---|
| the calendar | write | The diary has to hold the meeting, not a note about it. |
| the mail system | write | The times, the invitation and the reminders. |
| the meeting tool | write | The joining details travel in the invitation and again in the reminder. |
| the CRM | write | The booking, the write-up and the next step against the account. |
| the recording store | write | Only for a meeting everybody present was told about and agreed to. |
Whoever builds an agent from this plugin writes the `mcp.json` that
points these roles at their own systems. Nothing here names a product,
so the same package works whatever you already run.
{
"$schema": "https://agent-plugins.org/schemas/1.1.0/plugin.schema.json",
"name": "meeting-scheduler",
"version": "1.0.0",
"description": "The meeting-scheduler abstract agent. Turns a reply into a meeting that actually happens. Reads what the person asked for and how soon they want it, offers times in their own time zone within the hour, gets the invitation accepted, puts the joining details in it, briefs everyone who attends and reminds both sides before it.",
"author": {
"name": "AgentCatalog",
"url": "https://agentcatalog.com"
},
"homepage": "https://agentcatalog.com/abstract-agents/meeting-scheduler",
"repository": "https://github.com/jeffrschneider/agentcatalog",
"license": "CC-BY-4.0",
"keywords": [
"abstract-agent",
"reference",
"sales",
"book-the-meeting",
"work-a-referral",
"run-an-outbound-sequence",
"abstract"
],
"extensions": {
"com.agentcatalog.agent": {
"agent": "meeting-scheduler",
"agentVersion": 1,
"department": "sales",
"abstract": true,
"works": "Convenes the briefing that puts every attendee in the same picture before the meeting, so nobody asks again what the person already answered. Runs collect-and-report to read the ask and to report what was booked, held and missed, and closes with a debrief on which replies became meetings that held. Sits in the decide-and-announce where the seller says whether the account goes forward. Takes the reply and the thread from the sequence operator, ownership and what is already open from the account monitor, and background on the person and the account from the researcher. Tells the sequence operator to stop the touches as soon as the meeting is confirmed, and hands the outcome back to the prospect researcher.",
"servers": [
{
"name": "the calendar",
"role": "calendar",
"access": "write",
"needs": "The diary has to hold the meeting, not a note about it."
},
{
"name": "the mail system",
"role": "mail-system",
"access": "write",
"needs": "The times, the invitation and the reminders."
},
{
"name": "the meeting tool",
"role": "meeting-tool",
"access": "write",
"needs": "The joining details travel in the invitation and again in the reminder."
},
{
"name": "the CRM",
"role": "crm",
"access": "write",
"needs": "The booking, the write-up and the next step against the account."
},
{
"name": "the recording store",
"role": "recording-store",
"access": "write",
"needs": "Only for a meeting everybody present was told about and agreed to."
}
],
"records": [
"Per booking: the reply and the touch that caused it, what the person asked for and how soon, who was coming from each side and what each was for, the times offered and the time zone they were offered in, the accepted invitation with its joining details, the brief as every attendee read it, and the reminder with whether both sides acknowledged.",
"Per held meeting: the write-up against the account inside the stated hours, the recording where one was agreed and the notice that was read out, the decision to go forward or stop, and the next step with a date on it.",
"Per missed meeting: the chase, the rebooking, and the point at which it was let go."
],
"escalates": [
"an account two sellers both claim - to whoever settles it, before any times are offered",
"a reply not answered inside the stated hours - recorded as a miss and raised, rather than explained away",
"a second no-show - the person goes back to the list and the seller is told, instead of the chase continuing",
"anyone present who does not agree to the meeting being recorded - no recording is made, and the meeting goes ahead without one"
],
"not": [
"Does not hold the meeting and does not qualify the account.",
"The seller does both, and writes up what was said.",
"Does not write or send the outbound touches, which belong to the sequence operator, and does not restart the touches it stopped when the meeting was confirmed.",
"Does not decide who may be contacted."
],
"processes": [
{
"process": "ref/sls/book-the-meeting",
"activities": [
"Take in the Reply",
"Read What They Asked For",
"Decide Who Should Attend",
"Offer Times",
"Confirm the Meeting",
"Brief the Attendees",
"Remind Before the Meeting",
"Handle a No-Show",
"Hand over to the Next Stage",
"Report the Bookings",
"Record What Was Learned"
]
},
{
"process": "ref/sls/run-an-outbound-sequence",
"activities": [
"Hand over the Positive Replies"
]
},
{
"process": "ref/sls/work-a-referral",
"activities": [
"Take the Handover",
"Book the Conversation"
]
}
]
}
}
}
# meeting-scheduler This is an abstract agent, published as an Agent Plugin. An abstract agent is a job description rather than an implementation. It says what the work is, which systems it needs and at what access, what it must leave behind, and where it stops. Any agent that leaves the records can implement it. The plugin carries five skills, no `mcp.json`, and everything the abstract agent owes under `com.agentcatalog.agent/`. ## Why there is no mcp.json A conformant server entry in `mcp.json` has to declare a transport and then either a `command` to launch or a `url` to connect to. An abstract agent has neither, because it does not know which product holds your records. Writing placeholder URLs would produce a plugin that loads and then fails to connect, which is worse than one that says nothing. Section 6.2 makes a missing component location not an error, so the file is absent and the systems this abstract agent needs are declared instead under `extensions["com.agentcatalog.agent"].servers`, as a role, an access level and what the access is for. Whoever builds an agent from this plugin writes the `mcp.json` that points those roles at their own systems, so nothing here depends on a particular supplier. ## Why the obligations are in an extension The specification defines two component types, skills and MCP servers, and both describe what a plugin can do. An abstract agent's contract is mostly the other half: the records it must leave, what it escalates, and what it must not do. There is no portable field for any of that, so it lives in a reverse-domain namespace as section 8 requires, in the manifest and in the directory of the same name. ## Where this abstract agent is used `ref/sls/book-the-meeting`, `ref/sls/run-an-outbound-sequence`, `ref/sls/work-a-referral`. The list is generated from the activity tables of the processes that name it. https://agentcatalog.com/abstract-agents/meeting-scheduler
--- name: get-the-meeting-in-the-diary description: Works out who comes from each side and what each is there for, offers times in the person's own time zone, and gets an invitation accepted with the joining details in it. Use it when running `ref/sls/book-the-meeting` and `ref/sls/work-a-referral`. license: CC-BY-4.0 metadata: agent: meeting-scheduler agent-version: "1" --- # Get the meeting in the diary ## What it does Works out who comes from each side and what each is there for, offers times in the person's own time zone, and gets an invitation accepted with the joining details in it. The diary has to hold the meeting, not a note about it. ## Where it happens The agent does this in four activities across two reference processes. Each one names the activity as that process words it. - **Book the Conversation** - `ref/sls/work-a-referral`, activity 12 - [Work a Referral](../../../../processes/sales/work-a-referral.md) - **Confirm the Meeting** - `ref/sls/book-the-meeting`, activity 6 - [Book the Meeting](../../../../processes/sales/book-the-meeting.md) - **Decide Who Should Attend** - `ref/sls/book-the-meeting`, activity 3 - [Book the Meeting](../../../../processes/sales/book-the-meeting.md) - **Offer Times** - `ref/sls/book-the-meeting`, activity 5 - [Book the Meeting](../../../../processes/sales/book-the-meeting.md) ## What to record Per booking: the reply and the touch that caused it, what the person asked for and how soon, who was coming from each side and what each was for, the times offered and the time zone they were offered in, the accepted invitation with its joining details, the brief as every attendee read it, and the reminder with whether both sides acknowledged. Per held meeting: the write-up against the account inside the stated hours, the recording where one was agreed and the notice that was read out, the decision to go forward or stop, and the next step with a date on it. Per missed meeting: the chase, the rebooking, and the point at which it was let go. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: hand-the-meeting-on description: Hands the write-up, the recording where there is one, and the next step with a date on it to whoever picks the account up. Use it when running `ref/sls/book-the-meeting`. license: CC-BY-4.0 metadata: agent: meeting-scheduler agent-version: "1" --- # Hand the meeting on ## What it does Hands the write-up, the recording where there is one, and the next step with a date on it to whoever picks the account up. A meeting with no write-up does not count as held. ## Where it happens The agent does this in one activity across one reference process. Each one names the activity as that process words it. - **Hand over to the Next Stage** - `ref/sls/book-the-meeting`, activity 13 - [Book the Meeting](../../../../processes/sales/book-the-meeting.md) ## What to record Per booking: the reply and the touch that caused it, what the person asked for and how soon, who was coming from each side and what each was for, the times offered and the time zone they were offered in, the accepted invitation with its joining details, the brief as every attendee read it, and the reminder with whether both sides acknowledged. Per held meeting: the write-up against the account inside the stated hours, the recording where one was agreed and the notice that was read out, the decision to go forward or stop, and the next step with a date on it. Per missed meeting: the chase, the rebooking, and the point at which it was let go. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: make-sure-the-meeting-holds description: Briefs everybody who attends, so nobody asks again what the person already answered, and reminds both sides before it. Use it when running `ref/sls/book-the-meeting`. license: CC-BY-4.0 metadata: agent: meeting-scheduler agent-version: "1" --- # Make sure the meeting holds ## What it does Briefs everybody who attends, so nobody asks again what the person already answered, and reminds both sides before it. Chases a meeting nobody attended once and rebooks it once, then lets it go. ## Where it happens The agent does this in three activities across one reference process. Each one names the activity as that process words it. - **Brief the Attendees** - `ref/sls/book-the-meeting`, activity 7 - [Book the Meeting](../../../../processes/sales/book-the-meeting.md) - **Handle a No-Show** - `ref/sls/book-the-meeting`, activity 10 - [Book the Meeting](../../../../processes/sales/book-the-meeting.md) - **Remind Before the Meeting** - `ref/sls/book-the-meeting`, activity 8 - [Book the Meeting](../../../../processes/sales/book-the-meeting.md) ## What to record Per booking: the reply and the touch that caused it, what the person asked for and how soon, who was coming from each side and what each was for, the times offered and the time zone they were offered in, the accepted invitation with its joining details, the brief as every attendee read it, and the reminder with whether both sides acknowledged. Per held meeting: the write-up against the account inside the stated hours, the recording where one was agreed and the notice that was read out, the decision to go forward or stop, and the next step with a date on it. Per missed meeting: the chase, the rebooking, and the point at which it was let go. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: read-a-reply-that-wants-a-conversation description: Takes in a reply that wants to talk, with the thread and the touch that caused it, and reads what the person actually asked for and how soon they want it. Use it when running `ref/sls/book-the-meeting`, `ref/sls/run-an-outbound-sequence` and `ref/sls/work-a-referral`. license: CC-BY-4.0 metadata: agent: meeting-scheduler agent-version: "1" --- # Read a reply that wants a conversation ## What it does Takes in a reply that wants to talk, with the thread and the touch that caused it, and reads what the person actually asked for and how soon they want it. An introduction that lands is taken in the same way. ## Where it happens The agent does this in four activities across three reference processes. Each one names the activity as that process words it. - **Hand over the Positive Replies** - `ref/sls/run-an-outbound-sequence`, activity 15 - [Run an Outbound Sequence](../../../../processes/sales/run-an-outbound-sequence.md) - **Read What They Asked For** - `ref/sls/book-the-meeting`, activity 2 - [Book the Meeting](../../../../processes/sales/book-the-meeting.md) - **Take in the Reply** - `ref/sls/book-the-meeting`, activity 1 - [Book the Meeting](../../../../processes/sales/book-the-meeting.md) - **Take the Handover** - `ref/sls/work-a-referral`, activity 11 - [Work a Referral](../../../../processes/sales/work-a-referral.md) ## What to record Per booking: the reply and the touch that caused it, what the person asked for and how soon, who was coming from each side and what each was for, the times offered and the time zone they were offered in, the accepted invitation with its joining details, the brief as every attendee read it, and the reminder with whether both sides acknowledged. Per held meeting: the write-up against the account inside the stated hours, the recording where one was agreed and the notice that was read out, the decision to go forward or stop, and the next step with a date on it. Per missed meeting: the chase, the rebooking, and the point at which it was let go. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
--- name: report-what-was-booked-and-held description: Reports what was booked, what held and what was missed, and reads back which replies turned into meetings that actually happened. Use it when running `ref/sls/book-the-meeting`. license: CC-BY-4.0 metadata: agent: meeting-scheduler agent-version: "1" --- # Report what was booked and held ## What it does Reports what was booked, what held and what was missed, and reads back which replies turned into meetings that actually happened. ## Where it happens The agent does this in two activities across one reference process. Each one names the activity as that process words it. - **Record What Was Learned** - `ref/sls/book-the-meeting`, activity 16 - [Book the Meeting](../../../../processes/sales/book-the-meeting.md) - **Report the Bookings** - `ref/sls/book-the-meeting`, activity 15 - [Book the Meeting](../../../../processes/sales/book-the-meeting.md) ## What to record Per booking: the reply and the touch that caused it, what the person asked for and how soon, who was coming from each side and what each was for, the times offered and the time zone they were offered in, the accepted invitation with its joining details, the brief as every attendee read it, and the reminder with whether both sides acknowledged. Per held meeting: the write-up against the account inside the stated hours, the recording where one was agreed and the notice that was read out, the decision to go forward or stop, and the next step with a date on it. Per missed meeting: the chase, the rebooking, and the point at which it was let go. That contract covers every activity this abstract agent takes on, and it is repeated in `com.agentcatalog.agent/RECORDS.md`. What the abstract agent does not do is in `com.agentcatalog.agent/NOT.md`.
Every server entry in an mcp.json needs either a command to run or a url to connect to, and the package cannot know either of those until somebody points it at their own systems. So the file is left out, the systems the agent needs are named by role in plugin.json, and you write the mcp.json when you set it up.
Point it at your systems
To run an agent built from this package, write an mcp.json that says which of your systems fills each role. The package names these 5 roles, and the access level beside each one is the most the work needs.
{
"$schema": "https://agent-plugins.org/schemas/1.1.0/mcp.schema.json",
"mcpServers": {
"calendar": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/calendar"
},
"mail-system": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/mail-system"
},
"meeting-tool": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/meeting-tool"
},
"crm": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/crm"
},
"recording-store": {
"type": "streamable-http",
"url": "https://mcp.yourcompany.com/recording-store"
}
}
}
The hostnames here are a placeholder for your own. Whichever product holds each of these systems, the agent you build is yours and nobody else has to be involved in running it.
3 processes, 14 activities
The highlighted activities are the ones this abstract agent does. The other activities in each process belong to other abstract agents or to people.
Take in the Reply · Read What They Asked For · Decide Who Should Attend · Offer Times · Confirm the Meeting · Brief the Attendees · Remind Before the Meeting · Handle a No-Show · Hand over to the Next Stage · Report the Bookings · Record What Was Learned
Hand over the Positive Replies
Take the Handover · Book the Conversation
What it writes down
Per booking: the reply and the touch that caused it, what the person asked for and how soon, who was coming from each side and what each was for, the times offered and the time zone they were offered in, the accepted invitation with its joining details, the brief as every attendee read it, and the reminder with whether both sides acknowledged. Per held meeting: the write-up against the account inside the stated hours, the recording where one was agreed and the notice that was read out, the decision to go forward or stop, and the next step with a date on it. Per missed meeting: the chase, the rebooking, and the point at which it was let go.
What it will not do
Does not hold the meeting and does not qualify the account. The seller does both, and writes up what was said. Does not write or send the outbound touches, which belong to the sequence operator, and does not restart the touches it stopped when the meeting was confirmed. Does not decide who may be contacted.
These limits are written into the job on purpose, so that everyone adopting the process knows which decisions stay with a person.
Who has built one, and how far each one got
Nobody has built one yet. The catalog says so rather than leaving the section off, because an empty list is a fact about the document.
implements: meeting-scheduler v1
One line in your agent's manifest. The catalog checks it against the records your runs actually leave.
The closest things in the catalog, by description
Nobody above has claimed any of these. This is the nearest match by wording between the job written above and what publishers wrote about their own listings, closest first, and wording is not evidence: some of these will be wrong, and a job with nothing suitable still gets whatever was nearest. The publishers have never heard of this abstract agent and have promised nothing about it. What a claim looks like is in the table above, and it is signed.
Not workers. These are capability that whatever does the job would use, which is a different relationship and kept in its own column for that reason.
- Astrocal MCP server · astrocal.dev · hosted · run it yourself · mirrored from the MCP registry AI-native scheduling: check availability, book meetings, cancel and reschedule via MCP
- Syncline MCP Server MCP server · syncline.run · run it yourself · mirrored from the MCP registry AI-powered meeting scheduling with intelligent auto-scheduling for Claude and AI agents.
- Meet.bot MCP MCP server · meet.bot · hosted · mirrored from the MCP registry AI-native scheduling and booking: check availability, book meetings, share links.