openapi: 3.0.0 info: title: Scheduled Messages description: | The Scheduled Messages API gets a powerful upgrade with v3, giving developers full lifecycle control over message delivery to build time-aware and context-driven communication workflows. Messages can be composed in advance and delivered automatically based on a scheduled time or a participant's status change, all within the scope of a specific chat.

Key Capabilities
Scheduling Modes
Mode Field Description
Time-based schedule_time + schedule_timezone Delivers at a fixed date and time. Time must be provided in epoch milliseconds.
Status-based schedule_status Delivers when the sender's status matches a trigger: check_in, check_out, user_available, or call_end.
contact: {} version: 1.0.0 externalDocs: description: Find out more about Zoho Cliq APIs V3 url: https://www.zoho.com/cliq/help/restapi/v3/ servers: - url: https://cliq.zoho.com/api/v3 description: Zoho Cliq US DC tags: - name: scheduledmessages description: Scheduled Messages Module paths: /scheduledmessages: get: summary: List all scheduled messages operationId: listAllScheduledMessagesV3 description: | Retrieves all scheduled messages across all chats for the authenticated user. Use this to get a consolidated view of all pending time-based and status-based scheduled messages, with support for pagination and incremental updates.

Threshold limit: 20 requests per min per user
Number of API calls allowed within a minute.

Lock period: 10 minutes
Wait time before consecutive API requests.

tags: - scheduledmessages parameters: - name: limit in: query required: false description: | Number of results per page. Default is 50.
Maximum limit: 100 schema: type: integer maximum: 200 default: 50 - name: next_token in: query required: false description: Pagination cursor returned from a previous response. Pass this value to retrieve the next page of results. schema: type: string - name: sync_token in: query required: false description: Token from a previous response used to fetch only changes since the last sync. Pass this to retrieve only new or updated records instead of the full list. schema: type: string responses: '200': description: Returns all scheduled messages. Mix of time-based and status-based messages across chats. content: application/json: schema: type: object examples: all_scheduled_messages: summary: All scheduled messages across chats value: url: /api/v3/scheduledmessages type: scheduledmessages sync_token: NTB8LTF8MTkwMTMxODAwMDAxMjMxNDAyNQ== data: - id: 84fe7397-ab35-4aef-8bf7-944d688857af timezone: Asia/Kolkata created_time: '2026-05-29T04:27:40-07:00' schedule_status: user_available message: sender: name: Priya id: '697322516' type: text content: text: 'Hi Benjamin, just a quick nudge. Please update the approval status for Claim #EXP-2026-0412 when you are available. No rush, respond whenever you are free!' is_pinned: false creator: name: Priya id: '697322516' - id: 49ba8eac-8709-478d-bab3-701466b3e270 timezone: Asia/Kolkata created_time: '2026-05-29T04:28:44-07:00' schedule_status: check_in message: sender: name: Priya id: '697322516' type: text content: text: Good morning Alan! Just a check-in reminder, please update your pending expense claims before the daily finance standup. Any blockers, ping @financeTeam. is_pinned: false creator: name: Priya id: '697322516' - id: de8518c4-ce33-46c1-9195-d7864b9f10ce timezone: Asia/Kolkata created_time: '2026-05-29T04:31:33-07:00' time: '2026-06-06T21:00:00-07:00' message: sender: name: Priya id: '697322516' type: file content: file_name: Expense Summary - Zylker.pdf file_size: 61.05 KB comment: Please find the attached Q2 Expense Summary report. Review before the finance sync on June 6 and flag any discrepancies to @financeTeam. is_pinned: false creator: name: Priya id: '697322516' '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Messages.READ /chats/{CHAT_ID}/scheduledmessages: get: summary: List scheduled messages in a chat operationId: listScheduledMessagesInChatV3 description: | Retrieves all scheduled messages within a specific chat or channel. Use this to inspect pending time-based and status-based messages for a particular conversation, with support for pagination and incremental updates.

Threshold limit: 20 requests per min per user
Number of API calls allowed within a minute.

Lock period: 10 minutes
Wait time before consecutive API requests.

