Skip to main content
POST
/
api
/
public
/
v1
/
calendar
/
meetings
Create meeting
curl --request POST \
  --url https://app.msportal.ai/api/public/v1/calendar/meetings \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "title": "<string>",
  "startTime": "2023-11-07T05:31:56Z",
  "endTime": "2023-11-07T05:31:56Z",
  "isAllDay": true,
  "companyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "eventType": "QBR",
  "status": "Scheduled",
  "locationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "locationText": "<string>",
  "notes": "<string>",
  "participants": [
    {
      "email": "[email protected]",
      "userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "roleId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    }
  ]
}
'
{
  "data": {
    "id": "<string>",
    "title": "<string>",
    "startTime": "2023-11-07T05:31:56Z",
    "endTime": "2023-11-07T05:31:56Z",
    "isAllDay": true,
    "companyId": "<string>",
    "companyName": "<string>",
    "eventType": "<string>",
    "status": "<string>",
    "locationId": "<string>",
    "locationName": "<string>",
    "locationText": "<string>",
    "createdById": "<string>",
    "createdByName": "<string>",
    "recurrenceRule": "<string>",
    "meetingSource": "<string>",
    "externalEventId": "<string>",
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z",
    "notes": "<string>",
    "agendaLocked": true,
    "participants": [
      {
        "id": "<string>",
        "email": "[email protected]",
        "userId": "<string>",
        "userName": "<string>",
        "acceptanceStatus": "<string>",
        "invitationSent": true,
        "roleId": "<string>",
        "roleName": "<string>"
      }
    ],
    "participantCount": 123
  }
}

Authorizations

Authorization
string
header
required

Use your API key as a Bearer token. API keys can be generated in Settings → Integrations → API Access.

Body

application/json
title
string
required

Meeting title (required)

Required string length: 1 - 500
startTime
string<date-time>
required

Meeting start time in ISO 8601 format (required)

endTime
string<date-time>
required

Meeting end time in ISO 8601 format (required, must be after startTime)

isAllDay
boolean

Whether this is an all-day event (default: false)

companyId
string<uuid>

Associated company ID

eventType
enum<string>

Event type (default: Other)

Available options:
QBR,
OnSiteTechVisit,
InternalMeeting,
ClientCall,
ProjectMilestone,
ComplianceReview,
BusinessReview,
Other
status
enum<string>

Meeting status (default: Scheduled)

Available options:
Scheduled,
Confirmed,
Completed,
Canceled,
Rescheduled,
Pending Notes
locationId
string<uuid>

Location ID

locationText
string

Location description/address

Maximum string length: 500
notes
string

Meeting notes/description

Maximum string length: 10000
participants
object[]

List of participants to add to the meeting

Response

Meeting created successfully

data
object
required