Acuity Scheduling ACTION
Book Appointment
Book an appointment. See the documentation
- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Acuity Scheduling account once, then configure and run Book Appointment from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "acuity_scheduling-book-appointment",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
acuity_scheduling: { authProvisionId: "apn_xxxxxxx" },
datetime: "Datetime",
appointmentTypeId: "Appointment Type ID",
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "acuity_scheduling-book-appointment",
"configured_props": {
"acuity_scheduling": { "authProvisionId": "apn_xxxxxxx" },
"datetime": "Datetime",
"appointmentTypeId": "Appointment Type ID"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "acuity_scheduling",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "acuity_scheduling-book-appointment",
arguments: {
datetime: "Datetime",
appointmentTypeId: "Appointment Type ID",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
datetime Datetime | string | Date and time of the appointment. E.g. 2016-02-03T14:00:00-0800 Required |
appointmentTypeId Appointment Type ID | string | The type of appointment to book Required Dynamic |
firstName First Name | string | First name of the client Required |
lastName Last Name | string | Last name of the client Required |
isAdmin Is Admin | boolean | By default appointments are created as if they are being booked by a client. Booking as an admin disables availability and attribute validations, and allows setting the notes attribute. This also requires a valid calendarID to be included in the request. Optional |
email Email | string | Email address of the client Optional |
calendarId Calendar ID | string | The calendar to book the appointment on. If not provided we'll try to find an available calendar automatically. Optional Dynamic |
phone Phone | string | Phone number of the client Optional |
timezone Timezone | string | Timezone of the client. E.g. America/Los_Angeles Optional |
certificate Certificate | string | Package or coupon certificate code Optional Dynamic |
notes Notes | string | Notes to be added to the appointment. Settable when booking as an admin. Optional |
labelId Label ID | string | Label to be added to the appointment Optional Dynamic |
smsOptin SMS Opt-in | boolean | Indicates whether the client has explicitly given their permission to receive SMS messages. This parameter is only applicable to Appointments with an Appointment Type that requires Opt In and can be omitted (and will be ignored) for all other Appointments. If omitted or set to false on an applicable Appointment, an SMS reminder will not be sent. For more information on SMS Opt In settings for Appointment Types, see the article in our Knowledge Base. Optional |
formId Form ID | string | Enter form fields for the appointment. See the documentation for more information on setting form fields. Optional Dynamic |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- acuity_scheduling-book-appointment
- Version
- 0.0.2
- App
- Acuity Scheduling
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