tags: - scheduledmessages parameters: - name: CHAT_ID in: path required: true description: Unique identifier of the chat or channel. Use this to scope the scheduled messages retrieval to a specific conversation.
To learn how to retrieve this ID, see CHAT_ID in the Glossary page. example: CHAT_ID schema: type: string - name: limit in: query required: false description: | Number of results per page. Default is 50.
Maximum limit: 100 schema: type: integer maximum: 200 default: 50 - name: next_token in: query required: false description: Pagination cursor returned from a previous response. Pass this value to retrieve the next page of results. schema: type: string - name: sync_token in: query required: false description: Token from a previous response used to fetch only changes since the last sync. Pass this to retrieve only new or updated records instead of the full list. schema: type: string responses: '200': description: Scheduled messages retrieved successfully. content: application/json: schema: type: object examples: channel_with_file_message: summary: Channel with file attachment message value: url: /api/v3/chats/CT_1424569695482328362_631836344/scheduledmessages type: scheduledmessages sync_token: NTB8MTc4MDM2NzQwMDAwMHwxOTAxMzE4MDAwMDEyNjUxMDAx data: - id: de8518c4-ce33-46c1-9195-d7864b9f10ce timezone: Asia/Kolkata created_time: '2026-05-29T04:31:33-07:00' time: '2026-06-06T21:00:00-07:00' message: sender: name: Priya id: '697322516' type: file content: file_name: Expense Summary - Zylker.pdf file_size: 61.05 KB comment: Please find the attached Q2 Expense Summary report. Review before the finance sync on June 6 and flag any discrepancies to @financeTeam. is_pinned: false creator: name: Priya id: '697322516' dm_with_status_based_message: summary: DM with status-based message value: url: /api/v3/chats/1424921584119739269/scheduledmessages type: scheduledmessages sync_token: NTB8MTc4MDA0OTAzNDg4MHw= data: - id: 84fe7397-ab35-4aef-8bf7-944d688857af timezone: Asia/Kolkata created_time: '2026-05-29T04:27:40-07:00' schedule_status: user_available message: sender: name: Priya id: '697322516' type: text content: text: 'Hi Benjamin, just a quick nudge. Please update the approval status for Claim #EXP-2026-0412 when you are available. No rush, respond whenever you are free!' is_pinned: false creator: name: Priya id: '697322516' empty_chat: summary: Empty chat value: url: /api/v3/chats/1608865438186287622/scheduledmessages type: scheduledmessages sync_token: NTB8MTc4MDA0OTAzNDg4MHw= data: [] '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Messages.READ post: summary: Send scheduled messages now operationId: sendScheduledMessagesNowV3 description: | Immediately sends one or all pending scheduled messages in a chat without waiting for the scheduled time. Use this to manually trigger delivery of a specific message by ID, or all pending messages in the chat at once.

Threshold limit: 50 requests per min per user
Number of API calls allowed within a minute.

Lock period: 10 minutes
Wait time before consecutive API requests.

! Possible Error Codes Click to expand
Error Code Description
scheduled_msg_no_pending_msgs No pending scheduled messages exist in this chat.
param_missing A required parameter is missing from the request.
Error Response Format

When an error occurs, the API returns a JSON response in this format:

{"message": "A human-readable description of the error.", "code": "error_code"}

where code is the error identifier (as listed above) and message is a human-readable explanation of what went wrong.

tags: - scheduledmessages parameters: - name: CHAT_ID in: path required: true description: Unique identifier of the chat or channel. Determines which chat's scheduled messages are targeted for immediate delivery.
To learn how to retrieve this ID, see CHAT_ID in the Glossary page. example: CHAT_ID schema: type: string requestBody: required: true content: application/json: schema: type: object required: - status properties: status: type: string enum: - send description: | Operation trigger to send messages immediately.
Allowed values:
id: type: string description: | Unique identifier of a specific scheduled message to send immediately. When provided, only that message is sent.
Omit this field and use apply_to instead to send all pending messages. apply_to: type: string enum: - all description: | Scope of messages to send when no id is provided.
Allowed values:
examples: send_specific_message: summary: Send a specific message now value: status: send id: 76d3978e-b782-4cbb-a98b-670a5a7cbc6e send_all_pending_messages: summary: Send all pending messages in the chat now value: status: send apply_to: all responses: '204': description: Message(s) sent immediately. No response body returned. content: application/json: schema: $ref: '#/components/schemas/NoResponse' '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Not Found. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Messages.CREATE put: summary: Bulk reschedule scheduled messages operationId: bulkRescheduleScheduledMessagesV3 description: | Reschedules all time-based or status-based scheduled messages in a chat in a single operation. Use this to update delivery times or change status triggers across multiple messages at once without editing them individually.

