> ## Documentation Index
> Fetch the complete documentation index at: https://docs.developers.mijnklantportaal.nl/llms.txt
> Use this file to discover all available pages before exploring further.

# Schedule Appointment

> Schedule a new appointment



## OpenAPI

````yaml /openapi.yaml post /appointments
openapi: 3.1.1
info:
  title: MijnKlantportaal API
  version: v1
servers:
  - url: https://api.mijnklantportaal.nl/v1
security:
  - APIKey: []
tags:
  - name: Agreements API
  - name: Appointments API
  - name: Customers API
  - name: Customer Groups API
  - name: Customer Invoices API
  - name: Customer Offers API
  - name: Customer Subscriptions API
  - name: Customer Subscription Packages API
  - name: Files API
  - name: File Request API
  - name: File Share API
  - name: Invoices API
  - name: Payment Links API
  - name: Punch Cards API
  - name: Tickets API
  - name: Webhooks API
paths:
  /appointments:
    post:
      tags:
        - Appointments API
      summary: Schedule Appointment
      description: Schedule a new appointment
      operationId: schedule-appointment
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - name
                - startsAt
                - endsAt
              properties:
                name:
                  type: string
                  example: Contract extension
                  description: Name of the appointment, what will show up in the calendar
                customerId:
                  type: string
                  example: cst_abcde123fgh
                  description: >-
                    ID of the customer, if the appoinment is with a customer
                    existing in your portal
                attendeeName:
                  type: string
                  example: John Doe
                  description: >-
                    Name of the person you will meet with, required when no
                    `customerId` is provided
                attendeeEmail:
                  type: string
                  example: johndoe@example.com
                  description: >-
                    Email of the person you will meet with, required when no
                    `customerId` is provided
                startsAt:
                  type: string
                  example: '2025-03-05 14:30:00'
                  description: >-
                    The date and time the appointment will take place, written
                    in format `Y-m-d H:i`
                endsAt:
                  type: string
                  example: '2025-03-05 16:00:00'
                  description: >-
                    The date and time the appointment will ends, written in
                    `Y-m-d H:i` format
      responses:
        '201':
          description: Returning the created Appointment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Appointment'
        '422':
          description: Something is wrong with the posted data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_ApiError'
components:
  schemas:
    Appointment:
      type: object
      description: Appointment
      properties:
        id:
          type: string
          example: apt_abc12346def678
          description: ID of the appointment, always starting with `apt_`.
        customerId:
          type: string
          example: cst_abc12345def678
          nullable: true
          description: ID of the Customer involved in this appointment, when the case
        attendeeName:
          type: string
          example: John Doe
          description: Name of the attendee of the meeting
        attendeeEmail:
          type: string
          example: john.doe@example.com
          description: Emailaddress of the attendee of the meeting
        startsAt:
          type: string
          example: '2025-03-05T16:00:00+02:00'
          description: Date and time when the appointment starts, written in ATOM format.
        endsAt:
          type: string
          example: '2025-03-05T16:30:00+02:00'
          description: Date and time when the appointment ends, written in ATOM format.
        status:
          type: string
          example: scheduled
          description: >-
            Current status of the appointment. Possible values are `scheduled`,
            `canceled`, and `pending`.
        onlineMeetingLink:
          type: string
          example: https://meet.google.com/abc-123
          nullable: true
          description: >-
            Link to the online meeting of the connected integration, when
            available
        createdAt:
          type: string
          example: '2025-03-04T17:23:14+02:00'
          description: >-
            Date and time when the appointment is added to MijnKlantportaal, not
            matter of the status. Written in ATOM format.
    Error_ApiError:
      type: object
      properties:
        message:
          type: string
          description: Explanation what went wrong
  securitySchemes:
    APIKey:
      type: http
      scheme: bearer

````