Skip to main content
Create a new platform user with automatic availability and meeting type setup, making them immediately ready for bookings.

Endpoint

POST /v4/user

Request Headers

HeaderRequiredDescription
AuthorizationYesBearer <your-api-key>
Content-TypeYesapplication/json

Request Body

Basic Fields

FieldTypeRequiredDescription
emailstringYesUser’s email address
givenNamestringYesUser’s first name
familyNamestringYesUser’s last name
timezonestringYesIANA timezone identifier (e.g., Europe/London)

Optional: Custom Availability

FieldTypeDescription
availability.namestringDisplay name for the availability schedule
availability.timezonestringTimezone for the schedule
availability.schedulearrayWeekly schedule with day and time intervals

Optional: Custom Meeting Type

FieldTypeDescription
meetingType.namestringDisplay name for the meeting type
meetingType.durationnumberMeeting duration in minutes
meetingType.slugstringURL-friendly identifier for the booking page

Examples

Basic Request

curl -X POST "https://api.meetergo.com/v4/user" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "givenName": "John",
    "familyName": "Smith",
    "timezone": "Europe/London"
  }'

With Custom Availability & Meeting Type

{
  "email": "[email protected]",
  "givenName": "John",
  "familyName": "Smith",
  "timezone": "Europe/London",
  "availability": {
    "name": "John's Business Hours",
    "timezone": "Europe/London",
    "schedule": [
      {
        "dayOfWeek": "monday",
        "intervals": [{ "from": "09:00", "to": "17:00" }]
      },
      {
        "dayOfWeek": "tuesday",
        "intervals": [{ "from": "09:00", "to": "17:00" }]
      },
      {
        "dayOfWeek": "wednesday",
        "intervals": [{ "from": "09:00", "to": "17:00" }]
      },
      {
        "dayOfWeek": "thursday",
        "intervals": [{ "from": "09:00", "to": "17:00" }]
      },
      {
        "dayOfWeek": "friday",
        "intervals": [{ "from": "09:00", "to": "17:00" }]
      }
    ]
  },
  "meetingType": {
    "name": "45 Minute Discovery Call",
    "duration": 45,
    "slug": "john-smith-45min"
  }
}

With Split Availability (Lunch Break)

{
  "email": "[email protected]",
  "givenName": "John",
  "familyName": "Smith",
  "timezone": "Europe/London",
  "availability": {
    "name": "Business Hours with Lunch",
    "timezone": "Europe/London",
    "schedule": [
      {
        "dayOfWeek": "monday",
        "intervals": [
          { "from": "09:00", "to": "12:00" },
          { "from": "13:00", "to": "17:00" }
        ]
      },
      {
        "dayOfWeek": "tuesday",
        "intervals": [
          { "from": "09:00", "to": "12:00" },
          { "from": "13:00", "to": "17:00" }
        ]
      }
    ]
  }
}

Response

Success (201 Created)

{
  "userId": "550e8400-e29b-41d4-a716-446655440000",
  "availabilityId": "660e8400-e29b-41d4-a716-446655440001",
  "meetingTypeId": "770e8400-e29b-41d4-a716-446655440002",
  "bookingUrl": "https://cal.meetergo.com/john-smith/45min-discovery-call",
  "companyId": "880e8400-e29b-41d4-a716-446655440003"
}
FieldDescription
userIdUUID of the created user
availabilityIdUUID of the created availability schedule
meetingTypeIdUUID of the created meeting type
bookingUrlPublic URL where customers can book meetings
companyIdUUID of the company the user belongs to
User Ready! The user is immediately ready for bookings. The bookingUrl can be shared with customers right away.
What was created automatically:
  • Platform user with the provided details
  • Default availability schedule (Mon-Fri 9-17 if not specified)
  • Default meeting type (30min Meeting if not specified)
  • Public booking URL for immediate use

Error Responses

400 Bad Request - Validation Error

{
  "statusCode": 400,
  "message": "Validation failed",
  "errors": [
    {
      "field": "email",
      "message": "Invalid email format"
    }
  ]
}

400 Bad Request - Invalid Timezone

{
  "statusCode": 400,
  "message": "Invalid timezone",
  "error": "Bad Request"
}

409 Conflict - Email Already Exists

{
  "statusCode": 409,
  "message": "User with this email already exists",
  "error": "Conflict"
}

Availability Schedule Format

The schedule array defines when the user is available for bookings.

Day of Week Values

  • monday
  • tuesday
  • wednesday
  • thursday
  • friday
  • saturday
  • sunday

Time Interval Format

Times are in 24-hour format (HH:mm):
{
  "dayOfWeek": "monday",
  "intervals": [
    { "from": "09:00", "to": "12:00" },
    { "from": "13:00", "to": "17:00" }
  ]
}
Days not included in the schedule are treated as unavailable. To make the user unavailable on weekends, simply omit saturday and sunday from the schedule.

Common Timezones

RegionTimezone
UKEurope/London
GermanyEurope/Berlin
FranceEurope/Paris
US EastAmerica/New_York
US WestAmerica/Los_Angeles
JapanAsia/Tokyo
AustraliaAustralia/Sydney
See the full list of IANA timezone identifiers.