AccuLynx Calendar API

Manage company calendars and their appointments.

Operations 3

GET /calendars Get Calendars #
GET /calendars/{calendarId}/appointments Get Calendar Appointments #
GET /calendars/{calendarId}/appointments/{appointmentId} Get Appointment Details #

Specifications

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/acculynx:acculynx-calendar-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

acculynx-calendar-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.2614.0
  title: AccuLynx API V2 Calendar API
  description: 'If you are experiencing issues integrating with this API, please work with your web developer to review your programming before reaching out to us with an issue as we do not provide web development consulting services.


    API keys are for our customers only. If you are a business that is looking to integrate with AccuLynx, either on behalf of our customers or on your own, please click here to request access. Failure to do so can result in suspension of the AccuLynx account.


    The AccuLynx API provides customers programmatic access to their data within AccuLynx.


    The base url for these endpoints: is https://api.acculynx.com/api/v2


    Using SwaggerHub, you have the ability to test against a virtual server or you can test against the API itself. The virtual server is a mock server that allows you to test your calls without affecting your production data. Testing against the virtual server will always respond with a fixed response regardless of your inputs. It is provided to give you a production model of the information returned.


    Testing against the API requires an API Key and will affect your real production data. Get your API key from your AccuLynx API page. From the Servers list box below, select the api.acculynx.com site. When you click on green Authorize button next to the Servers list box, you will be prompted for a Bearer token. Enter your API Key and click Authorize again.


    To make it easier to connect AccuLynx to other applications you use, we have made our Zapier integration publicly available. Instead of contacting us to help you enable the use of Zapier to integrate additional applications with AccuLynx, you can now get started by going to the Zapier website (https://zapier.com) and searching for the AccuLynx application. Zaps are automated tasks that you run over and over again between AccuLynx and other online applications. We have an action that allows you to pair with a trigger to create leads in AccuLynx and a trigger as well as other actions and triggers coming in the near future! To get started search for AccuLynx on the Zapier website!


    If you don’t already have a Zapier account, create one or log into your https://zapier.com/account.


    AccuLynx Action ZAP basic documentation: https://support.acculynx.com/hc/en-us/articles/360034839751-Creating-a-Zap-with-Zapier'
  termsOfService: https://my.acculynx.com/signin/TermsView
  contact:
    email: api@acculynx.com
    url: https://api.acculynx.com/
  license:
    name: Proprietary
    url: https://my.acculynx.com/signin/TermsView
servers:
- description: AccuLynx Production Base Url
  url: https://api.acculynx.com/api/v2
security:
- bearerAuth: []
tags:
- name: Calendar
  description: Manage company calendars and their appointments.
paths:
  /calendars:
    get:
      summary: Get Calendars
      description: Use this endpoint to get a list of calendars for the location. This endpoint will return a paginated response starting from the given record index.
      operationId: getCalendars
      parameters:
      - $ref: '#/components/parameters/pageSizeQuery'
      - $ref: '#/components/parameters/recordStartIndexQuery'
      responses:
        '200':
          description: 'OK

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/calendarCollection'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '416':
          $ref: '#/components/responses/416RangeNotSatisfiable'
      tags:
      - Calendar
  /calendars/{calendarId}/appointments:
    get:
      summary: Get Calendar Appointments
      description: Use this endpoint to get a list of appointments for the specified calendar. The request range should not exceed 90 days.
      operationId: getAppointments
      parameters:
      - $ref: '#/components/parameters/calendarIdPath'
      - $ref: '#/components/parameters/eventTypeQuery'
      - $ref: '#/components/parameters/pageSizeQuery'
      - $ref: '#/components/parameters/recordStartIndexQuery'
      - $ref: '#/components/parameters/startDateQueryRequired'
      - $ref: '#/components/parameters/endDateQueryRequired'
      - $ref: '#/components/parameters/jobIdQueryNotRequired'
      responses:
        '200':
          description: 'OK

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/calendarSearchEventCollection'
        '400':
          description: 'The query parameters are invalid.

            '
        '404':
          description: 'The given calendar was not found.

            '
        '416':
          description: 'The value for the pageStartIndex query parameter is outside the range of the return values.

            '
      tags:
      - Calendar
  /calendars/{calendarId}/appointments/{appointmentId}:
    get:
      summary: Get Appointment Details
      description: Use this endpoint to get the appointment details for a specific calendar event.
      operationId: getAppointmentById
      parameters:
      - $ref: '#/components/parameters/calendarIdPath'
      - $ref: '#/components/parameters/appointmentIdPath'
      responses:
        '200':
          description: 'OK

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/calendarEvent'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
      tags:
      - Calendar
components:
  schemas:
    calendarLink:
      type: object
      properties:
        id:
          type: string
          description: The unique ID of the Calendar.
          format: uuid
          example: fa3b4dce-d1a9-4fb7-84d6-192e139f15b2
        name:
          type: string
          description: The name of the Calendar.
          example: Location Calendar
    calendarCollection:
      allOf:
      - $ref: '#/components/schemas/baseCollection'
      - type: object
        properties:
          items:
            type: array
            items:
              $ref: '#/components/schemas/calendarLink'
    calendarSearchEvent:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The unique GUID of the calendar event.
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        eventType:
          type: string
          enum:
          - All
          - Personal
          - InitialAppointment
          - MaterialDelivery
          - CrewLabor
        title:
          type: string
          description: The name of the calendar event.
          example: Initial Appointment
        attendees:
          type: array
          items:
            $ref: '#/components/schemas/companyUserLink'
        job:
          $ref: '#/components/schemas/jobLink'
        allDay:
          type: boolean
          description: Whether the event is an all day event.
        start:
          type: string
          format: date-time
          example: '2023-12-07T16:03:47Z'
          description: The start date/time of the event.
        end:
          type: string
          format: date-time
          example: '2024-01-07T16:03:47Z'
          description: The end date/time of the event.
        jobName:
          type: string
          description: The name of the job associated with the event, if any.\
          example: 'RC-2120: John Smith'
        location:
          type: string
          description: The address where the appointment is to take place.
          example: 123 Pleasant Grove Road, \nACity, IL, 12345
        sharedWithCustomerPortal:
          type: boolean
          description: Indicates if the event is shared with the customer portal.
          example: true
        _link:
          type: string
          description: The URI of the this calendar event.
          example: https://api.acculynx.com/api/v2/calendars/58ca0eab-7882-46a6-8456-854beae8fb4a/appointments/3fa85f64-5717-4562-b3fc-2c963f66afa6
    baseCollection:
      type: object
      properties:
        count:
          type: integer
          description: The total number of items matching the current query.
        pageSize:
          type: integer
          description: The requested or default page size.
        pageStartIndex:
          type: integer
          description: The requested or default index of the first element to return.
    jobLink:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The job's unique ID.
          example: e591bf22-9828-4144-bca8-42cbb8c6e2c0
        _link:
          type: string
          description: The URI of this Job.
          example: https://api.acculynx.com/api/v2/jobs/e591bf22-9828-4144-bca8-42cbb8c6e2c0
    calendarSearchEventCollection:
      allOf:
      - $ref: '#/components/schemas/baseCollection'
      - type: object
        properties:
          items:
            type: array
            items:
              $ref: '#/components/schemas/calendarSearchEvent'
    error:
      type: object
      properties:
        type:
          type: string
          description: The URI of an explanation of the error
          example: https://tools.ietf.org/html/rfc7235#section-3.1
        title:
          type: string
          description: Error description
          example: This error happened.
        status:
          type: number
          description: HTTP status code
          example: 400
        detail:
          type: string
          description: Any details available for this error
          example: More info about this error.
        traceId:
          type: string
          description: An identifier that may be useful to AccuLynx support
          example: '|40f2a8f1-4db865dd47a69226.'
      required:
      - type
      - title
      - status
    calendarEvent:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The unique GUID of the calendar event.
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        title:
          type: string
          description: The name of the calendar event.
          example: Initial Appointment
        start:
          type: string
          format: date-time
          example: '2023-12-07T16:03:47Z'
          description: The start date/time of the event.
        end:
          type: string
          format: date-time
          example: '2024-01-07T16:03:47Z'
          description: The end date/time of the event.
        allDay:
          type: boolean
          description: Whether the event is an all day event.
        jobId:
          type: string
          description: The unique GUID of the job associated with the event, if any.
          example: b4c09ad6-1d53-4a34-8a45-d989660e12d8
        jobName:
          type: string
          description: The name of the job associated with the event, if any.\
          example: 'RC-2120: John Smith'
        location:
          type: string
          description: The address where the appointment is to take place.
          example: 123 Pleasant Grove Road, \nACity, IL, 12345
        notes:
          type: string
          description: other information related to the appointment.
          example: 'Customer contact information:\nCompany Name- Contact Name\nJob: N/A\n1234 Pleasant Grove Road, \nACity, IL, 12345\n(555) 123-45671 - mobile - Primary\nmyemail@myprovider.net - Primary\n'
        eventType:
          type: string
          enum:
          - Personal
          - Initial Appointment
          - Material Order
          - Labor Order
        _link:
          type: string
          description: The URI of the this calendar event.
          example: https://api.acculynx.com/api/v2/calendars/58ca0eab-7882-46a6-8456-854beae8fb4a/appointments/3fa85f64-5717-4562-b3fc-2c963f66afa6
    companyUserLink:
      type: object
      properties:
        id:
          type: string
          description: The unique GUID of the AccuLynx User.
          format: uuid
          example: 228db892-3b49-4455-b839-ffd8576d8731
        _link:
          type: string
          description: The unique URI of the AccuLynx User.
          example: https://api.acculynx.com/api/v2/users/228db892-3b49-4455-b839-ffd8576d8731
      description: ''
  parameters:
    endDateQueryRequired:
      name: endDate
      in: query
      description: End date for the query, in YYYY-MM-DD format.
      required: true
      schema:
        type: string
        format: date
    appointmentIdPath:
      name: appointmentId
      in: path
      description: The appointment's unique identifier
      required: true
      schema:
        type: string
        format: uuid
    calendarIdPath:
      name: calendarId
      in: path
      description: The calendar's unique identifier
      required: true
      schema:
        type: string
        format: uuid
    startDateQueryRequired:
      name: startDate
      in: query
      description: Start date for the query, in YYYY-MM-DD format.
      required: true
      schema:
        type: string
        format: date
    jobIdQueryNotRequired:
      name: jobId
      in: query
      description: The job's unique identifier
      required: false
      schema:
        type: string
        format: uuid
    eventTypeQuery:
      name: eventType
      in: query
      description: "Enter one or more event types, separated by commas. \nOnly events with the specified types will be included in the response. \nIf no value is specified, the default value will be \"All\". \nPossible values: All, Personal, InitialAppointment, MaterialDelivery, CrewLabor\n"
      required: false
      schema:
        type: string
        example: All,Personal,InitialAppointment
        default: All
    pageSizeQuery:
      name: pageSize
      in: query
      description: How many items to be returned at a time.
      required: false
      schema:
        type: integer
    recordStartIndexQuery:
      name: recordStartIndex
      in: query
      description: The zero-based index of the first record to return.
      required: false
      schema:
        type: integer
        default: 0
  responses:
    416RangeNotSatisfiable:
      description: Range Not Satisfiable.
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
          examples:
            RangeNotSatisfiable:
              summary: Range Not Satisfiable
              value:
                message: The range of data requested from the resource is invalid.
            PaginationRangeNotSatisfiable:
              summary: Pagination Range Not Satisfiable
              value:
                message: The requested pagination range falls outside the available data. Check the `count` field from a prior response and adjust your pagination parameters.
    404NotFound:
      description: The requested resource was not found. Verify the ID in the request path is correct and that the resource exists.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    400BadRequest:
      description: The request was malformed or contained invalid field values. Check the error response body for details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    401Unauthorized:
      description: The API key provided is missing, invalid, or has been deactivated. Verify your API key and try again.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
x-provenance:
  method: searched
  source: https://apidocs.acculynx.com/reference
  harvested: '2026-10-28'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://apidocs.acculynx.com/reference/createjob.md
  - https://apidocs.acculynx.com/reference/getaccountingintegrationssyncchangesforjob.md
  - https://apidocs.acculynx.com/reference/getaccounttypebyid.md
  - https://apidocs.acculynx.com/reference/getacculynxcountries.md
  - https://apidocs.acculynx.com/reference/getacculynxcountry.md
  - https://apidocs.acculynx.com/reference/getacculynxstate.md
  - https://apidocs.acculynx.com/reference/getacculynxstates.md
  - https://apidocs.acculynx.com/reference/getacculynxunitsofmeasure-1.md
  - https://apidocs.acculynx.com/reference/getactiveaccounttypes.md
  - https://apidocs.acculynx.com/reference/getactiveleadsources.md
  - https://apidocs.acculynx.com/reference/getadjusterforjob.md
  - https://apidocs.acculynx.com/reference/getappointmentbyid.md
  - https://apidocs.acculynx.com/reference/getappointments.md
  - https://apidocs.acculynx.com/reference/getarownerforjob.md
  - https://apidocs.acculynx.com/reference/getcalendars.md
  - https://apidocs.acculynx.com/reference/getcompanydocumentfolders.md
  - https://apidocs.acculynx.com/reference/getcompanyrepresentativeforjob.md
  - https://apidocs.acculynx.com/reference/getcompanysettings.md
  - https://apidocs.acculynx.com/reference/getcompanysettingscustomfields.md
  - https://apidocs.acculynx.com/reference/getcompanysettingsjobsettingsjobcategories.md
  - https://apidocs.acculynx.com/reference/getcompanysettingsjobsettingstradetypes.md
  - https://apidocs.acculynx.com/reference/getcompanysettingsjobsettingsworktypes.md
  - https://apidocs.acculynx.com/reference/getcompanysettingslocationsettingscountries.md
  - https://apidocs.acculynx.com/reference/getcompanysettingslocationsettingscountriescountryidstates.md
  - https://apidocs.acculynx.com/reference/getcontact.md
  - https://apidocs.acculynx.com/reference/getcontactcustomfieldbyid.md
  - https://apidocs.acculynx.com/reference/getcontactcustomfields.md
  - https://apidocs.acculynx.com/reference/getcontactemailaddressbyid.md
  - https://apidocs.acculynx.com/reference/getcontactemailaddresses.md
  - https://apidocs.acculynx.com/reference/getcontactjobs.md
  - https://apidocs.acculynx.com/reference/getcontactphonenumber.md
  - https://apidocs.acculynx.com/reference/getcontactphonenumberbyid.md
  - https://apidocs.acculynx.com/reference/getcontacts.md
  - https://apidocs.acculynx.com/reference/getcontacttypes.md
  - https://apidocs.acculynx.com/reference/getcurrentjobmilestone.md
  - https://apidocs.acculynx.com/reference/getestimatebyid.md
  - https://apidocs.acculynx.com/reference/getestimates.md
  - https://apidocs.acculynx.com/reference/getestimatesectionbyid.md
  - https://apidocs.acculynx.com/reference/getestimatesectionitem.md
  - https://apidocs.acculynx.com/reference/getestimatesectionitems.md
  - https://apidocs.acculynx.com/reference/getestimatesections.md
  - https://apidocs.acculynx.com/reference/getestimatesforjob.md
  - https://apidocs.acculynx.com/reference/getfinancialsbyfinancialid.md
  - https://apidocs.acculynx.com/reference/getfinancialsforjob.md
  - https://apidocs.acculynx.com/reference/getfinancialssupplementitemcollection.md
  - https://apidocs.acculynx.com/reference/getfinancialssupplementnotationcollection.md
  - https://apidocs.acculynx.com/reference/getfinancialssupplementsforcompany.md
  - https://apidocs.acculynx.com/reference/getinitialappointmentforjob.md
  - https://apidocs.acculynx.com/reference/getinsurancecompanies.md
  - https://apidocs.acculynx.com/reference/getinsuranceforjob.md
  - https://apidocs.acculynx.com/reference/getinvoicebyid.md
  - https://apidocs.acculynx.com/reference/getinvoicesforjob.md
  - https://apidocs.acculynx.com/reference/getjob.md
  - https://apidocs.acculynx.com/reference/getjobcontact.md
  - https://apidocs.acculynx.com/reference/getjobcontacts.md
  - https://apidocs.acculynx.com/reference/getjobcustomfieldbyid.md
  - https://apidocs.acculynx.com/reference/getjobcustomfields.md
  - https://apidocs.acculynx.com/reference/getjobexternalreferences.md
  - https://apidocs.acculynx.com/reference/getjobhistory.md
  - https://apidocs.acculynx.com/reference/getjobmilestonebyid.md
  - https://apidocs.acculynx.com/reference/getjobs.md
  - https://apidocs.acculynx.com/reference/getjobstatusbyid.md
  - https://apidocs.acculynx.com/reference/getleadhistory.md
  - https://apidocs.acculynx.com/reference/getleadsourcebyid.md
  - https://apidocs.acculynx.com/reference/getleadsourcechildbyid.md
  - https://apidocs.acculynx.com/reference/getmilestones.md
  - https://apidocs.acculynx.com/reference/getmilestonesforjob.md
  - https://apidocs.acculynx.com/reference/getpayments.md
  - https://apidocs.acculynx.com/reference/getpaymentsoverviewforjob.md
  - https://apidocs.acculynx.com/reference/getphotovideotags.md
  - https://apidocs.acculynx.com/reference/getping.md
  - https://apidocs.acculynx.com/reference/getreportbyinstanceid.md
  - https://apidocs.acculynx.com/reference/getreportinstacerecipientbyid.md
  - https://apidocs.acculynx.com/reference/getreportlatestinstance.md
  - https://apidocs.acculynx.com/reference/getreportsbyinstanceinstancerunsbyscheduleid.md
  - https://apidocs.acculynx.com/reference/getreportsrecipientsbyinstanceid.md
  - https://apidocs.acculynx.com/reference/getrepresentativesforjob.md
  - https://apidocs.acculynx.com/reference/getsalesownerforjob.md
  - https://apidocs.acculynx.com/reference/getstatusesformilestone.md
  - https://apidocs.acculynx.com/reference/getsupplementbyid.md
  - https://apidocs.acculynx.com/reference/getuser.md
  - https://apidocs.acculynx.com/reference/getusers.md
  - https://apidocs.acculynx.com/reference/getworksheetamendmentbyid.md
  - https://apidocs.acculynx.com/reference/getworksheetamendmentsbyid.md
  - https://apidocs.acculynx.com/reference/getworksheetbyid.md
  - https://apidocs.acculynx.com/reference/postaddjobdocument.md
  - https://apidocs.acculynx.com/reference/postarownerforjob.md
  - https://apidocs.acculynx.com/reference/postcompanyrepresentativeforjob.md
  - https://apidocs.acculynx.com/reference/postcontactemailaddresses.md
  - https://apidocs.acculynx.com/reference/postcontactlog.md
  - https://apidocs.acculynx.com/reference/postcontactnotes.md
  - https://apidocs.acculynx.com/reference/postcontactphonenumber.md
  - https://apidocs.acculynx.com/reference/postcontacts.md
  - https://apidocs.acculynx.com/reference/postcontactsearch.md
  - https://apidocs.acculynx.com/reference/postcreatejobexternalreference.md
  - https://apidocs.acculynx.com/reference/postcreatejobmessage.md
  - https://apidocs.acculynx.com/reference/postcreatepaymentadditionalexpense.md
  - https://apidocs.acculynx.com/reference/postcreatepaymentpaid.md
  - https://apidocs.acculynx.com/reference/postcreatepaymentreceived.md
  - https://apidocs.acculynx.com/reference/postjobmeasurementsupload.md
  - https://apidocs.acculynx.com/reference/postjobmeasurementsuploadfiles.md
  - https://apidocs.acculynx.com/reference/postreplyjobmessage.md
  - https://apidocs.acculynx.com/reference/postsalesownerforjob.md
  - https://apidocs.acculynx.com/reference/postuploadphotoorvideo.md
  - https://apidocs.acculynx.com/reference/postworksheetsectionitem.md
  - https://apidocs.acculynx.com/reference/putadjusterforjob.md
  - https://apidocs.acculynx.com/reference/putcontactcustomfieldbyid.md
  - https://apidocs.acculynx.com/reference/putcontactcustomfields.md
  - https://apidocs.acculynx.com/reference/putinitialappointmentforjob.md
  - https://apidocs.acculynx.com/reference/putinsurancecompanyforjob.md
  - https://apidocs.acculynx.com/reference/putinsuranceinformationforjob.md
  - https://apidocs.acculynx.com/reference/putjobcustomfieldbyid.md
  - https://apidocs.acculynx.com/reference/putjobcustomfields.md
  - https://apidocs.acculynx.com/reference/putjoblocationaddress.md
  - https://apidocs.acculynx.com/reference/putpriorityforjob.md
  - https://apidocs.acculynx.com/reference/searchjobs.md
  - https://apidocs.acculynx.com/reference/updatejobcategory.md
  - https://apidocs.acculynx.com/reference/updatejobleadsource.md
  - https://apidocs.acculynx.com/reference/updatejobtradetypes.md
  - https://apidocs.acculynx.com/reference/updatejobworktype.md
  merge:
    pages: 120
    deduped: 1079
    conflicts_kept_first: 0