# Zoho Bookings

> Appointment scheduling. Find free slots, book, reschedule and cancel appointments, and manage workspaces, services and staff.

App · Calendars · 14 actions. Web page: https://docs.lodol.com/docs/integrations/zoho-bookings

## Actions

### Book an appointment

Book a one-on-one appointment for a customer with a staff member. Zoho emails the customer a confirmation.

**Inputs**

- Service (`service_id`, text, required): The service (event type). Pick it from the list or enter its id.
- Staff member (`staff_id`, text, required): Who the appointment is with. Pick them from the list or enter an id.
- Date (`start_date`, date, required): The day of the appointment.
- Start time (`start_time`, time, required): When it starts, in the workspace's time zone, for example a slot from 'Get available slots'.
- Customer name (`customer_name`, text, required): The customer's name.
- Customer email (`customer_email`, text, required): The customer's email address.
- Customer phone (`customer_phone`, text): Optional. The customer's phone number.
- Time zone (`timezone`, text): Optional. The time zone the start time is in, for example Europe/London. Blank means the workspace's.
- Notes (`notes`, text): Optional. Notes on the appointment.
- Custom booking fields (`additional_fields`, object): Optional. Values for the booking form's custom fields, keyed by the field's label.

**Outputs**: An appointment.

- `booked_on` (text): When it was booked.
- `booking_id` (text): The booking id, for example #AN-00014.
- `booking_type` (text): For example appointment.
- `cost` (text): The cost.
- `cost_paid` (text): The amount paid.
- `currency` (text): The currency.
- `customer_booking_start_time` (text): Start in the customer's time zone.
- `customer_booking_time_zone` (text): The customer's time zone.
- `customer_contact_no` (text): The customer's phone number.
- `customer_email` (text): The customer's email address.
- `customer_more_info` (object): Custom booking fields the customer filled in.
- `customer_name` (text): The customer's name.
- `due` (text): The amount due.
- `duration` (text): How long it lasts, for example '30 mins'.
- `end_time` (text): End, as dd-MMM-yyyy HH:mm:ss.
- `iso_end_time` (text): End as ISO 8601, where Zoho returns it.
- `iso_start_time` (text): Start as ISO 8601, where Zoho returns it.
- `message` (text): Zoho's confirmation, when it returned no appointment.
- `notes` (text): The appointment notes.
- `service_id` (text): The service id.
- `service_name` (text): The service name.
- `staff_email` (text): The staff member's email address.
- `staff_id` (text): The staff id.
- `staff_name` (text): The staff member's name.
- `start_time` (text): Start, as dd-MMM-yyyy HH:mm:ss in the workspace time zone.
- `status` (text): upcoming, cancel, ongoing, pending, completed, no_show ...
- `summary_url` (text): The appointment summary page address.
- `time_zone` (text): The time zone of start_time and end_time.
- `workspace_id` (text): The workspace id.
- `workspace_name` (text): The workspace name.

**Example output**

```json
{
  "booked_on": "01-Oct-2026 09:00:00",
  "booking_id": "#LD-00001",
  "booking_type": "appointment",
  "cost": "0",
  "cost_paid": "0",
  "currency": "USD",
  "customer_booking_start_time": "2026-10-12 10:00:00",
  "customer_booking_time_zone": "Europe/London",
  "customer_contact_no": "",
  "customer_email": "grace@example.com",
  "customer_more_info": {},
  "customer_name": "Grace Hopper",
  "due": "0",
  "duration": "30 mins",
  "end_time": "12-Oct-2026 10:30:00",
  "notes": "",
  "service_id": "4050029000000039016",
  "service_name": "Consultation",
  "staff_id": "4050029000000039011",
  "staff_name": "Ada Lovelace",
  "start_time": "12-Oct-2026 10:00:00",
  "status": "upcoming",
  "summary_url": "https://lodol.zohobookings.com/#/summary",
  "time_zone": "Europe/London",
  "workspace_id": "4050029000000039001",
  "workspace_name": "Lodol Demo"
}
```

### Cancel an appointment

Cancel an appointment. Zoho emails the customer, and a cancelled appointment cannot be restored.

**Inputs**

