Zoho · Schema
PostappointmentssRequest
Request body schema
AnalyticsCollaborationCRMCustomer ServiceEmailFinanceHuman ResourcesProject ManagementZoho
Properties
| Name | Type | Description |
|---|---|---|
| data | array | data array contains post request body (Required) |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/zoho/main/json-schema/zoho-postappointmentss-request-schema.json",
"title": "PostappointmentssRequest",
"description": "Request body schema",
"x-generated": "2026-10-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/zoho-appointments-s-api-openapi.yml#/components/schemas/PostappointmentssRequest",
"type": "object",
"additionalProperties": false,
"properties": {
"data": {
"type": "array",
"description": "data array contains post request body (Required)",
"items": {
"$ref": "#/$defs/DataNested"
},
"maxItems": 4
}
},
"required": [
"data"
],
"$defs": {
"AppointmentForNested": {
"type": "object",
"additionalProperties": false,
"description": "Contains the name, ID and the module's API name of the customer for whom you are creating the appointment.",
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "name",
"maxLength": 2
},
"id": {
"type": [
"string",
"null"
],
"description": "id",
"maxLength": 18
},
"module": {
"$ref": "#/$defs/ModuleNested",
"description": "module name"
}
}
},
"CreatedByNested": {
"type": "object",
"additionalProperties": false,
"description": "appointment created by",
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "name",
"maxLength": 255
},
"id": {
"type": [
"string",
"null"
],
"description": "id",
"maxLength": 255
},
"email": {
"type": [
"string",
"null"
],
"format": "email",
"description": "email",
"maxLength": 33
}
}
},
"DataNested": {
"type": "object",
"additionalProperties": false,
"description": "data array contains post request body",
"properties": {
"Owner": {
"$ref": "#/$defs/OwnerNested",
"description": "Represents the ID of the service member who will provide the service for this appointment. (Required)"
},
"Address": {
"type": [
"null",
"string"
],
"description": "address where the appointment held ,(this field is mandatory when location is to client address)",
"maxLength": 255
},
"$currency_symbol": {
"type": [
"string",
"null"
],
"description": "currency symbol",
"maxLength": 1
},
"Appointment_Start_Time": {
"type": "string",
"format": "date-time",
"description": "Appointment start time (Required)",
"maxLength": 120
},
"Cancellation_Reason": {
"type": [
"null",
"string"
],
"description": "appointment cancellation reason",
"maxLength": 120
},
"Appointment_For": {
"$ref": "#/$defs/AppointmentForNested",
"description": "Contains the name, ID and the module's API name of the customer for whom you are creating the appointment. (Required)"
},
"$field_states": {
"type": [
"null",
"string"
],
"maxLength": 255,
"description": "field status"
},
"Rescheduled_To": {
"type": [
"null",
"string"
],
"description": "appointment rescheduled time",
"maxLength": 120
},
"$sharing_permission": {
"type": [
"string",
"null"
],
"description": "record sharing permission",
"maxLength": 11
},
"Reschedule_Reason": {
"type": [
"null",
"string"
],
"description": "rescheduled reason",
"maxLength": 120
},
"Job_Sheet_Name__s": {
"type": [
"string",
"null"
],
"description": "Job sheet name",
"maxLength": 120
},
"Additional_Information": {
"type": [
"null",
"string"
],
"description": "Additional informations",
"maxLength": 32000
},
"Last_Activity_Time": {
"type": [
"null",
"string"
],
"description": "last Activity time",
"maxLength": 120
},
"Job_Sheet_Created__s": {
"type": [
"boolean",
"null"
],
"description": "whether job sheet created for an appointment"
},
"Cancelled_Time": {
"type": [
"null",
"string"
],
"description": "appointment cancelled time",
"maxLength": 120
},
"Cancellation_Note": {
"type": [
"null",
"string"
],
"description": "cancellation note",
"maxLength": 2000
},
"Modified_By": {
"$ref": "#/$defs/ModifiedByNested",
"description": "modified by"
},
"Reschedule_Count": {
"type": [
"integer",
"null"
],
"format": "int32",
"description": "the no of time the appointment has been rescheduled"
},
"$state": {
"type": [
"string",
"null"
],
"description": "state",
"maxLength": 4
},
"Rescheduled_By": {
"type": [
"null",
"object"
],
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "name",
"maxLength": 255
},
"id": {
"type": [
"string",
"null"
],
"description": "id",
"maxLength": 255
},
"email": {
"type": [
"string",
"null"
],
"format": "email",
"description": "email",
"maxLength": 33
}
},
"description": "rescheduled by"
},
"Date_1": {
"type": [
"null",
"string"
],
"description": "date",
"maxLength": 20
},
"id": {
"type": [
"string",
"null"
],
"description": "appointment record id",
"maxLength": 18,
"readOnly": true
},
"Rescheduled_Time": {
"type": [
"null",
"string"
],
"description": "rescheduled time",
"maxLength": 120
},
"Remind_At": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"description": "reminder time object",
"additionalProperties": false,
"properties": {
"period": {
"type": "string",
"description": "unit of time for reminder",
"enum": [
"minutes",
"hours",
"days"
]
},
"unit": {
"type": "integer",
"format": "int32",
"description": "value for reminder time"
}
}
},
"description": "Contains the list of units and period of when you want to get the reminders for the appointment.",
"maxItems": 100
},
"Appointment_End_Time": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "Appointment end time",
"maxLength": 120
},
"Status": {
"type": [
"string",
"null"
],
"description": "Denotes the status of the appointment.",
"maxLength": 120
},
"Modified_Time": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "modified time",
"maxLength": 120
},
"Service_Name": {
"$ref": "#/$defs/ServiceNameNested",
"description": "Contains the name and distinctive ID of the service for which you are creating the appointment. (Required)"
},
"Created_Time": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "created Time",
"maxLength": 120
},
"Rescheduled_From": {
"type": [
"null",
"string"
],
"description": "Appointment Rescheduled from (this field is mandatory when you want to create an rescheduled appointment)",
"maxLength": 120
},
"Cancelled_By": {
"type": [
"null",
"object"
],
"description": "cancelled by"
},
"Duration": {
"type": [
"integer",
"null"
],
"format": "int32",
"description": "Appointment duration"
},
"Appointment_Name": {
"type": [
"string",
"null"
],
"description": "Appointment name",
"maxLength": 225
},
"$editable": {
"type": [
"boolean",
"null"
],
"description": "editable "
},
"Job_Sheet_Section__s": {
"type": [
"string",
"null"
],
"description": "contains which job sheet section to be shown to the user",
"maxLength": 120
},
"Record_Status__s": {
"type": [
"string",
"null"
],
"description": "record status",
"maxLength": 9
},
"$status": {
"type": [
"string",
"null"
],
"description": "status",
"maxLength": 7
},
"Job_Sheet_Description__s": {
"type": [
"string",
"null"
],
"description": "job sheet description",
"maxLength": 32000
},
"Tag": {
"type": [
"array",
"null"
],
"description": "tags associated with this appointment",
"items": {
"description": "tag object",
"type": "string",
"maxLength": 2000
}
},
"Created_By": {
"$ref": "#/$defs/CreatedByNested",
"description": "appointment created by"
},
"Location": {
"type": [
"string",
"null"
],
"description": "Location where the appointment held",
"enum": [
"Client Address",
"Business Address"
],
"maxLength": 120
},
"Reschedule_Note": {
"type": [
"null",
"string"
],
"description": "rescheduled note",
"maxLength": 2000
}
},
"required": [
"Appointment_For",
"Appointment_Start_Time",
"Owner",
"Service_Name"
]
},
"ModifiedByNested": {
"type": "object",
"additionalProperties": false,
"description": "modified by",
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "name",
"maxLength": 255
},
"id": {
"type": [
"string",
"null"
],
"description": "id",
"maxLength": 255
},
"email": {
"type": [
"string",
"null"
],
"format": "email",
"description": "email",
"maxLength": 33
}
}
},
"ModuleNested": {
"type": "object",
"additionalProperties": false,
"description": "module name",
"properties": {
"api_name": {
"type": [
"string",
"null"
],
"description": "api name",
"maxLength": 8
},
"id": {
"type": [
"string",
"null"
],
"description": "id",
"maxLength": 18
}
}
},
"OwnerNested": {
"type": "object",
"additionalProperties": false,
"description": "Represents the ID of the service member who will provide the service for this appointment.",
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "service owner name",
"maxLength": 100
},
"id": {
"type": [
"string",
"null"
],
"description": "id",
"maxLength": 100
},
"email": {
"type": [
"string",
"null"
],
"format": "email",
"description": "email",
"maxLength": 100
}
}
},
"ServiceNameNested": {
"type": "object",
"additionalProperties": false,
"description": "Contains the name and distinctive ID of the service for which you are creating the appointment.",
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "name of the service , on which the appointment is created using",
"maxLength": 100
},
"id": {
"type": [
"string",
"null"
],
"description": "unique id of the service",
"maxLength": 100
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/zoho-postappointmentss-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.