---
title: "Get paginated appointments"
method: GET
path: "/v4/appointment/paginated"
tags: ["Appointment V4"]
---

# Get paginated appointments

`GET /v4/appointment/paginated`

## Request

- Base URL: `https://developer.meetergo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://developer.meetergo.com/v4/appointment/paginated`
- Auth: one of:
  - API key in header `x-meetergo-api-user-id`
  - HTTP bearer
  - HTTP bearer

Retrieves appointments with pagination support for the authenticated user

## Query parameters

- `sortBy` 'appointment.start' | 'appointment.createdAt'
- `sortDirection` 'ASC' | 'DESC'
- `page` number, required
- `pageSize` number, required
- `channel` 'local' | 'local-attendee' | 'google' | 'zoom' | 'phone' | 'phone-incoming' | 'whatsapp' | 'connect' | 'webex' | 'skypeForConsumer' | 'skypeForBusiness' | 'teamsForBusiness' | 'teamsForBusiness2' | 'teamsForExchange' | 'teams2ForExchange' | 'custom' | 'resource' | 'whereby' | 'kmeet' | 'zava' | 'jitsi' | 'nextcloudTalk' | 'openTalk' | 'alfaview': Meeting channel/location type
- `start` string
- `end` string
- `search` string
- `workspaceId` string
- `status` string
- `all` boolean
- `userId` string
- `meetingTypeId` string

## Response `200`

Paginated appointments retrieved successfully

