openapi: 3.0.0
info:
  title: Events
  description: |
    An event is any occurrence that is scheduled for a specific time. This can range from a team meeting to a company-wide conference. You can create events, invite others, set reminders, and track invitees from your Cliq Home. Cliq Events syncs with your calendar to keep you updated at all times. Using Cliq event APIs, you can create, retrieve, update, manage, and delete events.
  contact: {}
  version: 1.0.0
externalDocs:
  description: Find out more about Zoho Cliq APIs V2
  url: https://www.zoho.com/cliq/help/restapi/v2/
servers:
  - url: https://cliq.zoho.com/api/v2
    description: Zoho Cliq US DC
tags:
  - name: events
    description: Events Module
paths:
  /calendars:
    get:
      summary: Get Calendars
      operationId: Get Calendars
      description: |
        Use this API to retrieve a comprehensive list of all calendars associated with a user.
          <br><br> 
        <p>
          <b>Threshold limit</b>: 20 requests per min per user<br>
          Number of API calls allowed within a minute.<br><br>
          <b>Lock period</b>: 10 minutes<br>Wait time before consecutive API requests.<br>
        </p>
      parameters:
        - name: include_hidden_calendars
          in: query
          required: false
          schema:
            type: boolean
          description: Choose whether to display the hidden calendars or not.
      responses:
        '200':
          description: The request was successfully completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get-calendars-response'
        '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: Invalid URL.
          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.
        '405':
          description: Method Not Allowed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method.
        '406':
          description: Not Acceptable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The response has been received but the requested response type is not supported by the browser.
        '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.CalendarEvents.ALL
      tags:
        - events
  /events:
    get:
      summary: Get Events
      operationId: Get Events
      description: |
        Use this API to get the list of all your events scheduled within the next 31 days.
          <br><br> 
        <p>
          <b>Threshold limit</b>: 20 requests per min per user<br>
          Number of API calls allowed within a minute.<br><br>
          <b>Lock period</b>: 10 minutes<br>Wait time before consecutive API requests.<br>
        </p>
      parameters:
        - name: from
          in: query
          required: false
          schema:
            type: integer
          description: The start of the time interval from when you want to retrieve the events. From time should be passed in milliseconds.
        - name: to
          in: query
          required: false
          schema:
            type: integer
          description: The end of the time interval from when you want to retrieve the events. To time should be passed in milliseconds.
        - name: include_hidden_calendars
          in: query
          required: false
          schema:
            type: boolean
          description: Choose whether to display events from hidden calendars or not.
        - name: include_disabled_calendar
          in: query
          required: false
          schema:
            type: boolean
          description: Choose whether to display events from disabled calendars or not.
        - name: ignore_declined_events
          in: query
          required: false
          schema:
            type: boolean
          description: Choose whether to ignore declined events or not.
        - name: search
          in: query
          required: false
          schema:
            type: string
          description: A keyword or phrase used to filter events based on search text. Matches are performed on the titles of events.
      responses:
        '200':
          description: The request was successfully completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get-events-response'
        '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: Invalid URL.
          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.
        '405':
          description: Method Not Allowed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method.
        '406':
          description: Not Acceptable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The response has been received but the requested response type is not supported by the browser.
        '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.CalendarEvents.ALL
            - ZohoCalendar.calendar.ALL
            - ZohoCalendar.event.ALL
            - ZohoCalendar.search.READ
      tags:
        - events
    post:
      summary: Create an Event
      operationId: Create an Event
      description: |
        Use this API to create an event.
          <br><br> 
        <p>
          <b>Threshold limit</b>: 20 requests per min per user<br>
          Number of API calls allowed within a minute.<br><br>
          <b>Lock period</b>: 10 minutes<br>Wait time before consecutive API requests.<br>
        </p>
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-event-request-body'
      responses:
        '200':
          description: The request was successfully completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get-events-response'
        '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: Invalid URL.
          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.
        '405':
          description: Method Not Allowed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method.
        '406':
          description: Not Acceptable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The response has been received but the requested response type is not supported by the browser.
        '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.CalendarEvents.ALL
            - ZohoCalendar.calendar.ALL
            - ZohoCalendar.event.ALL
      tags:
        - events
  /events/{EVENT_ID}:
    get:
      summary: Get Event Details
      operationId: Get Event Details
      description: |
        Use this API to get the event details of a specific event from the user's calendar.
          <br><br> 
        <p>
          <b>Threshold limit</b>: 20 requests per min per user<br>
          Number of API calls allowed within a minute.<br><br>
          <b>Lock period</b>: 10 minutes<br>Wait time before consecutive API requests.<br>
        </p>
      parameters:
        - name: EVENT_ID
          in: path
          required: true
          schema:
            type: string
          example: EVENT_ID
          description: To retrieve the details of a specific event using its unique identifier To learn how to retrieve this ID, see <a href="/cliq/help/restapi/v2/glossary/#EVENT_ID">EVENT_ID</a> in the Glossary page.
        - name: calendar_id
          in: query
          required: true
          schema:
            type: string
          description: To retrieve the details of an event from a specific calendar using its calendar UID (Calendar unique identifier).
        - name: recurrence_id
          in: query
          required: false
          schema:
            type: string
          description: To retrieve the details of a specific occurrence of a recurring event.
      responses:
        '200':
          description: The request was successfully completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get-events-response'
        '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: Invalid URL.
          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.
        '405':
          description: Method Not Allowed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method.
        '406':
          description: Not Acceptable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The response has been received but the requested response type is not supported by the browser.
        '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.CalendarEvents.ALL
            - ZohoCalendar.calendar.ALL
            - ZohoCalendar.event.ALL
      tags:
        - events
    put:
      summary: Edit an Event
      operationId: Edit an Event
      description: |
        Use this API to edit an event.
          <br><br> 
        <p>
          <b>Threshold limit</b>: 20 requests per min per user<br>
          Number of API calls allowed within a minute.<br><br>
          <b>Lock period</b>: 10 minutes<br>Wait time before consecutive API requests.<br>
        </p>
      parameters:
        - name: EVENT_ID
          in: path
          required: true
          schema:
            type: string
          example: EVENT_ID
          description: To edit the details of a specific event using its unique identifier To learn how to retrieve this ID, see <a href="/cliq/help/restapi/v2/glossary/#EVENT_ID">EVENT_ID</a> in the Glossary page.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/edit-event-request-body'
      responses:
        '200':
          description: The request was successfully completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get-events-response'
        '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: Invalid URL.
          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.
        '405':
          description: Method Not Allowed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method.
        '406':
          description: Not Acceptable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The response has been received but the requested response type is not supported by the browser.
        '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.CalendarEvents.ALL
            - ZohoCalendar.calendar.ALL
            - ZohoCalendar.event.ALL
      tags:
        - events
    delete:
      summary: Delete an Event
      operationId: Delete an Event
      description: |
        Use this API to delete an event.
          <br><br> 
        <p>
          <b>Threshold limit</b>: 20 requests per min per user<br>
          Number of API calls allowed within a minute.<br><br>
          <b>Lock period</b>: 10 minutes<br>Wait time before consecutive API requests.<br>
        </p>
      parameters:
        - name: EVENT_ID
          in: path
          required: true
          schema:
            type: string
          example: EVENT_ID
          description: To specify the event to be deleted To learn how to retrieve this ID, see <a href="/cliq/help/restapi/v2/glossary/#EVENT_ID">EVENT_ID</a> in the Glossary page.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/delete-event-request-body'
      responses:
        '200':
          description: The request was successfully completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/no-response'
        '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: Invalid URL.
          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.
        '405':
          description: Method Not Allowed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method.
        '406':
          description: Not Acceptable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The response has been received but the requested response type is not supported by the browser.
        '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.CalendarEvents.ALL
            - ZohoCalendar.calendar.ALL
            - ZohoCalendar.event.ALL
      tags:
        - events
  /events/{EVENT_ID}/statuses/{STATUS}:
    put:
      summary: Update an Event Status
      operationId: Update a status of an event
      description: |
        Use this API to update your status for an event ( RSVP ).
          <br><br> 
        <p>
          <b>Threshold limit</b>: 20 requests per min per user<br>
          Number of API calls allowed within a minute.<br><br>
          <b>Lock period</b>: 10 minutes<br>Wait time before consecutive API requests.<br>
        </p>
      parameters:
        - name: EVENT_ID
          in: path
          required: true
          schema:
            type: string
          example: EVENT_ID
          description: To specify the event to be updated To learn how to retrieve this ID, see <a href="/cliq/help/restapi/v2/glossary/#EVENT_ID">EVENT_ID</a> in the Glossary page.
        - name: STATUS
          in: path
          required: true
          schema:
            type: string
          example: STATUS
          description: |
            To update the attendance status for the event. Allowed values :  <ul>
                      <li><b>accepted</b> - The attendee has confirmed participation.</i>
                      <li><b>tentative</b> - The attendee may attend but has not confirmed.</i>
                      <li><b>declined</b> - The attendee has declined the invitation.</i>
                      <li><b>yet_to_respond</b> - The attendee has not yet responded to the invitation.</i>
            </ul> To learn how to retrieve this ID, see <a href="/cliq/help/restapi/v2/glossary/#STATUS">STATUS</a> in the Glossary page.
              
      responses:
        '200':
          description: The request was successfully completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/update-event-status-response'
        '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: Invalid URL.
          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.
        '405':
          description: Method Not Allowed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method.
        '406':
          description: Not Acceptable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The response has been received but the requested response type is not supported by the browser.
        '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.CalendarEvents.ALL
            - ZohoCalendar.calendar.ALL
            - ZohoCalendar.event.ALL
      tags:
        - events
  /events/attachments:
    post:
      summary: Upload Attachments to Event Calendar
      operationId: Upload Attachments to Event Calendar
      description: |
        Use this API to upload an attachment in your calendar to attach it to events.
          <br><br> 
        <p>
          <b>Threshold limit</b>: 20 requests per min per user<br>
          Number of API calls allowed within a minute.<br><br>
          <b>Lock period</b>: 10 minutes<br>Wait time before consecutive API requests.<br>
        </p>
      responses:
        '200':
          description: The request was successfully completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/upload-attachment-response'
        '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: Invalid URL.
          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.
        '405':
          description: Method Not Allowed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method.
        '406':
          description: Not Acceptable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The response has been received but the requested response type is not supported by the browser.
        '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.CalendarEvents.ALL
            - ZohoCalendar.calendar.ALL
            - ZohoCalendar.event.ALL
      tags:
        - events
