Skip to main content
Users are the foundation of scheduling in meetergo. Each user has their own availability schedule, meeting types, and booking URL.

User Types

TypeDescriptionCreated Via
Platform UserAPI-created users for your platform’s customersPOST /v4/user
Regular UserDashboard users who sign up directlyDashboard
Platform users are designed for multi-tenant scenarios where you’re building scheduling for your users.

Create a User

Create a platform user with automatic defaults:
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/Berlin"
  }'

Request Body

FieldTypeRequiredDescription
emailstringYesUser’s email address (must be unique)
givenNamestringYesFirst name
familyNamestringYesLast name
timezonestringYesIANA timezone (e.g., Europe/Berlin, America/New_York)
availabilityobjectNoCustom availability schedule
meetingTypeobjectNoCustom meeting type

Response

{
  "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/30min-meeting",
  "companyId": "880e8400-e29b-41d4-a716-446655440003"
}

Automatic Provisioning

When you create a user without custom settings, meetergo automatically creates:
ResourceDefault
AvailabilityMonday-Friday, 9:00-17:00 in user’s timezone
Meeting Type30-minute meeting named “30min Meeting”
Booking URLhttps://cal.meetergo.com/{slug}/{meeting-slug}

Custom Availability & Meeting Type

Specify custom availability and meeting type during creation:
{
  "email": "[email protected]",
  "givenName": "John",
  "familyName": "Smith",
  "timezone": "Europe/Berlin",
  "availability": {
    "name": "Business Hours",
    "timezone": "Europe/Berlin",
    "schedule": [
      {
        "dayOfWeek": "monday",
        "intervals": [
          { "from": "09:00", "to": "12:00" },
          { "from": "13: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": "15:00" }]
      }
    ]
  },
  "meetingType": {
    "name": "Discovery Call",
    "duration": 45,
    "slug": "discovery-call"
  }
}

Get Current User

Retrieve the authenticated user’s details:
curl -X GET "https://api.meetergo.com/v4/user/me" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "email": "[email protected]",
  "givenName": "John",
  "familyName": "Smith",
  "fullName": "John Smith",
  "timezone": "Europe/Berlin",
  "companyId": "880e8400-e29b-41d4-a716-446655440003",
  "createdAt": "2024-01-15T10:30:00Z"
}

Get Bookable Windows

Query available time slots for a user:
curl -X GET "https://api.meetergo.com/v4/user/{userId}/bookable-windows?startDate=2024-01-15&endDate=2024-01-20&meetingTypeId={meetingTypeId}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-meetergo-api-user-id: {userId}"

Query Parameters

ParameterTypeRequiredDescription
startDatestringYesStart date (YYYY-MM-DD)
endDatestringYesEnd date (YYYY-MM-DD)
meetingTypeIdstringNoFilter by specific meeting type
timezonestringNoReturn times in this timezone

Response

{
  "windows": [
    "2024-01-15T09:00:00Z",
    "2024-01-15T09:30:00Z",
    "2024-01-15T10:00:00Z",
    "2024-01-15T10:30:00Z",
    "2024-01-15T11:00:00Z"
  ]
}

Timezones

Use valid IANA timezone identifiers:
ExampleRegion
Europe/BerlinGermany
Europe/LondonUK
America/New_YorkUS East Coast
America/Los_AngelesUS West Coast
Asia/TokyoJapan
Australia/SydneyAustralia
Invalid timezones will return a 400 error. See IANA timezone database for the full list.

Best Practices

Store user IDs - Save the userId returned from user creation to reference the user later
Use appropriate timezones - Set the timezone based on where your user is located
Customize for your use case - Use custom availability and meeting types that match your business needs
Email uniqueness - Each user email must be unique within your company