- Booking ID (`booking_id`, text, required): The appointment's booking id, for example #AN-00014, from 'Book an appointment' or 'List appointments'.

**Outputs**: An appointment.

- `booked_on` (text): When it was booked.
- `booking_id` (text): The booking id, for example #AN-00014.
- `booking_type` (text): For example appointment.
- `cost` (text): The cost.
- `cost_paid` (text): The amount paid.
- `currency` (text): The currency.
- `customer_booking_start_time` (text): Start in the customer's time zone.
- `customer_booking_time_zone` (text): The customer's time zone.
- `customer_contact_no` (text): The customer's phone number.
- `customer_email` (text): The customer's email address.
- `customer_more_info` (object): Custom booking fields the customer filled in.
- `customer_name` (text): The customer's name.
- `due` (text): The amount due.
- `duration` (text): How long it lasts, for example '30 mins'.
- `end_time` (text): End, as dd-MMM-yyyy HH:mm:ss.
- `iso_end_time` (text): End as ISO 8601, where Zoho returns it.
- `iso_start_time` (text): Start as ISO 8601, where Zoho returns it.
- `message` (text): Zoho's confirmation, when it returned no appointment.
- `notes` (text): The appointment notes.
- `service_id` (text): The service id.
- `service_name` (text): The service name.
- `staff_email` (text): The staff member's email address.
- `staff_id` (text): The staff id.
- `staff_name` (text): The staff member's name.
- `start_time` (text): Start, as dd-MMM-yyyy HH:mm:ss in the workspace time zone.
- `status` (text): upcoming, cancel, ongoing, pending, completed, no_show ...
- `summary_url` (text): The appointment summary page address.
- `time_zone` (text): The time zone of start_time and end_time.
- `workspace_id` (text): The workspace id.
- `workspace_name` (text): The workspace name.

**Example output**

```json
{
  "booked_on": "01-Oct-2026 09:00:00",
  "booking_id": "#LD-00001",
  "booking_type": "appointment",
  "cost": "0",
  "cost_paid": "0",
  "currency": "USD",
  "customer_booking_start_time": "2026-10-12 10:00:00",
  "customer_booking_time_zone": "Europe/London",
  "customer_contact_no": "",
  "customer_email": "grace@example.com",
  "customer_more_info": {},
  "customer_name": "Grace Hopper",
  "due": "0",
  "duration": "30 mins",
  "end_time": "12-Oct-2026 10:30:00",
  "notes": "",
  "service_id": "4050029000000039016",
  "service_name": "Consultation",
  "staff_id": "4050029000000039011",
  "staff_name": "Ada Lovelace",
  "start_time": "12-Oct-2026 10:00:00",
  "status": "cancel",
  "summary_url": "https://lodol.zohobookings.com/#/summary",
  "time_zone": "Europe/London",
  "workspace_id": "4050029000000039001",
  "workspace_name": "Lodol Demo"
}
```

### Edit appointment notes and fields

Change an appointment's notes, its custom booking fields, or both.

**Inputs**

- Booking ID (`booking_id`, text, required): The appointment's booking id, for example #AN-00014, from 'Book an appointment' or 'List appointments'.
- Notes (`notes`, text): Optional. The new notes.
- Custom booking fields (`custom_fields`, object): Optional. New values for custom booking fields, keyed by the field's label.

**Outputs**: The appointment update.

- `booking_id` (text): The booking id.
- `message` (text): Zoho's confirmation.
- `updated` (list): The fields that were sent.

**Example output**

```json
{
  "booking_id": "#LD-00001",
  "message": "Appointment details edited successfully",
  "updated": [
    "notes"
  ]
}
```

### Get an appointment

Get an appointment's time, customer, staff, status and cost.

**Inputs**

- Booking ID (`booking_id`, text, required): The appointment's booking id, for example #AN-00014, from 'Book an appointment' or 'List appointments'.

**Outputs**: An appointment.