- PaginatedAppointmentsResponseDto
  - `appointments` AppointmentResponseDto[], required: Array of appointments for the current page
    - `id` string, required: Appointment ID
    - `secret` string, required: Secret key for appointment authentication
    - `ics` string, required: ICS calendar data
    - `meetingInfo` MeetingInfo, required
      - `name` string, required: Name of the meeting type
      - `description` string, required: Description of the meeting type
      - `nameLocalised` LocalisedContent
        - `en` string, required
        - `de` string
        - `fr` string
        - `es` string
        - `no` string
        - `it` string
        - `nl` string
        - `da` string
        - `pl` string
        - `se` string
        - `tr` string
      - `descriptionLocalised` LocalisedContent
        - `en` string, required
        - `de` string
        - `fr` string
        - `es` string
        - `no` string
        - `it` string
        - `nl` string
        - `da` string
        - `pl` string
        - `se` string
        - `tr` string
      - `enableRedirect` boolean, required: Enable redirect after booking completion
      - `redirect` string, required: Redirect URL to navigate after booking
      - `passEventDetailsToRedirect` boolean, required: Pass event details (invitee name, email, form answers) as query params to redirect URL
      - `duration` number, required: Primary duration in minutes
      - `channel` 'local' | 'local-attendee' | 'google' | 'zoom' | 'phone' | 'phone-incoming' | 'whatsapp' | 'connect' | 'webex' | 'skypeForConsumer' | 'skypeForBusiness' | 'teamsForBusiness' | 'teamsForBusiness2' | 'teamsForExchange' | 'teams2ForExchange' | 'custom' | 'resource' | 'whereby' | 'kmeet' | 'zava' | 'jitsi' | 'nextcloudTalk' | 'openTalk' | 'alfaview', required: Meeting channel/location type
      - `customChannelName` string, required: Custom name for the meeting channel
      - `customChannelLink` string, required: Custom link for the meeting channel
      - `connectChannelName` string, required: Custom display name for the connect channel
      - `groupBooking` boolean, required: Enable group booking (multiple attendees per slot)
      - `showAvailableSlots` boolean, required: Show available spots count on the booking page
      - `enrichInvitee` boolean, required: Enable invitee data enrichment
      - `autoCreateSpace` boolean, required: Auto-create a Space when someone books
      - `spacePresetId` object, nullable: Space preset id used for the auto-created Space
      - `spaceAutoInvite` boolean, required: Publish the auto-created Space and invite the booker
      - `confirmationButton` ConfirmationButton, required
        - `useConfirmationButton` boolean, required
        - `text` string, required
        - `color` string, required
        - `link` string, required
      - `bufferBefore` number, required: Buffer time before meeting in minutes
      - `bufferAfter` number, required: Buffer time after meeting in minutes
      - `bufferMustStayWithinWorkingHours` boolean, required: Only offer slots where buffer fits within working hours (no spillover into breaks or after-hours)
      - `rollingSlots` boolean, required: Restart the slot grid after each appointment instead of keeping a fixed grid per working block
      - `color` object, nullable: Color for the meeting type in RGB format, e.g. "rgb(0, 153, 255)"
    - `hostingInfo` HostingInfoResponseDto, required
      - `mainHost` string, nullable: Main host user ID
      - `meetingLink` string, nullable: Meeting link for the appointment
      - `googleEventId` string, nullable: Google Calendar event ID
      - `googleConnectionSub` string, nullable: Google connection subject
      - `calendarConnectionId` string: Calendar connection ID for external calendars
      - `zoomMeetingId` number, nullable: Zoom meeting ID
      - `connectChannelId` string: Connect channel ID for external integrations
      - `wherebyMeetingId` string, nullable: Whereby meeting ID
      - `alfaviewMeetingId` string, nullable: alfaview meeting ID
      - `alfaviewModeratorLink` string, nullable: alfaview join URL with moderator permissions, for the host only
      - `calendarSyncProviders` AppointmentCalendarSync
        - `id` string, required: Calendar connection id
        - `type` string, required: Calendar connection type. Google, Outlook, etc.
        - `hostId` string, required: User id of the host
        - `eventId` string, required: Id of the external event that is created on the calendar.
        - `calendarId` string, required: Id of the external calendar on which the event is created.
    - `cancel` BookingActionInfoResponseDto, required
      - `actionAt` string: Timestamp when the action occurred
      - `actionBy` string, nullable: User ID who performed the action
      - `actionSource` 'attendee' | 'company' | 'host', required
      - `reason` string: Reason for the action (e.g., cancellation reason)
    - `crmOptions` MeetingCRMOptions, required
      - `hubspotContactSync` boolean, required
      - `hubspotContactStage` string, required
      - `hubspotCompanySync` boolean, required
      - `hubspotCompanyStage` string, required
      - `hubspotCompanyMatchingField` string, required
      - `hubspotDealSync` boolean, required
      - `hubspotDealStage` string, required
      - `hubspotPipelineId` string, required
      - `pipedriveDealSync` boolean, required
      - `pipedriveContactSync` boolean, required
      - `pipedrivePipelineId` number, nullable, required
      - `pipedriveStageId` number, nullable, required
      - `pipedriveUseExistingDeal` boolean, required
      - `closeDealSync` boolean, required
      - `closeContactSync` boolean, required
      - `closePipelineId` object, nullable, required
      - `closeStatusId` object, nullable, required
      - `closeUseExistingDeal` boolean, required
      - `centralStationContactSync` boolean, required
      - `centralStationDealSync` boolean, required
      - `centralStationPipelineId` number, nullable, required
      - `centralStationStageId` number, nullable, required
      - `linkandoSyncEnabled` boolean, required
      - `linkandoPlaybookId` number, nullable, required
      - `linkandoTemplateId` number, nullable, required
      - `evalancheEnabled` boolean, required
      - `klicktippEnabled` boolean, required
      - `getResponseEnabled` boolean, required
      - `getResponseCampaignId` string, nullable, required
      - `brevoEnabled` boolean, required
      - `sevdeskEnabled` boolean, required
      - `sevdeskCategoryId` number, nullable, required
      - `lexwareEnabled` boolean, required
      - `professionalWorksEnabled` boolean, required
      - `abAgentaEnabled` boolean, required
      - `smartWeContactSync` boolean, required
      - `smartWeCompanySync` boolean, required
      - `smartWeDealSync` boolean, required
      - `smartWeDealStage` string, required
      - `salesforceSyncEnabled` boolean, required
      - `salesforceCaseSync` boolean, required
      - `salesforceLeadSync` boolean, required
      - `salesforceOpportunitySync` boolean, required
      - `salesforceLeadStatus` string, required
      - `salesforceCaseStatus` string, required
      - `salesforceOpportunityStage` string, required
      - `salesforceDefaultObjectType` string, required
      - `internalCrmPipelineId` object, nullable, required
      - `internalCrmStageId` object, nullable, required
      - `crmOptInFieldName` object, nullable, required
    - `start` string, required: Appointment start time (ISO string)
    - `end` string, required: Appointment end time (ISO string)
    - `isCancelled` boolean, required: Whether the appointment is cancelled
    - `rescheduledAt` string: When the appointment was rescheduled
    - `rescheduledBy` string, nullable: Email address of the attendee, host, or operator who last rescheduled the appointment
    - `location` string: Meeting location
    - `attendees` AttendeeBasicDto[], required: Appointment attendees without relation properties
      - `id` string, required: Attendee ID
      - `secret` string, required: Attendee secret for authentication
      - `email` string: Attendee email address
      - `fullname` string: Attendee full name
      - `firstname` string: Attendee first name
      - `lastname` string: Attendee last name
      - `bringalongEmails` string[], required: Additional attendee emails (bring-along)
      - `notes` object, required: Attendee notes as key-value pairs
      - `receiveReminders` boolean, required: Whether attendee receives reminders
      - `phone` string: Attendee phone number
      - `language` string, required: Attendee preferred language
      - `timezone` string, required: Attendee timezone
      - `noShow` boolean, required: Whether attendee was a no-show
      - `noShowAt` string, date-time, nullable
      - `dataPolicyAccepted` boolean, required: Whether data policy was accepted
      - `doubleOptIn` string: Double opt-in confirmation timestamp
      - `createdAt` string, required: Creation timestamp
      - `updatedAt` string, required: Last update timestamp
      - `deletedAt` string: Soft deletion timestamp
      - `billingDetails` AttendeeBillingDetails
        - `company` string
        - `addressLine1` string
        - `addressLine2` string
        - `postalCode` string
        - `city` string
        - `countryCode` string: ISO 3166-1 alpha-2
        - `vatId` string: USt-IdNr.
    - `attendeeIds` string[], required: Array of attendee IDs
    - `roundRobinEntries` RoundRobinEntryDto[], required: Round robin entries for this appointment
      - `id` number, required
      - `userId` string, nullable
      - `groupId` string, nullable
      - `appointmentId` string, nullable
      - `queueId` string
      - `createdAt` string, required
      - `selectionReason` string
    - `meetingTypeId` string, required: Meeting type ID
    - `hostIds` string[], required: Array of host user IDs
    - `scheduledReminderIds` string[], required: Array of scheduled reminder IDs
    - `companyId` string, required: Company ID this appointment belongs to
    - `createdAt` string, required: Creation timestamp
    - `updatedAt` string, required: Last update timestamp
    - `deletedAt` string: Soft deletion timestamp
    - `resolvableErrors` ResolvableErrorBasicDto[], required: Appointment resolvable errors (error codes only)
      - `errorCode` string, required: Error code identifying the type of error
    - `paymentId` string: Payment ID if this is a paid appointment
    - `note` string: Appointment note
    - `transcription` string, nullable: Full meeting transcription in markdown format
    - `summary` string, nullable: AI-generated summary of the meeting in markdown format
  - `total` number, required: Total number of appointments matching the criteria

## Other responses

- `400`: The request did not validate. `message` lists the constraints that failed.
- `401`: Missing, malformed, or expired credentials.
- `403`: Authenticated, but not allowed: the plan does not include this feature, or the token is scoped away from it.
- `429`: Rate limited. Back off and retry.

---

[API](https://skmtc.dev/meetergo/apis/meetergo-platform-api.md) · [All operations](https://skmtc.dev/meetergo/apis/meetergo-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/meetergo/apis/meetergo-platform-api/revisions/b5d66cd8be67?raw)