Threshold limit: 20 requests per min per user
Number of API calls allowed within a minute.

Lock period: 10 minutes
Wait time before consecutive API requests.

! Possible Error Codes Click to expand
Error Code Description
param_missing A required parameter is missing from the request.
scheduled_msg_no_pending_msgs No pending scheduled messages exist in this chat.
scheduled_msg_invalid_time_format Invalid schedule_time format. Expected epoch milliseconds.
input_pattern_mismatch An unrecognized value was passed for an enum field.
Error Response Format

When an error occurs, the API returns a JSON response in this format:

{"message": "A human-readable description of the error.", "code": "error_code"}

where code is the error identifier (as listed above) and message is a human-readable explanation of what went wrong.

tags: - scheduledmessages parameters: - name: CHAT_ID in: path required: true description: Unique identifier of the chat or channel. All matching scheduled messages within this chat will be updated by the bulk reschedule operation.
To learn how to retrieve this ID, see CHAT_ID in the Glossary page. example: CHAT_ID schema: type: string requestBody: required: true content: application/json: schema: type: object required: - status properties: status: type: string enum: - reschedule description: | Operation type for this request.
Allowed values:
apply_to: type: string enum: - all_time_based - all_status_based description: | Scope of scheduled messages to update in this operation.
Allowed values:
time: type: integer format: int64 description: | Existing scheduled delivery time to match, in epoch milliseconds. Required when apply_to is all_time_based.
Only messages scheduled at this exact time will be updated. schedule_time: type: integer format: int64 description: | New delivery time to apply to all matched messages, in epoch milliseconds. Required when apply_to is all_time_based. schedule_timezone: type: string maxLength: 100 description: | Timezone to apply for time fields. Example: Asia/Kolkata.
Maximum length: 100 characters. existing_status: type: string enum: - check_in - check_out - user_available - call_end description: | Current status trigger to match for bulk update. Required when apply_to is all_status_based.
Allowed values:
schedule_status: type: string enum: - check_in - check_out - user_available - call_end description: | New status trigger to apply to all matched messages. Required when apply_to is all_status_based.
Allowed values:
examples: reschedule_all_time_based: summary: Reschedule all time-based messages to a new time value: status: reschedule apply_to: all_time_based time: 1748861400000 schedule_time: 1748947800000 schedule_timezone: Asia/Kolkata reschedule_all_status_based: summary: Reschedule all status-based messages from check_in to user_available value: status: reschedule apply_to: all_status_based existing_status: check_in schedule_status: user_available responses: '200': description: Scheduled messages rescheduled successfully. content: application/json: schema: type: object examples: time_based_reschedule: summary: Time-based reschedule value: url: /api/v3/chats/CT_1424569695482328362_631836344/scheduledmessages type: scheduledmessages data: - id: 3574bbf2-77ed-4b9c-99d9-8d487d6f8d11 timezone: Asia/Kolkata created_time: '2026-05-29T03:15:49-07:00' time: '2026-06-02T20:30:00-07:00' message: sender: name: Priya id: '697322516' type: text content: text: 'Q2 Expense Report Deadline [UPDATED]: Submission extended to June 6. Ensure all vendor invoices above $500 have manager approval. Contact @financeTeam for help.' is_pinned: false creator: name: Priya id: '697322516' status_based_reschedule: summary: Status-based reschedule (check_in to user_available) value: url: /api/v3/chats/2242125276857119940/scheduledmessages type: scheduledmessages data: - id: 49ba8eac-8709-478d-bab3-701466b3e270 timezone: Asia/Kolkata created_time: '2026-05-29T04:28:44-07:00' schedule_status: user_available message: sender: name: Priya id: '697322516' type: text content: text: Good morning Alan! Just a check-in reminder, please update your pending expense claims before the daily finance standup. Any blockers, ping @financeTeam. is_pinned: false creator: name: Priya id: '697322516' '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Messages.UPDATE delete: summary: Delete all scheduled messages in a chat operationId: deleteAllScheduledMessagesInChatV3 description: | Deletes all scheduled messages in a chat in a single operation. Use this to clear all pending scheduled messages from a conversation at once without deleting them individually.

Threshold limit: 20 requests per min per user
Number of API calls allowed within a minute.

