> ## Documentation Index
> Fetch the complete documentation index at: https://developer.meetergo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create platform user

> Creates a new platform user with automatically generated availability schedule and meeting type. The user will be associated with your company and ready for bookings immediately. Basic information for availability (weekly schedule, timezone) and meeting type (name, duration, slug) can be provided in the request. If not provided, default values are used: availability defaults to business hours (9-17 Mon-Fri) in Europe/Berlin timezone, and meeting type defaults to "30min Meeting" with 30-minute duration. The response includes IDs for the created user, availability, and meeting type, plus a ready-to-use public booking URL. The defaultAvailabilityId can be used to update availability via PATCH, and meeting types can be fetched and modified or new ones created.



## OpenAPI

````yaml /openapi.json post /v4/user
openapi: 3.0.0
info:
  title: meetergo Platform API
  description: >-
    Comprehensive scheduling API for creating users, managing availability,
    handling bookings, and connecting calendar providers. Enables seamless
    integration with external platforms and applications.
  version: 0.0.0
  contact: {}
  termsOfService: https://www.meetergo.com/tos/
servers: []
security: []
tags:
  - name: User V4
    description: Create and manage users in your workspace
  - name: Meeting Type V4
    description: Configure meeting templates with durations, buffers, and conferencing
  - name: availability
    description: Manage weekly schedules and availability settings
  - name: Booking V4
    description: Create new bookings
  - name: Booking Availability V4
    description: Query available time slots for booking
  - name: Appointment V4
    description: Manage existing appointments
  - name: Attendee V4
    description: Manage attendee details and notes
  - name: Calendar Connections V4
    description: Connect and sync external calendars
  - name: One Time Booking Link V4
    description: Create single-use booking links
  - name: availability-exception
    description: Override availability for specific dates
  - name: Booking Link V4
    description: Configure various booking page types
  - name: Personal Page V4
    description: Manage user profile pages
  - name: Handoff V4
    description: Reassign meetings to other hosts
  - name: Calendar Auth V4
    description: OAuth callbacks for calendar providers
  - name: Queue V4
    description: Round-robin and queue-based routing (Beta)
  - name: Queue User Group V4
    description: Manage queue user groups (Beta)
  - name: Meeting Type Template V4
    description: Reusable meeting type configurations (Beta)
  - name: Attendee Pending V4
    description: Manage pending attendee approvals (Beta)
  - name: Provisional Booking V4
    description: Manage provisional/unconfirmed bookings (Beta)
paths:
  /v4/user:
    post:
      tags:
        - User V4
      summary: Create platform user
      description: >-
        Creates a new platform user with automatically generated availability
        schedule and meeting type. The user will be associated with your company
        and ready for bookings immediately. Basic information for availability
        (weekly schedule, timezone) and meeting type (name, duration, slug) can
        be provided in the request. If not provided, default values are used:
        availability defaults to business hours (9-17 Mon-Fri) in Europe/Berlin
        timezone, and meeting type defaults to "30min Meeting" with 30-minute
        duration. The response includes IDs for the created user, availability,
        and meeting type, plus a ready-to-use public booking URL. The
        defaultAvailabilityId can be used to update availability via PATCH, and
        meeting types can be fetched and modified or new ones created.
      operationId: createPlatformUser
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreatePlatformUserDto'
      responses:
        '201':
          description: >-
            Platform user created successfully with auto-generated availability
            and meeting type. Returns user ID, availability ID, meeting type ID,
            company ID, and public booking URL that customers can use
            immediately.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatePlatformUserResponseDto'
      security:
        - ApiUserHeader: []
        - JWT: []
        - ApiKey: []
