# Zoho Bookings Integration via LowCodeAPI

## Overview

Appointment scheduling

## Base Endpoint

```
https://api.lowcodeapi.com/zohobookings/
```

## Authentication

LowCodeAPI handles authentication automatically. You only need to:

1. **Sign up** at [Zoho Bookings](https://www.zoho.com/bookings)
2. **Get your credentials** from [credential page](https://accounts.zoho.com/developerconsole)
3. **Connect your account** in LowCodeAPI dashboard
4. **Use your `api_token`** in all requests

**Auth Type**: OAUTH2.0

## API Categories

- **Bookings** - 10 endpoints

## Common Endpoints

### Category: Bookings

#### Book Appointment

**Method**: `POST` | **LowCodeAPI Path**: `/bookings/v1/json/appointment`

**Full URL**:
```
https://api.lowcodeapi.com/zohobookings/bookings/v1/json/appointment?api_token={api_token}
```

**Description**: Book an appointment for a customer for a desired service

**Request Body**:
```json
{
  "service_id": "<number>",
  "group_id": "<number>",
  "resource_id": "<number>",
  "staff_id": "<number>",
  "from_time": "<string>",
  "customer_details": "<string>",
  "additional_fields": "<object>"
}
```

---

#### Get Appointment

**Method**: `GET` | **LowCodeAPI Path**: `/bookings/v1/json/getappointment`

**Full URL**:
```
https://api.lowcodeapi.com/zohobookings/bookings/v1/json/getappointment?booking_id={booking_id}&api_token={api_token}
```

**Description**: Get details of an appointment.

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`booking_id` | string | Yes | The unique id of the previously booked appointment |

---

#### Update Appointment

**Method**: `POST` | **LowCodeAPI Path**: `/bookings/v1/json/updateappointment`

**Full URL**:
```
https://api.lowcodeapi.com/zohobookings/bookings/v1/json/updateappointment?api_token={api_token}
```

**Description**: Update the status of a booking

**Request Body**:
```json
{
  "booking_id": "<string>",
  "action": "<string>"
}
```

---

#### Reschedule Appointment

**Method**: `POST` | **LowCodeAPI Path**: `/bookings/v1/json/rescheduleappointment`

**Full URL**:
```
https://api.lowcodeapi.com/zohobookings/bookings/v1/json/rescheduleappointment?api_token={api_token}
```

**Description**: Reschedule an appointment to a different time or to a different staff

**Request Body**:
```json
{
  "booking_id": "<string>",
  "staff_id": "<string>",
  "group_id": "<string>",
  "start_time": "<string>"
}
```

---

#### Fetch Availability

**Method**: `GET` | **LowCodeAPI Path**: `/bookings/v1/json/availableslots`

**Full URL**:
```
https://api.lowcodeapi.com/zohobookings/bookings/v1/json/availableslots?service_id={service_id}&staff_id={staff_id}&group_id={group_id}&selected_date={selected_date}&from_time={from_time}&api_token={api_token}
```

**Description**: Fetch availability of appointments across services

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`service_id` | string | Yes | The unique id of the service for which availability is to be fetched |
|`staff_id` | string | Yes | The unique id of the staff associated with the service for which availability is to be fetched |
|`group_id` | string | Yes | The unique id of the staff group associated with the service for which availability is to be fetched |
|`selected_date` | string | Yes | The date on which services are checked for availability |
|`from_time` | string | Yes | The starting time from which the appointment needs to be booked |

---

#### Add Staff

**Method**: `POST` | **LowCodeAPI Path**: `/bookings/v1/json/addstaff`

**Full URL**:
```
https://api.lowcodeapi.com/zohobookings/bookings/v1/json/addstaff?api_token={api_token}
```

**Description**: Add staff to your Zoho Bookings account

**Request Body**:
```json
{
  "name": "<string>",
  "email": "<string>"
}
```

---

#### Fetch Services

**Method**: `GET` | **LowCodeAPI Path**: `/bookings/v1/json/services`

**Full URL**:
```
https://api.lowcodeapi.com/zohobookings/bookings/v1/json/services?workspace_id={workspace_id}&service_id={service_id}&staff_id={staff_id}&api_token={api_token}
```

**Description**: Fetch all services under a workspace

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`workspace_id` | string | Yes | The unique id of the workspace whose services need to be fetched |
|`service_id` | string | No | The unique id of the service under a specified workspace which needs to be fetched |
|`staff_id` | string | No | The unique id of the staff under a specified service which needs to be fetched |

---

#### Fetch Staff

**Method**: `GET` | **LowCodeAPI Path**: `/bookings/v1/json/staffs`

**Full URL**:
```
https://api.lowcodeapi.com/zohobookings/bookings/v1/json/staffs?staff_id={staff_id}&service_id={service_id}&api_token={api_token}
```

**Description**: Fetch all the staff

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`staff_id` | string | No | The unique id of the staff which must be fetched |
|`service_id` | string | No | The unique id of the staff which must be fetched |

---

#### Fetch Workspaces

**Method**: `GET` | **LowCodeAPI Path**: `/bookings/v1/json/workspaces`

**Full URL**:
```
https://api.lowcodeapi.com/zohobookings/bookings/v1/json/workspaces?workspace_id={workspace_id}&api_token={api_token}
```

**Description**: Fetch details of a workspace



**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`workspace_id` | string | No | The unique id of the workspace which needs to be fetched |

---

#### Fetch Resources

**Method**: `GET` | **LowCodeAPI Path**: `/bookings/v1/json/resources`

**Full URL**:
```
https://api.lowcodeapi.com/zohobookings/bookings/v1/json/resources?resource_id={resource_id}&service_id={service_id}&api_token={api_token}
```

**Description**: Fetch all the resources

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`resource_id` | string | No | The unique id of the workspace which needs to be fetched |
|`service_id` | string | No | The unique id of the service under which resources needs to be fetched |

---

## Complete Endpoint Reference

For a complete list of all 10 endpoints, refer to:
- **OpenAPI Definition**: `https://backend.lowcodeapi.com/zohobookings/definition`
- **Official Provider Documentation**: https://www.zoho.com/bookings/help/api/v1/generate-accesstoken.html