- `booked_on` (text): When it was booked.
- `booking_id` (text): The booking id, for example #AN-00014.
- `booking_type` (text): For example appointment.
- `cost` (text): The cost.
- `cost_paid` (text): The amount paid.
- `currency` (text): The currency.
- `customer_booking_start_time` (text): Start in the customer's time zone.
- `customer_booking_time_zone` (text): The customer's time zone.
- `customer_contact_no` (text): The customer's phone number.
- `customer_email` (text): The customer's email address.
- `customer_more_info` (object): Custom booking fields the customer filled in.
- `customer_name` (text): The customer's name.
- `due` (text): The amount due.
- `duration` (text): How long it lasts, for example '30 mins'.
- `end_time` (text): End, as dd-MMM-yyyy HH:mm:ss.
- `iso_end_time` (text): End as ISO 8601, where Zoho returns it.
- `iso_start_time` (text): Start as ISO 8601, where Zoho returns it.
- `message` (text): Zoho's confirmation, when it returned no appointment.
- `notes` (text): The appointment notes.
- `service_id` (text): The service id.
- `service_name` (text): The service name.
- `staff_email` (text): The staff member's email address.
- `staff_id` (text): The staff id.
- `staff_name` (text): The staff member's name.
- `start_time` (text): Start, as dd-MMM-yyyy HH:mm:ss in the workspace time zone.
- `status` (text): upcoming, cancel, ongoing, pending, completed, no_show ...
- `summary_url` (text): The appointment summary page address.
- `time_zone` (text): The time zone of start_time and end_time.
- `workspace_id` (text): The workspace id.
- `workspace_name` (text): The workspace name.

**Example output**

```json
{
  "booked_on": "01-Oct-2026 09:00:00",
  "booking_id": "#LD-00001",
  "booking_type": "appointment",
  "cost": "0",
  "cost_paid": "0",
  "currency": "USD",
  "customer_booking_start_time": "2026-10-12 10:00:00",
  "customer_booking_time_zone": "Europe/London",
  "customer_contact_no": "",
  "customer_email": "grace@example.com",
  "customer_more_info": {},
  "customer_name": "Grace Hopper",
  "due": "0",
  "duration": "30 mins",
  "end_time": "12-Oct-2026 10:30:00",
  "notes": "",
  "service_id": "4050029000000039016",
  "service_name": "Consultation",
  "staff_id": "4050029000000039011",
  "staff_name": "Ada Lovelace",
  "start_time": "12-Oct-2026 10:00:00",
  "status": "upcoming",
  "summary_url": "https://lodol.zohobookings.com/#/summary",
  "time_zone": "Europe/London",
  "workspace_id": "4050029000000039001",
  "workspace_name": "Lodol Demo"
}
```

### Get available slots

List the free start times for a service with a staff member on a day, or on the first day with any within the next few days.

**Inputs**

- Service (`service_id`, text, required): The service (event type). Pick it from the list or enter its id.
- Staff member (`staff_id`, text, required): Who the appointment is with. Pick them from the list or enter an id.
- Date (`selected_date`, date, required): The day to check (the first day, when searching ahead).
- Days to search (`search_days`, number): Optional. Check up to this many days from the date, 1 to 14, and return the first day that has free slots. Each day checked is one API call. Default 1. From 1 to 14.

**Outputs**: Free start times.

- `count` (number): How many slots.
- `date` (text): The day the slots are on (YYYY-MM-DD).
- `days_checked` (number): How many days were checked.
- `message` (text): Why there are no slots, when there are none.
- `slots` (list): Free start times on that day, for example 10:00 or 10:00 AM.
- `time_zone` (text): The time zone the slots are in.

**Example output**

```json
{
  "count": 3,
  "date": "2026-10-12",
  "days_checked": 1,
  "message": "",
  "slots": [
    "10:00",
    "10:30",
    "11:00"
  ],
  "time_zone": "Europe/London"
}
```

### List appointments

List appointments, filtered by dates, service, staff, status or customer. With no dates, Zoho lists today's.

**Inputs**