components:
  schemas:
    CreatePlatformUserDto:
      type: object
      properties:
        email:
          type: string
          format: email
          description: The email address of the user
        givenName:
          type: string
          description: The first name of the user. Defaults to the email prefix
        familyName:
          type: string
          description: The last name of the user. Defaults to empty string
        slug:
          type: string
          minLength: 5
          description: >-
            Optional unique slug for the user (minimum 5 characters). Defaults
            to creating slug via the email.
        timezone:
          type: string
          description: User timezone. Defaults to "Europe/Berlin"
          example: America/New_York
        availability:
          description: >-
            Availability configuration. Creates default availability if not
            specified
          allOf:
            - $ref: '#/components/schemas/CreateAvailabilityOptionDto'
        meetingType:
          description: >-
            Meeting type configuration. Creates default meeting type if not
            specified
          allOf:
            - $ref: '#/components/schemas/CreateMeetingTypeOptionDto'
      required:
        - email
    CreatePlatformUserResponseDto:
      type: object
      properties:
        userId:
          type: string
          description: Unique ID of the created platform user
          example: 550e8400-e29b-41d4-a716-446655440000
        availabilityId:
          type: string
          description: ID of the created availability schedule
          example: 660e8400-e29b-41d4-a716-446655440001
        meetingTypeId:
          type: string
          description: ID of the created meeting type
          example: 770e8400-e29b-41d4-a716-446655440002
        bookingUrl:
          type: string
          description: Public URL where customers can book appointments
          example: https://book.customdomain.com/john-doe/30min-meeting
        companyId:
          type: string
          description: ID of the company this user belongs to
          example: 880e8400-e29b-41d4-a716-446655440003
      required:
        - userId
        - availabilityId
        - meetingTypeId
        - bookingUrl
        - companyId
    CreateAvailabilityOptionDto:
      type: object
      properties:
        name:
          type: string
          description: >-
            Name of the availability. Defaults to "{givenName}'s Default
            Availability"
        schedule:
          description: >-
            Weekly schedule for availability. Defaults to business hours (9-17
            Mon-Fri)
          allOf:
            - $ref: '#/components/schemas/WeeklySchedule'
        timezone:
          type: string
          description: >-
            Timezone for the availability. Inherits from user timezone if not
            specified
    CreateMeetingTypeOptionDto:
      type: object
      properties:
        name:
          type: string
          description: Name of the meeting type. Defaults to "30min Meeting"
        duration:
          type: number
          minimum: 1
          description: Duration of the meeting in minutes. Defaults to 30
        slug:
          type: string
          description: URL slug for the meeting type. Auto-generated if not provided
          minLength: 3
        daysIntoFuture:
          description: >-
            Date range restrictions for booking availability. Controls when
            meetings can be booked (limit/range/forever modes)
          allOf:
            - $ref: '#/components/schemas/DaysIntoFutureSetting'
        channel:
          enum:
            - local
            - local-attendee
            - google
            - zoom
            - phone
            - phone-incoming
            - whatsapp
            - connect
            - webex
            - skypeForConsumer
            - skypeForBusiness
            - teamsForBusiness
            - teamsForBusiness2
            - teamsForExchange
            - teams2ForExchange
            - custom
            - resource
            - whereby
            - kmeet
            - zava
            - jitsi
          type: string
          description: Meeting channel/venue type. Defaults to "phone" (outgoing call)
    WeeklySchedule:
      type: object
      properties:
        monday:
          $ref: '#/components/schemas/DaySchedule'
        tuesday:
          $ref: '#/components/schemas/DaySchedule'
        wednesday:
          $ref: '#/components/schemas/DaySchedule'
        thursday:
          $ref: '#/components/schemas/DaySchedule'
        friday:
          $ref: '#/components/schemas/DaySchedule'
        saturday:
          $ref: '#/components/schemas/DaySchedule'
        sunday:
          $ref: '#/components/schemas/DaySchedule'
      required:
        - monday
        - tuesday
        - wednesday
        - thursday
        - friday
        - saturday
        - sunday
    DaysIntoFutureSetting:
      type: object
      properties:
        mode:
          type: string
        bookingLimit:
          type: number
        countMode:
          type: string
        rangeMin:
          format: date-time
          type: string
        rangeMax:
          format: date-time
          type: string
      required:
        - mode
    DaySchedule:
      type: object
      properties:
        enabled:
          type: boolean
        hours:
          type: array
          items:
            $ref: '#/components/schemas/HoursSchedule'
      required:
        - enabled
        - hours
    HoursSchedule:
      type: object
      properties:
        start:
          type: string
        end:
          type: string
      required:
        - start
        - end
  securitySchemes:
    ApiUserHeader:
      type: apiKey
      in: header
      name: x-meetergo-api-user-id
      description: >-
        User ID to act on behalf of. Platform API Keys only (required with an
        API Key unless the endpoint states otherwise). Requests authenticated
        with a Personal Access Token are rejected if this header names another
        user.
    JWT:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: JWT Bearer token for standard user authentication
    ApiKey:
      scheme: bearer
      bearerFormat: API Key
      type: http
      description: >-
        Bearer token: a Platform API Key (format: ak_live:<uuid>:<secret>) or a
        Personal Access Token (format: rgo-...). PATs always act as the token
        owner.

````