Lock period: 10 minutes
Wait time before consecutive API requests.

tags: - scheduledmessages parameters: - name: CHAT_ID in: path required: true description: Unique identifier of the chat or channel. All scheduled messages within this chat will be permanently removed.
To learn how to retrieve this ID, see CHAT_ID in the Glossary page. example: CHAT_ID schema: type: string responses: '204': description: All scheduled messages deleted. No response body returned. content: application/json: schema: $ref: '#/components/schemas/NoResponse' '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Messages.DELETE /chats/{CHAT_ID}/scheduledmessages/{SCHEDULED_MESSAGE_ID}: put: summary: Edit a scheduled message operationId: editScheduledMessageV3 description: | Updates the text, scheduled time, timezone, status trigger, or file attachment of an existing scheduled message. Use this to modify a specific scheduled message before it is delivered, including switching between time-based and status-based scheduling.

Threshold limit: 20 requests per min per user
Number of API calls allowed within a minute.

Lock period: 10 minutes
Wait time before consecutive API requests.

! Possible Error Codes Click to expand
Error Code Description
scheduled_msg_not_found The requested scheduled message could not be found.
scheduled_msg_invalid_time_format Invalid schedule_time format. Expected epoch milliseconds.
checkin_status_message_restricted The check_in status trigger is not supported for this chat type (e.g. direct messages).
extra_key_found An unsupported key was included in the request body.
Error Response Format

When an error occurs, the API returns a JSON response in this format:

{"message": "A human-readable description of the error.", "code": "error_code"}

where code is the error identifier (as listed above) and message is a human-readable explanation of what went wrong.

tags: - scheduledmessages parameters: - name: CHAT_ID in: path required: true description: Unique identifier of the chat or channel that contains the scheduled message to be edited.
To learn how to retrieve this ID, see CHAT_ID in the Glossary page. example: CHAT_ID schema: type: string - name: SCHEDULED_MESSAGE_ID in: path required: true description: Unique identifier of the scheduled message to edit. Use this to target a specific pending message within the chat.
To retrieve this ID, use the List all scheduled messages endpoint. example: SCHEDULED_MESSAGE_ID schema: type: string requestBody: required: true content: application/json: schema: type: object properties: text: type: string maxLength: 5000 description: | Updated message text content to replace the existing text.
Maximum length: 5000 characters. schedule_time: type: integer format: int64 description: | New scheduled delivery time for the message, in epoch milliseconds. Replaces the existing scheduled time. schedule_timezone: type: string maxLength: 100 description: | Timezone to use for the updated scheduled time. Example: Asia/Kolkata.
Maximum length: 100 characters. schedule_status: type: string enum: - check_in - check_out - user_available - call_end description: | New status trigger for the message. When provided, switches the message from time-based to status-based scheduling.
Allowed values:
file_remove: type: boolean description: | Controls removal of an existing file attachment from the scheduled message.
Allowed values:
examples: edit_text_and_time: summary: Edit message text and reschedule time value: text: 'Q2 Expense Report Deadline [UPDATED]: Submission extended to June 6. Ensure all vendor invoices above $500 have manager approval. Contact @financeTeam for help.' schedule_time: 1748947800000 schedule_timezone: Asia/Kolkata change_status_trigger: summary: Change status trigger from user_available to call_end value: schedule_status: call_end remove_file_attachment: summary: Remove file attachment from scheduled message value: file_remove: true responses: '200': description: Scheduled message updated successfully. content: application/json: schema: type: object examples: text_and_time_edit: summary: Text and time edit value: url: /api/v3/chats/CT_1424569695482328362_631836344/scheduledmessages/3574bbf2-77ed-4b9c-99d9-8d487d6f8d11 type: scheduledmessages data: id: 3574bbf2-77ed-4b9c-99d9-8d487d6f8d11 timezone: Asia/Kolkata created_time: '2026-05-29T03:15:49-07:00' time: '2026-06-01T20:30:00-07:00' message: sender: name: Priya id: '697322516' type: text content: text: 'Q2 Expense Report Deadline [UPDATED]: Submission extended to June 6. Ensure all vendor invoices above $500 have manager approval. Contact @financeTeam for help.' is_pinned: false creator: name: Priya id: '697322516' status_trigger_edit: summary: Status trigger edit (user_available to call_end) value: url: /api/v3/chats/1424921584119739269/scheduledmessages/84fe7397-ab35-4aef-8bf7-944d688857af type: scheduledmessages data: id: 84fe7397-ab35-4aef-8bf7-944d688857af timezone: Asia/Kolkata created_time: '2026-05-29T04:27:40-07:00' schedule_status: call_end message: sender: name: Priya id: '697322516' type: text content: text: 'Hi Benjamin, just a quick nudge. Please update the approval status for Claim #EXP-2026-0412 when you are available. No rush, respond whenever you are free!' is_pinned: false creator: name: Priya id: '697322516' file_remove: summary: File remove (file fields remain in response but attachment is detached) value: url: /api/v3/chats/CT_1424569695482328362_631836344/scheduledmessages/de8518c4-ce33-46c1-9195-d7864b9f10ce type: scheduledmessages data: id: de8518c4-ce33-46c1-9195-d7864b9f10ce timezone: Asia/Kolkata created_time: '2026-05-29T04:31:33-07:00' time: '2026-06-06T21:00:00-07:00' message: sender: id: '697322516' type: file content: file_name: Expense Summary - Zylker.pdf file_size: 61.05 KB comment: Please find the attached Q2 Expense Summary report. Review before the finance sync on June 6 and flag any discrepancies to @financeTeam. is_pinned: false creator: name: Priya id: '697322516' '400': description: Bad Request. content: application/json: schema: type: object properties: message: type: string example: The request cannot be performed. Usually because of malformed parameter or missing parameter. '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Not Found. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Messages.UPDATE delete: summary: Delete a scheduled message operationId: deleteScheduledMessageV3 description: | Deletes a specific scheduled message by its ID. Use this to remove a single pending message from a chat without affecting other scheduled messages in the same conversation.