- From (`from_date`, date): Optional. Appointments starting on or after this day.
- To (`to_date`, date): Optional. Appointments starting on or before this day.
- Service (`service_id`, text): Optional. Only this service.
- Staff member (`staff_id`, text): Optional. Only this staff member.
- Status (`status`, text): Optional. Only appointments with this status. One of: `UPCOMING`, `CANCEL` (Cancelled), `ONGOING`, `PENDING`, `COMPLETED`, `NO_SHOW` (No-show), `PENDING_PAYMENT` (Pending payment), `PAYMENT_FAILURE` (Payment failed).
- Customer name contains (`customer_name`, text): Optional.
- Customer email contains (`customer_email`, text): Optional.
- Customer phone contains (`customer_phone`, text): Optional.
- Include custom booking fields (`include_customer_details`, true/false): Optional. Also return what customers filled in on the booking form (Zoho then returns fewer per page). Default: `false`.
- Page (`page`, number): Optional. The page to return, from 1. At least 1.
- Page size (`per_page`, number): Optional. How many per page, 1 to 100 (default 50). From 1 to 100.

**Outputs**: The appointments.

- `appointments` (list): The appointments.
- `count` (number): How many were returned.
- `next_page_available` (true/false): Whether there is another page.
- `page` (number): The page number.

**Example output**

```json
{
  "appointments": [
    {
      "booked_on": "01-Oct-2026 09:00:00",
      "booking_id": "#LD-00001",
      "booking_type": "appointment",
      "cost": "0",
      "cost_paid": "0",
      "currency": "USD",
      "customer_booking_start_time": "2026-10-12 10:00:00",
      "customer_booking_time_zone": "Europe/London",
      "customer_contact_no": "",
      "customer_email": "grace@example.com",
      "customer_more_info": {},
      "customer_name": "Grace Hopper",
      "due": "0",
      "duration": "30 mins",
      "end_time": "12-Oct-2026 10:30:00",
      "notes": "",
      "service_id": "4050029000000039016",
      "service_name": "Consultation",
      "staff_id": "4050029000000039011",
      "staff_name": "Ada Lovelace",
      "start_time": "12-Oct-2026 10:00:00",
      "status": "upcoming",
      "summary_url": "https://lodol.zohobookings.com/#/summary",
      "time_zone": "Europe/London",
      "workspace_id": "4050029000000039001",
      "workspace_name": "Lodol Demo"
    }
  ],
  "count": 1,
  "next_page_available": false,
  "page": 1
}
```

### List services

List a workspace's services (event types) with their duration, price and assigned staff.

**Inputs**

- Workspace (`workspace_id`, text, required): The workspace. Pick it from the list or enter its id.
- Service (`service_id`, text): Optional. Only this service.
- Staff member (`staff_id`, text): Optional. Only this staff member.

**Outputs**: The services.

- `count` (number): How many were returned.
- `services` (list): The services.

**Example output**

```json
{
  "count": 1,
  "services": [
    {
      "assigned_staffs": [
        "4050029000000039011"
      ],
      "assigned_workspace": "4050029000000039001",
      "buffertime": "0 mins",
      "currency": "USD",
      "description": "",
      "duration": "30 mins",
      "embed_url": "https://lodol.zohobookings.com/#/service",
      "id": "4050029000000039016",
      "let_customer_select_staff": true,
      "name": "Consultation",
      "price": 0,
      "service_type": "APPOINTMENT"
    }
  ]
}
```

### List staff

List staff members with their email, role and the services and workspaces they are assigned to.

**Inputs**

- Workspace (`workspace_id`, text): Optional. Only this workspace.
- Service (`service_id`, text): Optional. Only this service.
- Staff member (`staff_id`, text): Optional. Only this staff member.
- Email contains (`staff_email`, text): Optional. Only staff whose email contains this.

**Outputs**: The staff.

- `count` (number): How many were returned.
- `staff` (list): The staff members.

**Example output**

```json
{
  "count": 1,
  "staff": [
    {
      "assigned_services": [
        "4050029000000039016"
      ],
      "assigned_workspaces": [
        "4050029000000039001"
      ],
      "designation": "",
      "email": "ada@example.com",
      "id": "4050029000000039011",
      "name": "Ada Lovelace",
      "phone_number": "",
      "role": "Super Admin"
    }
  ]
}
```

### List workspaces

List the account's workspaces with their ids and booking pages.

**Inputs**

- Workspace (`workspace_id`, text): Optional. Only this workspace.

**Outputs**: The workspaces.

- `count` (number): How many were returned.
- `workspaces` (list): The workspaces.

**Example output**

