actions/find-appointments-by-client-info/find-appointments-by-client-info.mjs
import acuityScheduling from "../../acuity_scheduling.app.mjs"; import { parseObject } from "../../common/utils.mjs"; export default { key: "acuity_scheduling-find-appointments-by-client-info", name: "Find Appointments by Client Info", description: "Retrieves existing appointments using the client's information, allowing you to track all the appointments associated with a specific client. [See the documentation](https://developers.acuityscheduling.com/reference/get-appointments)", version: "0.0.3", annotations: { destructiveHint: false, openWorldHint: true, readOnlyHint: true, }, type: "action", props: { acuityScheduling, calendarID: { propDefinition: [ acuityScheduling, "calendarId", ], optional: true, }, appointmentTypeID: { propDefinition: [ acuityScheduling, "appointmentTypeId", ], optional: true, }, firstName: { type: "string", label: "First Name", description: "Filter appointments for client first name.", optional: true, }, lastName: { type: "string", label: "Last Name", description: "Filter appointments for client last name.", optional: true, }, email: { type: "string", label: "Email", description: "Filter appointments for client email address.", optional: true, }, phone: { type: "string", label: "Phone", description: "Filter appointments for client phone.", optional: true, }, customFields: { type: "object", label: "Custom Field", description: "Filter appointments matching a particular custom intake form field **eg. ?field:1234=Hello**", optional: true, }, showAll: { type: "boolean", label: "Show All", description: "To retrieve both canceled and scheduled appointments.", optional: true, }, }, async run({ $ }) { let params = { calendarID: this.calendarID, appointmentTypeID: this.appointmentTypeID, firstName: this.firstName, lastName: this.lastName, email: this.email, phone: this.phone, showAll: this.showAll, }; if (this.customFields) { params = { ...params, ...parseObject(this.customFields), }; } const appointments = await this.acuityScheduling.listAppointments({ $, params, }); $.export("$summary", `Found ${appointments.length} appointments for the search!`); return appointments; }, };