components:
  schemas:
    no-response:
      type: object
      description: Represents a response indicating that the request was processed successfully but no content is returned.
      properties:
        Response Code:
          type: string
          description: HTTP status code returned by the server when no response body is present.
          example: 204 No response
    upload-attachment-response:
      type: object
      description: Response object containing details of files uploaded as attachments.
      properties:
        attachments:
          type: array
          description: List of uploaded attachments and their details.
          items:
            type: object
            description: Object containing details of a single uploaded attachment.
            properties:
              preview:
                type: boolean
                description: Indicates if a preview is available for the uploaded file.
                example: true
              fileName:
                type: string
                description: Name of the uploaded file.
                example: Screenshot from 2022-11-23 12-36-52.png
              size:
                type: integer
                description: Size of the file in bytes.
                example: 298643
              contentType:
                type: string
                description: MIME type of the uploaded file.
                example: image/png
              fileId:
                type: string
                description: Unique identifier of the uploaded file.
                example: '1669355207679000001'
    create-event-request-body:
      type: object
      description: Request body schema for creating a new event in the calendar.
      required:
        - title
        - start_time
        - end_time
        - timezone
      properties:
        title:
          type: string
          description: Title of the event to be added.
          example: Zylker Marketing Forum
        start_time:
          type: string
          description: Start time of the event in milliseconds since epoch. (<a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a> basic time format)
          example: 1738828560000
        end_time:
          type: string
          description: End time of the event in milliseconds since epoch. (<a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a> basic time format)
          example: 1738832160000
        timezone:
          type: string
          description: Timezone in which the event is scheduled. (<a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a> string format)
          example: Asia/Kolkata
        calendar_id:
          type: string
          description: Unique identifier of the calendar where the event is created. Defaults to user's calendar if not provided.
          example: NDg4MTc3NTAwMDAwMDAwOTAwM3wzMzMyY2NjMQ
        location:
          type: string
          description: |
            Location where the event will take place. Maximum length: 255 characters.
          example: Conference Room 21
        description:
          type: string
          description: |
            Description of the event providing additional details. Maximum length: 10000 characters.
          example: Join the Zylker Marketing Forum to discuss trends.
        attendees:
          type: array
          description: List of attendee email IDs for the event.
          items:
            type: string
            description: Email ID of an attendee.
          example:
            - ryan.west@zylker.com
            - olivia.palmer@zylker.com
        type:
          type: string
          description: |
            Specifies the type of event to be scheduled.<br>
            Allowed values:  
            <ul>
              <li><b>normal_event</b>: Face-to-face meeting</i>
              <li><b>event_management</b>: Face-to-face meeting with Zia's assistance (reminders, group chat)</i>
              <li><b>audio_conference</b>: Audio conference event</i>
              <li><b>video_conference</b>: Video conference event</i>
            </ul>
          enum:
            - normal_event
            - event_management
            - audio_conference
            - video_conference
          example: normal_event
        reminders:
          type: array
          description: List of reminders to be set for the event.
          items:
            type: object
            description: Object representing a reminder.
            properties:
              type:
                type: string
                description: Type of reminder to trigger.
                enum:
                  - email
                  - popup
                  - notification
              minutes:
                type: integer
                description: Number of minutes before the event to trigger the reminder.
            required:
              - type
              - minutes
          example:
            reminders:
              - type: email
                minutes: 30
              - type: popup
                minutes: 15
        attachment_ids:
          type: array
          description: List of unique file IDs for attachments to be added to the event.
          items:
            type: string
            description: Unique identifier of an uploaded file.
          example:
            - 284148000000107000
    edit-event-request-body:
      type: object
      description: Request body schema for editing an existing event in the calendar.
      required:
        - title
        - start_time
        - end_time
        - timezone
        - calendar_id
        - type
      properties:
        title:
          type: string
          description: Title of the event to be edited.
          example: Zylker Marketing Forum
        start_time:
          type: string
          description: Start time of the event in epoch milliseconds since 1970-01-01 00:00:00 UTC.
          example: '1738828560000'
        end_time:
          type: string
          description: End time of the event in epoch milliseconds since 1970-01-01 00:00:00 UTC.
          example: '1738832160000'
        timezone:
          type: string
          description: Timezone in which the event is scheduled. (IANA format, e.g., Asia/Kolkata)
          example: Asia/Kolkata
        calendar_id:
          type: string
          description: Unique identifier for the calendar in which the event is to be edited.
          example: NDg4MTc3NTAwMDAwMDAwOTAwM3wzMzMyY2NjMQ
        location:
          type: string
          description: |
            Location where the event will take place. Maximum length: 255 characters.
          example: Conference Room 21
        description:
          type: string
          description: |
            Description of the event providing additional details. Maximum length: 10000 characters.
          example: Join the Zylker Marketing Forum to discuss marketing trends.
        type:
          type: string
          description: |
            Specifies the type of event that needs to be edited.
            Allowed values:
            <ul>
              <li><b>normal_event</b>: Face-to-face meeting</li>
              <li><b>event_management</b>: Meeting with Zia's assistance (reminders, group chat)</li>
              <li><b>audio_conference</b>: Audio conference event</li>
              <li><b>video_conference</b>: Video conference event</li>
            </ul>
          enum:
            - normal_event
            - event_management
            - audio_conference
            - video_conference
          example: normal_event
        attendees:
          type: array
          description: List of attendees with their email and status.
          items:
            type: object
            description: Object containing attendee details.
            properties:
              email:
                type: string
                description: Email address of the attendee.
                example: ryan.west@zylker.com
              status:
                type: string
                description: Current attendance status of the attendee.
                enum:
                  - accepted
                  - tentative
                  - declined
                  - yet_to_respond
                example: accepted
        reminders:
          type: array
          description: List of reminders to be set for the event.
          items:
            type: object
            description: Reminder configuration.
            properties:
              type:
                type: string
                description: Reminder type.
                enum:
                  - email
                  - popup
                  - notification
                example: email
              minutes:
                type: integer
                description: Time in minutes before the event when the reminder will trigger.
                example: 30
            required:
              - type
              - minutes
          example:
            - type: email
              minutes: 30
            - type: popup
              minutes: 15
        attachment_ids:
          type: array
          description: List of file IDs to attach to the event. IDs must be from the Upload Attachments API.
          items:
            type: string
            description: Unique identifier of the uploaded file.
          example:
            - '284148000000107002'
    delete-event-request-body:
      type: object
      description: Request body schema for deleting an event from a calendar.
      required:
        - calendar_id
        - edit_tag
      properties:
        calendar_id:
          type: string
          description: Unique identifier of the calendar containing the event.
          example: c3NTAwMNDg4MTDAwMDAwOTMyY2NjMQ==
        edit_tag:
          type: integer
          description: Version identifier (etag) of the event to ensure concurrency control.
          example: 1738933200000
    update-event-status-response:
      type: object
      description: Response object after updating the status of an event.
      properties:
        data:
          type: object
          description: Details of the updated event.
          properties:
            uid:
              type: string
              description: Unique identifier of the event.
              example: ef3d579687r42832934hc63d56@zoho.com
            etag:
              type: string
              description: Version identifier of the updated event.
              example: '2838850064766'
            message:
              type: string
              description: Confirmation message for the update.
              example: Status Updated.
            attendees:
              type: array
              description: List of attendees with updated status.
              items:
                type: object
                description: Object containing attendee status details.
                properties:
                  zuid:
                    type: string
                    description: Unique Zoho User ID (ZUID) of the attendee.
                    example: '89412567'
                  status:
                    type: string
                    description: Updated attendance status of the attendee.
                    example: ACCEPTED
                  email:
                    type: string
                    description: Email ID of the attendee.
                    example: ryan.west@zylker.com
                  isapi:
                    type: boolean
                    description: Indicates whether the attendee update originated from API.
                    example: true
    get-events-response:
      type: object
      description: Response object containing a list of events from the calendar.
      properties:
        data:
          type: array
          description: List of events retrieved from the calendar.
          items:
            $ref: '#/components/schemas/EventItem'
    EventItem:
      type: object
      description: Schema representing a single event and its details.
      properties:
        location:
          type: string
          description: Location where the event will take place.
          example: Conference Room 21
        entity_id:
          type: string
          description: Unique entity identifier of the event.
          example: 47f78d99-049f-4e313-08ef-6b588976b4c4
        is_big_chat_event:
          type: boolean
          description: Indicates whether the event is part of a large chat session.
          example: false
        type:
          type: string
          description: Type of event scheduled.
          example: video_conference
        isallday:
          type: boolean
          description: Specifies if the event is scheduled for the entire day.
          example: false
        creator:
          $ref: '#/components/schemas/EventPerson'
        entity_type:
          type: integer
          description: Type identifier of the event entity.
          example: 8
        end_time:
          type: integer
          description: End time of the event in milliseconds since epoch.
          example: 1738942200000
        attendees:
          type: array
          description: List of attendees associated with the event.
          items:
            $ref: '#/components/schemas/EventAttendee'
        edit_tag:
          type: string
          description: Version identifier (etag) of the event.
          example: '1738835150914'
        start_time:
          type: integer
          description: Start time of the event in milliseconds since epoch.
          example: 1738938600000
        id:
          type: string
          description: Unique identifier of the event.
          example: 427812df9891223aca537f0e8e7ad2a7c@zoho.com
        meeting_link:
          type: string
          description: Link to join the online meeting associated with the event.
          example: https://cliq.zoho.com/meeting/1BK4IK987W6W
        timezone:
          type: string
          description: Timezone in which the event is scheduled.
          example: Asia/Kolkata
        description:
          type: string
          description: Description of the event providing additional details.
          example: Join the Zylker Marketing Forum to discuss trends.
        calendar_id:
          type: string
          description: Unique identifier of the calendar associated with the event.
          example: NDg4MTc3NTAwMDAwMDAwOTAwM3wzMzMyY2NjMQ==
        organizer:
          $ref: '#/components/schemas/EventPerson'
        title:
          type: string
          description: Title of the event.
          example: Zylker Marketing Forum
        role:
          type: string
          description: Role of the user with respect to the event.
          example: organizer
    EventPerson:
      type: object
      description: Schema representing a person involved in the event (organizer or creator).
      properties:
        name:
          type: string
          description: Full name of the person.
          example: Scott Fisher
        email:
          type: string
          description: Email address of the person.
          example: scott.fisher@zylker.com
        id:
          type: string
          description: Unique identifier of the person.
          example: '9087651'
    EventAttendee:
      type: object
      description: Schema representing an attendee of the event.
      properties:
        status:
          type: string
          description: Attendance status of the attendee.
          example: accepted
        name:
          type: string
          description: Full name of the attendee.
          example: Ryan West
        email:
          type: string
          description: Email address of the attendee.
          example: ryan.west@zylker.com
        id:
          type: string
          description: Unique identifier of the attendee.
          example: '89472161'
    get-calendars-response:
      type: object
      description: Response object containing a list of available calendars.
      properties:
        data:
          type: array
          description: List of calendars available to the user.
          items:
            type: object
            description: Object containing details of a single calendar.
            properties:
              reminders:
                type: array
                description: List of default reminders set for the calendar.
                items:
                  type: object
                  description: Reminder object for the calendar.
                  properties:
                    minutes:
                      type: string
                      description: Time before the event when the reminder is triggered (in minutes).
                      example: '-15'
                    action:
                      type: string
                      description: Action to be taken for the reminder (e.g., email).
                      example: email
              color:
                type: string
                description: Hex color code assigned to the calendar.
                example: '#8cbf40'
              timezone:
                type: string
                description: Timezone of the calendar.
                example: Asia/Calcutta
              textcolor:
                type: string
                description: Text color used in the calendar UI.
                example: '#FFFFFF'
              description:
                type: string
                description: Description of the calendar.
                example: ''
              privilege:
                type: string
                description: User privilege level for the calendar.
                example: owner
              type:
                type: integer
                description: Numeric value representing the type of calendar.
                example: 0
              calemptiedtime:
                type: string
                description: Timestamp when the calendar was last emptied.
                example: '2023-03-16T05:27:33Z'
              uid:
                type: string
                description: Unique identifier (UID) of the calendar.
                example: 1683be4ab6c74d2ab02e6450a0b34d4a
              canSendMail:
                type: boolean
                description: Indicates if mail notifications can be sent for this calendar.
                example: true
              modifiedtime:
                type: integer
                description: Timestamp when the calendar was last modified (epoch time).
                example: 1663320706496
              alarm:
                type: array
                description: List of alarms set for the calendar.
                items:
                  type: object
                  description: Alarm object of the calendar.
                  properties:
                    action:
                      type: string
                      description: Action to be taken when the alarm triggers.
                      example: email
                    trigger:
                      type: string
                      description: Trigger condition for the alarm in milliseconds.
                      example: '-900000'
              isdefault:
                type: boolean
                description: Indicates if this calendar is the user's default calendar.
                example: true
              calendar_modifiedtime:
                type: integer
                description: Timestamp when the calendar details were last modified (epoch time).
                example: 1663320706496
              id:
                type: string
                description: Unique identifier of the calendar.
                example: '310935000000002003'
              order:
                type: integer
                description: Sorting order of the calendar in the list.
                example: 0
              lastmodifiedtime:
                type: string
                description: ISO timestamp when the calendar was last modified.
                example: '2023-03-16T09:29:45Z'
              owner:
                type: string
                description: User ID of the owner of the calendar.
                example: '70421274'
              visibility:
                type: boolean
                description: Indicates if the calendar is visible in the calendar list.
                example: true
              include_infreebusy:
                type: boolean
                description: Whether the calendar events should be included in free/busy lookup.
                example: true
              createdtime:
                type: integer
                description: Timestamp when the calendar was created (epoch time).
                example: 1663320706496
              calendar_createdtime:
                type: integer
                description: Timestamp when the calendar resource was initially created (epoch time).
                example: 1663320706496
              name:
                type: string
                description: Name of the calendar.
                example: User
              ctag:
                type: integer
                description: Sync tag of the calendar for change tracking.
                example: 1678958985948
              category:
                type: string
                description: Category of the calendar (e.g., own, shared).
                example: own
              status:
                type: boolean
                description: Indicates if the calendar is active.
                example: true
              caltype:
                type: string
                description: Type of calendar (e.g., own, group).
                example: own
  securitySchemes:
    Cliq_Auth:
      type: oauth2
      x-authorization-example: Bearer 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f
      flows:
        implicit:
          authorizationUrl: https://accounts.zoho.com/oauth/v2/auth
          scopes:
            ZohoCliq.CalendarEvents.ALL: Create , Read, Update and Manage events
            ZohoCalendar.calendar.ALL: Create, Read, Update and Manage calendar events
            ZohoCalendar.event.ALL: Create, Read, Update and Manage calendar events
            ZohoCalendar.search.READ: Search and read calendar events
