# Appointo

Appointo is an appointment booking application designed for Shopify stores, enabling businesses to integrate online booking systems seamlessly into their websites without any coding required.

- **Category:** scheduling & booking
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 11
- **Triggers:** 0
- **Slug:** `APPOINTO`
- **Version:** 20260227_00

## Tools

### Authenticate Appointo API Token

**Slug:** `APPOINTO_AUTHENTICATE`

Tool to authenticate with the Appointo API by validating the APPOINTO-TOKEN header. Use when verifying the token before subsequent API calls.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Cancel Booking

**Slug:** `APPOINTO_CANCEL_BOOKING`

Tool to cancel a booking or selected customers. Use when you need to revoke an entire booking or individual attendees after verifying booking details. Use after retrieving booking information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `booking_id` | integer | Yes | Booking ID to cancel |
| `customer_ids` | array | No | Array of customer IDs to cancel; omit to cancel entire booking |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Booking

**Slug:** `APPOINTO_CREATE_BOOKING`

Tool to create a new booking. Use when scheduling a customer booking after confirming appointment availability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the customer. |
| `email` | string | Yes | Email of the customer. |
| `phone` | string | No | Phone number of the customer. |
| `quantity` | integer | No | Number of bookings (default is 1). |
| `timestring` | string | Yes | ISO 8601 datetime string for the desired timeslot. |
| `appointment_id` | integer | Yes | Appointo Appointment Id. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Appointment Availability

**Slug:** `APPOINTO_GET_APPOINTMENT_AVAILABILITY`

Tool to get calendar availability for a specific appointment. Use when you need to fetch available time slots for an appointment within a date range.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `end_date` | string | No | End date for availability range in YYYY-MM-DD format |
| `start_date` | string | Yes | Start date for availability range in YYYY-MM-DD format |
| `appointment_id` | integer | Yes | Appointment identifier |
| `impersonated_tms` | array | No | List of team member IDs to filter availability |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Appointments

**Slug:** `APPOINTO_LIST_APPOINTMENTS`

Tool to list appointments. Use when fetching appointments with optional filters and pagination after confirming a valid API token.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Number of items per page (default and maximum is 100). |
| `offset` | integer | No | Pagination offset, zero-based index (default is 0). |
| `product_id` | integer | No | Filter to fetch appointments for a specific product by its ID. |
| `appointment_id` | integer | No | Filter to fetch a single appointment by its ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Bookings

**Slug:** `APPOINTO_LIST_BOOKINGS`

Tool to list bookings. Use when you need to fetch bookings filtered by status, paging, or search term.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of bookings to return (1-100). |
| `offset` | integer | No | Number of bookings to skip for pagination. |
| `status` | string ("past" | "upcoming") | No | Filter bookings by status: 'past' or 'upcoming'. |
| `booking_id` | integer | No | Fetch a single booking by its ID. |
| `search_term` | string | No | Search bookings by product name, customer name, email, phone, or order name. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Products

**Slug:** `APPOINTO_LIST_PRODUCTS`

Tool to fetch all available products. Use when browsing products with optional paging and search. Call after authenticating with Appointo API.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of products to return (max 100; default server-side is 100) |
| `offset` | string | No | Pagination offset token returned by a previous call |
| `search_term` | string | No | Filter products by name (case-insensitive substring match) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Subscription Contracts

**Slug:** `APPOINTO_LIST_SUBSCRIPTION_CONTRACTS`

Tool to list subscription contracts. Use when retrieving contracts with optional search after confirming a valid API token.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `search_term` | string | No | Search by product name, variant name, order number, or customer name. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Reschedule Booking

**Slug:** `APPOINTO_RESCHEDULE_BOOKING`

Tool to reschedule an existing booking to a new timeslot. Use after confirming new timeslot availability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `override` | boolean | No | Force reschedule even if the timeslot is occupied. |
| `booking_id` | integer | Yes | Booking ID to reschedule. |
| `timestring` | string | Yes | New timeslot timestamp in ISO 8601 format. |
| `customer_ids` | array | No | List of customer IDs to reschedule; if omitted, the entire booking is rescheduled. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Booking Buffers

**Slug:** `APPOINTO_UPDATE_BOOKING`

Tool to update buffer times for an existing booking. Use after confirming new buffer durations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `booking_id` | integer | Yes | Booking ID to update |
| `end_buffer_time` | integer | No | End buffer time in minutes, must be greater than 0 |
| `start_buffer_time` | integer | No | Start buffer time in minutes, must be greater than 0 |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upsert Appointment Configuration

**Slug:** `APPOINTO_UPSERT_APPOINTMENT_CONFIG`

Tool to upsert availability config for an appointment. Use when setting or updating appointment availability settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `config` | object | Yes | Appointment configuration settings |
| `override` | array | Yes | Date-specific overrides |
| `appointment_id` | integer | Yes | ID of the appointment to configure |
| `availabilities` | array | Yes | Weekly availability definitions |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
