API Reference
This section contains the public API reference for the Public API. Only the essential public contracts are documented here for security and clarity.
🔐 Authentication Endpoints
POST /{tenantId}/authentication/token
Purpose: Obtain access token using client credentials
Request Body:
{
"clientId": "string",
"clientSecret": "string"
}
Response:
{
"accessToken": "string",
"refreshToken": "string",
"expiresIn": 3600
}
Response Codes:
200- Success400- Invalid credentials401- Authentication failed
📅 Appointment Endpoints
GET /{tenantId}/appointment
Purpose: Retrieve a specific appointment
Headers:
Authorization: Bearer {token}
Query Parameters:
appointmentId(required): The appointment IDadId(required): The AD user IDdomainId(required): The AD tenant ID
Response: AppointmentResponseDto
GET /{tenantId}/appointment/preview
Purpose: Preview multiple appointments
Headers:
Authorization: Bearer {token}
Query Parameters:
domainId(required): The AD tenant IDadId(required): The AD user IDstartDate(required): Start date filter (ISO 8601 format)`endDate(required): End date filter (ISO 8601 format)`
Response: List appointment preview data AppointmentResponseDto
POST /{tenantId}/appointment
Purpose: Create a new appointment
Headers:
Authorization: Bearer {token}
Request Body: CreateAppointmentDto
Response:
{
"appointmentId": "string"
}
PUT /{tenantId}/appointment
Purpose: Update an existing appointment
Headers:
Authorization: Bearer {token}
Request Body: UpdateAppointmentDto
Response: Updated appointment details
DELETE /{tenantId}/appointment
Purpose: Delete an appointment
Headers:
Authorization: Bearer {token}
Request Body:
{
"domainId": "string",
"adId": "string",
"appointmentId": "string"
}
Response: Success confirmation
📋 Data Models
CreateAppointmentDto
{
"domainId": "string",
"subject": "string",
"body": {
"content": "string",
"contentType": "Text|Html"
},
"startTime": "2024-01-15T10:00:00Z",
"endTime": "2024-01-15T11:00:00Z",
"timeZone": "UTC",
"showAsStatus": "Free|Busy|Tentative|OutOfOffice",
"reminderMinutesBeforeStart": 15,
"isReminderOn": true,
"location": {
"displayName": "string"
},
"importance": "Low|Normal|High",
"attendees": [
{
"emailAddress": {
"name": "string",
"address": "email@domain.com"
},
"type": "Required|Optional|Resource"
}
]
}
UpdateAppointmentDto
Similar to CreateAppointmentDto but includes:
{
"id": "appointment-id",
// ... other fields same as CreateAppointmentDto
}
AppointmentResponseDto
{
"id": "string",
"subject": "string",
"body": {
"content": "string",
"contentType": "string"
},
"start": {
"dateTime": "2024-01-15T10:00:00Z",
"timeZone": "UTC"
},
"end": {
"dateTime": "2024-01-15T11:00:00Z",
"timeZone": "UTC"
},
"organizer": {
"emailAddress": {
"name": "string",
"address": "string"
}
},
"attendees": [
{
"emailAddress": {
"name": "string",
"address": "string"
},
"type": "string"
}
],
"location": {
"displayName": "string"
},
"importance": "string",
"showAsStatus": "string",
"isAllDay": false,
"isReminderOn": true,
"reminderMinutesBeforeStart": 15,
"createdDateTime": "2024-01-15T09:00:00Z",
"lastModifiedDateTime": "2024-01-15T09:30:00Z"
}
🔑 Common Enumerations
Importance
Low- Low priorityNormal- Normal priority (default)High- High priority
ShowAsStatus
Free- Show as freeBusy- Show as busy (default)Tentative- Show as tentativeOutOfOffice- Show as out of office
AttendeeType
Required- Required attendeeOptional- Optional attendeeResource- Resource (room, equipment)
BodyType
Text- Plain text contentHtml- HTML content
⚠️ Important Notes
- Authentication: All appointment endpoints require a valid Bearer token
- Tenant Validation: The
tenantIdin the URL must match thetenantIdheader - Date Format: All dates should be in ISO 8601 format
- Rate Limiting: API requests are rate-limited for fair usage
- HTTPS Only: All API calls must use HTTPS
🔗 Quick Links
Security Notice: This documentation only shows the public API contract. Internal implementation details, handlers, configuration classes, and middleware are intentionally excluded for security reasons.