```json
{
  "count": 1,
  "workspaces": [
    {
      "embed_url": "https://lodol.zohobookings.com/#/workspace",
      "id": "4050029000000039001",
      "name": "Lodol Demo"
    }
  ]
}
```

### Mark an appointment as a no-show

Record that the customer did not turn up.

**Inputs**

- Booking ID (`booking_id`, text, required): The appointment's booking id, for example #AN-00014, from 'Book an appointment' or 'List appointments'.

**Outputs**: An appointment.

- `booked_on` (text): When it was booked.
- `booking_id` (text): The booking id, for example #AN-00014.
- `booking_type` (text): For example appointment.
- `cost` (text): The cost.
- `cost_paid` (text): The amount paid.
- `currency` (text): The currency.
- `customer_booking_start_time` (text): Start in the customer's time zone.
- `customer_booking_time_zone` (text): The customer's time zone.
- `customer_contact_no` (text): The customer's phone number.
- `customer_email` (text): The customer's email address.
- `customer_more_info` (object): Custom booking fields the customer filled in.
- `customer_name` (text): The customer's name.
- `due` (text): The amount due.
- `duration` (text): How long it lasts, for example '30 mins'.
- `end_time` (text): End, as dd-MMM-yyyy HH:mm:ss.
- `iso_end_time` (text): End as ISO 8601, where Zoho returns it.
- `iso_start_time` (text): Start as ISO 8601, where Zoho returns it.
- `message` (text): Zoho's confirmation, when it returned no appointment.
- `notes` (text): The appointment notes.
- `service_id` (text): The service id.
- `service_name` (text): The service name.
- `staff_email` (text): The staff member's email address.
- `staff_id` (text): The staff id.
- `staff_name` (text): The staff member's name.
- `start_time` (text): Start, as dd-MMM-yyyy HH:mm:ss in the workspace time zone.
- `status` (text): upcoming, cancel, ongoing, pending, completed, no_show ...
- `summary_url` (text): The appointment summary page address.
- `time_zone` (text): The time zone of start_time and end_time.
- `workspace_id` (text): The workspace id.
- `workspace_name` (text): The workspace name.

**Example output**

```json
{
  "booked_on": "01-Oct-2026 09:00:00",
  "booking_id": "#LD-00001",
  "booking_type": "appointment",
  "cost": "0",
  "cost_paid": "0",
  "currency": "USD",
  "customer_booking_start_time": "2026-10-12 10:00:00",
  "customer_booking_time_zone": "Europe/London",
  "customer_contact_no": "",
  "customer_email": "grace@example.com",
  "customer_more_info": {},
  "customer_name": "Grace Hopper",
  "due": "0",
  "duration": "30 mins",
  "end_time": "12-Oct-2026 10:30:00",
  "notes": "",
  "service_id": "4050029000000039016",
  "service_name": "Consultation",
  "staff_id": "4050029000000039011",
  "staff_name": "Ada Lovelace",
  "start_time": "12-Oct-2026 10:00:00",
  "status": "no_show",
  "summary_url": "https://lodol.zohobookings.com/#/summary",
  "time_zone": "Europe/London",
  "workspace_id": "4050029000000039001",
  "workspace_name": "Lodol Demo"
}
```

### Mark an appointment completed

Mark an appointment as completed.

**Inputs**

- Booking ID (`booking_id`, text, required): The appointment's booking id, for example #AN-00014, from 'Book an appointment' or 'List appointments'.

**Outputs**: An appointment.

- `booked_on` (text): When it was booked.
- `booking_id` (text): The booking id, for example #AN-00014.
- `booking_type` (text): For example appointment.
- `cost` (text): The cost.
- `cost_paid` (text): The amount paid.
- `currency` (text): The currency.
- `customer_booking_start_time` (text): Start in the customer's time zone.
- `customer_booking_time_zone` (text): The customer's time zone.
- `customer_contact_no` (text): The customer's phone number.
- `customer_email` (text): The customer's email address.
- `customer_more_info` (object): Custom booking fields the customer filled in.
- `customer_name` (text): The customer's name.
- `due` (text): The amount due.
- `duration` (text): How long it lasts, for example '30 mins'.
- `end_time` (text): End, as dd-MMM-yyyy HH:mm:ss.
- `iso_end_time` (text): End as ISO 8601, where Zoho returns it.
- `iso_start_time` (text): Start as ISO 8601, where Zoho returns it.
- `message` (text): Zoho's confirmation, when it returned no appointment.
- `notes` (text): The appointment notes.
- `service_id` (text): The service id.
- `service_name` (text): The service name.
- `staff_email` (text): The staff member's email address.
- `staff_id` (text): The staff id.
- `staff_name` (text): The staff member's name.
- `start_time` (text): Start, as dd-MMM-yyyy HH:mm:ss in the workspace time zone.
- `status` (text): upcoming, cancel, ongoing, pending, completed, no_show ...
- `summary_url` (text): The appointment summary page address.
- `time_zone` (text): The time zone of start_time and end_time.
- `workspace_id` (text): The workspace id.
- `workspace_name` (text): The workspace name.