Threshold limit: 20 requests per min per user
Number of API calls allowed within a minute.

Lock period: 10 minutes
Wait time before consecutive API requests.

! Possible Error Codes Click to expand
Error Code Description
scheduled_msg_not_found The requested scheduled message could not be found.
Error Response Format

When an error occurs, the API returns a JSON response in this format:

{"message": "A human-readable description of the error.", "code": "error_code"}

where code is the error identifier (as listed above) and message is a human-readable explanation of what went wrong.

tags: - scheduledmessages parameters: - name: CHAT_ID in: path required: true description: Unique identifier of the chat or channel that contains the scheduled message to be deleted.
To learn how to retrieve this ID, see CHAT_ID in the Glossary page. example: CHAT_ID schema: type: string - name: SCHEDULED_MESSAGE_ID in: path required: true description: Unique identifier of the scheduled message to delete. Use this to target the specific pending message to remove.
To retrieve this ID, use the List all scheduled messages endpoint. example: SCHEDULED_MESSAGE_ID schema: type: string responses: '204': description: Scheduled message deleted. No response body returned. content: application/json: schema: $ref: '#/components/schemas/NoResponse' '401': description: Unauthorized. content: application/json: schema: type: object properties: message: type: string example: Request was rejected because of invalid AuthToken. '403': description: Forbidden. content: application/json: schema: type: object properties: message: type: string example: The user does not have enough permission or possibly not an user of the respective organization to access the resource. '404': description: Not Found. content: application/json: schema: type: object properties: message: type: string example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL. '429': description: Too many requests. content: application/json: schema: type: object properties: message: type: string example: Too many requests within a certain time frame. '500': description: Internal Server Error. content: application/json: schema: type: object properties: message: type: string example: Cliq server encountered an error which prevents it from fulfilling the request. security: - Cliq_Auth: - ZohoCliq.Messages.DELETE components: schemas: NoResponse: type: object description: Response object returned when no content is available. properties: Response Code: type: string description: HTTP response code and message indicating no content. example: 204 No response error-response: type: object properties: code: type: string message: type: string required: - code - message securitySchemes: Cliq_Auth: type: oauth2 x-authorization-example: Bearer 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f flows: implicit: authorizationUrl: https://accounts.zoho.com/oauth/v2/auth scopes: ZohoCliq.Messages.READ: Read scheduled messages ZohoCliq.Messages.CREATE: Send scheduled messages now ZohoCliq.Messages.UPDATE: Edit and reschedule scheduled messages ZohoCliq.Messages.DELETE: Delete scheduled messages