TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/gcsconsultores/centros-estrategicos-gcs/llms.txt
Use this file to discover all available pages before exploring further.
/api/meetings route creates Microsoft Teams calendar events through the Microsoft Graph API and returns a Teams join URL that can be sent directly to attendees or surfaced within the virtual office. Events are created on the organiser’s calendar with isOnlineMeeting: true, which causes Teams to generate a join link automatically. In development mode — when Azure AD credentials are not configured — the route returns a mock meeting object with a generated dev-{timestamp} ID so the UI booking flow can be exercised without a live Microsoft 365 tenant.
POST /api/meetings
Request
| Property | Value |
|---|---|
| Method | POST |
| Path | /api/meetings |
| Content-Type | application/json |
Body Parameters
The meeting subject line as it will appear in the Teams calendar event.
ISO 8601 datetime string for the meeting start time — e.g.
"2025-09-15T14:00:00-05:00". The route validates that this date is in the future before proceeding. The calendar event timezone is set to America/Bogota.Meeting duration in minutes. The end time is computed as
start + duracionMinutos * 60000 milliseconds.The virtual office room context where the meeting was requested — e.g.
"ejecutiva", "compliance". Used to set the event location (Oficina Virtual GCS - {sala}) and is embedded in the HTML event body.Array of attendee objects. At least one attendee is required. All attendees are added with
type: "required".Optional meeting description or agenda text. Rendered as HTML inside the event body. Defaults to
"Reunión agendada desde la Oficina Virtual de GCS Consultores Empresariales." when not provided.Overrides the
DEFAULT_ORGANIZER_EMAIL environment variable for this specific request. The meeting is created under this user’s calendar and they receive organiser-level permissions.Response
- Success (Teams)
- Development mode
- Error
Response Fields
true on all non-error responses, including development-mode fallbacks.The Teams event ID returned by Microsoft Graph — or
"dev-{timestamp}" in development mode.The Teams meeting join URL sourced from
event.onlineMeeting.joinUrl. null in development mode when no Graph API call is made.Echo of the submitted
titulo field.Echo of the submitted
fecha ISO 8601 string.Echo of the submitted
duracionMinutos value.Echo of the submitted
sala room identifier.GET /api/meetings
TheGET handler lets Sally check whether a user has an upcoming meeting — used to trigger Sally’s contextualised greeting when a user returns to the virtual office near a scheduled session.
| Query Parameter | Type | Description |
|---|---|---|
email | string | The user’s email to look up in the calendar |
email: returns usage documentation.
email: returns the upcoming-meeting status. Until Microsoft Graph is fully configured, the route always returns:
In a future iteration, this endpoint will query the organiser’s calendar via
GET https://graph.microsoft.com/v1.0/users/{email}/calendarView with a time window around now to surface real upcoming meetings to Sally.Microsoft Teams Integration
Creating a Teams meeting involves two Graph API calls:Obtain OAuth2 client_credentials token
Example Request
Validation
The route performs server-side validation before any external call is attempted:- Required fields:
titulo,fecha,duracionMinutos,sala— returns400if any are missing. - Attendees:
asistentesarray must contain at least one entry — returns400otherwise. - Future date:
new Date(fecha) > new Date()must be true — returns400if the meeting is in the past or present.
Error Responses
| Status | Description |
|---|---|
400 | Missing required fields (titulo, fecha, duracionMinutos, sala) |
400 | No attendees provided (asistentes array is empty or absent) |
400 | Meeting date is not in the future |
500 | Microsoft Graph API error or unexpected server error |