**Example output**

```json
{
  "booked_on": "01-Oct-2026 09:00:00",
  "booking_id": "#LD-00001",
  "booking_type": "appointment",
  "cost": "0",
  "cost_paid": "0",
  "currency": "USD",
  "customer_booking_start_time": "2026-10-12 10:00:00",
  "customer_booking_time_zone": "Europe/London",
  "customer_contact_no": "",
  "customer_email": "grace@example.com",
  "customer_more_info": {},
  "customer_name": "Grace Hopper",
  "due": "0",
  "duration": "30 mins",
  "end_time": "12-Oct-2026 10:30:00",
  "notes": "",
  "service_id": "4050029000000039016",
  "service_name": "Consultation",
  "staff_id": "4050029000000039011",
  "staff_name": "Ada Lovelace",
  "start_time": "12-Oct-2026 10:00:00",
  "status": "completed",
  "summary_url": "https://lodol.zohobookings.com/#/summary",
  "time_zone": "Europe/London",
  "workspace_id": "4050029000000039001",
  "workspace_name": "Lodol Demo"
}
```

### Reschedule an appointment

Move an appointment to a new start time. Zoho emails the customer the change.

**Inputs**

- Booking ID (`booking_id`, text, required): The appointment's booking id, for example #AN-00014, from 'Book an appointment' or 'List appointments'.
- Date (`start_date`, date, required): The day of the appointment.
- Start time (`start_time`, time, required): When it starts, in the workspace's time zone, for example a slot from 'Get available slots'.
- New staff member (`staff_id`, text): Optional. Hand it to another staff member (Basic plan and up).

**Outputs**: An appointment.

- `booked_on` (text): When it was booked.
- `booking_id` (text): The booking id, for example #AN-00014.
- `booking_type` (text): For example appointment.
- `cost` (text): The cost.
- `cost_paid` (text): The amount paid.
- `currency` (text): The currency.
- `customer_booking_start_time` (text): Start in the customer's time zone.
- `customer_booking_time_zone` (text): The customer's time zone.
- `customer_contact_no` (text): The customer's phone number.
- `customer_email` (text): The customer's email address.
- `customer_more_info` (object): Custom booking fields the customer filled in.
- `customer_name` (text): The customer's name.
- `due` (text): The amount due.
- `duration` (text): How long it lasts, for example '30 mins'.
- `end_time` (text): End, as dd-MMM-yyyy HH:mm:ss.
- `iso_end_time` (text): End as ISO 8601, where Zoho returns it.
- `iso_start_time` (text): Start as ISO 8601, where Zoho returns it.
- `message` (text): Zoho's confirmation, when it returned no appointment.
- `notes` (text): The appointment notes.
- `service_id` (text): The service id.
- `service_name` (text): The service name.
- `staff_email` (text): The staff member's email address.
- `staff_id` (text): The staff id.
- `staff_name` (text): The staff member's name.
- `start_time` (text): Start, as dd-MMM-yyyy HH:mm:ss in the workspace time zone.
- `status` (text): upcoming, cancel, ongoing, pending, completed, no_show ...
- `summary_url` (text): The appointment summary page address.
- `time_zone` (text): The time zone of start_time and end_time.
- `workspace_id` (text): The workspace id.
- `workspace_name` (text): The workspace name.

**Example output**

```json
{
  "booked_on": "01-Oct-2026 09:00:00",
  "booking_id": "#LD-00001",
  "booking_type": "appointment",
  "cost": "0",
  "cost_paid": "0",
  "currency": "USD",
  "customer_booking_start_time": "2026-10-12 10:00:00",
  "customer_booking_time_zone": "Europe/London",
  "customer_contact_no": "",
  "customer_email": "grace@example.com",
  "customer_more_info": {},
  "customer_name": "Grace Hopper",
  "due": "0",
  "duration": "30 mins",
  "end_time": "13-Oct-2026 11:30:00",
  "notes": "",
  "service_id": "4050029000000039016",
  "service_name": "Consultation",
  "staff_id": "4050029000000039011",
  "staff_name": "Ada Lovelace",
  "start_time": "13-Oct-2026 11:00:00",
  "status": "upcoming",
  "summary_url": "https://lodol.zohobookings.com/#/summary",
  "time_zone": "Europe/London",
  "workspace_id": "4050029000000039001",
  "workspace_name": "Lodol Demo"
}
```

### Update a service

Change a one-on-one service's name, duration, cost, buffers, description, staff or status. Only the fields given are changed.

**Inputs**

- Service (`service_id`, text, required): The service (event type). Pick it from the list or enter its id.
- Name (`name`, text): Optional. The new name.
- Duration (minutes) (`duration`, number): Optional. How long an appointment lasts. At least 1.
- Cost (`cost`, number): Optional. The price, in the workspace's currency. At least 0.
- Buffer before (minutes) (`pre_buffer`, number): Optional. Time kept free before each appointment. At least 0.
- Buffer after (minutes) (`post_buffer`, number): Optional. Time kept free after each appointment. At least 0.
- Description (`description`, text): Optional. The new description.
- Staff (`assigned_staff`, list): Optional. Who provides the service; this replaces the current list.
- Status (`status`, text): Optional. An inactive service cannot be booked. Leave blank to keep the current status. One of: `active`, `in_active` (Inactive).

**Outputs**: The service update.

- `message` (text): Zoho's confirmation.
- `service_id` (text): The service id.
- `updated` (list): The fields that were sent.

**Example output**

```json
{
  "message": "Service edited successfully.",
  "service_id": "4050029000000039016",
  "updated": [
    "name"
  ]
}
```

### Update a workspace

Rename a workspace, change its description, or change its booking policies. Only the fields given are changed.

**Inputs**

- Workspace (`workspace_id`, text, required): The workspace. Pick it from the list or enter its id.
- Name (`name`, text): Optional. 2 to 50 characters, without | / , ? { } < > : ; " ' ` or \.
- Description (`description`, text): Optional. Up to 2000 characters.
- Slot interval (minutes) (`scheduling_interval`, number): Optional. How far apart the offered start times are: a multiple of 5 from 5 to 1435. From 5 to 1435.
- Minimum notice (minutes) (`minimum_booking_notice`, number): Optional. How soon before the start a customer can still book, a multiple of 5. At least 0.
- Maximum notice (minutes) (`maximum_booking_notice`, number): Optional. How far ahead a customer can book, a multiple of 5. At least 0.
- Cancel or reschedule notice (minutes) (`cancel_reschedule_notice`, number): Optional. How soon before the start a customer can still cancel or reschedule, a multiple of 5. At least 0.
- Customers can cancel (`allow_cancel`, text): Optional. Leave blank to keep the current setting. One of: `true` (Yes), `false` (No).
- Customers pick the staff member (`customer_select_staff`, text): Optional. Leave blank to keep the current setting. One of: `true` (Yes), `false` (No).
- Booking page language (`language`, text): Optional. Leave blank to keep the current one. One of: `userlanguage` (The customer's own language), `en` (English), `fr` (French), `de` (German), `es` (Spanish), `nl` (Dutch), `pt` (Portuguese), `ar` (Arabic), `ja` (Japanese), `zh` (Chinese), and 6 more.

**Outputs**: The workspace update.

- `message` (text): Zoho's confirmation.
- `updated` (list): The fields that were sent.
- `workspace_id` (text): The workspace id.

**Example output**

```json
{
  "message": "Workspace updated successfully.",
  "updated": [
    "name"
  ],
  "workspace_id": "4050029000000039001"
}
```
