feat: api v2 get google-calendar event details (#21336)
* feat: add API endpoint to fetch Google Calendar meeting details and metrics * refactor: rename eventId to eventUid and update calendar event details endpoint * feat: implement Google Calendar service account delegation for event details * refactor: simplify Google Calendar event response * refactor: simplify calendar event details endpoint * feat: add calendar event details endpoint with schema and controller implementation * chore: reset platform libraries package version to 0.0.0 * refactor: migrate calendar event details to unified calendars module * Update gcal.service.ts * refactor: update calendar event schema with title and locations fields replacing summary and conferenceData * feat: update calendar event source to use enum type for better validation * update api description * refactor: make Google Calendar service methods private * refactor: remove location field from unified calendar event output * fix: update Google Calendar event location type property to match unified schema * feat: add CalendarEventStatus enum and map Google Calendar statuses to standardized values * docs: add property descriptions to calendar event schema and remove organizer field * fix: change calendar event locations type from null to empty array in unified calendar API * feat: make calendar source field required * refactor: replace organizer field with hosts array in Google calendar event mapping * feat: enhance calendar event location API documentation with detailed property descriptions * feat: add calendar event details endpoint documentation * fix: typo * docs: update calendar event details API description to remove reschedule history reference * refactor: rename uri to url in calendar event location interfaces and mappings * refactor: improve calendar event response status handling and code organization * Update get-unified-calendar-event.ts * update docs * chore: update @calcom/platform-libraries to version 0.0.215
This commit is contained in:
@@ -7349,6 +7349,55 @@
|
||||
"tags": ["Bookings"]
|
||||
}
|
||||
},
|
||||
"/v2/calendars/{calendar}/event/{eventUid}": {
|
||||
"get": {
|
||||
"operationId": "CalUnifiedCalendarsController_getCalendarEventDetails",
|
||||
"summary": "Get meeting Details from calendar",
|
||||
"description": "Returns detailed information about a meeting including attendance metrics",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "calendar",
|
||||
"required": true,
|
||||
"in": "path",
|
||||
"schema": {
|
||||
"enum": ["google"],
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "eventUid",
|
||||
"required": true,
|
||||
"in": "path",
|
||||
"description": "The Google Calendar event ID",
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Authorization",
|
||||
"in": "header",
|
||||
"description": "value must be `Bearer <token>` where `<token>` is api key prefixed with cal_ or managed user access token",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/GetUnifiedCalendarEventOutput"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"tags": ["Cal Unified Calendars"]
|
||||
}
|
||||
},
|
||||
"/v2/calendars/ics-feed/save": {
|
||||
"post": {
|
||||
"operationId": "CalendarsController_createIcsFeed",
|
||||
@@ -23086,6 +23135,173 @@
|
||||
},
|
||||
"required": ["status", "data"]
|
||||
},
|
||||
"CalendarEventResponseStatus": {
|
||||
"type": "string",
|
||||
"description": "Attendee's response to the invitation",
|
||||
"enum": ["accepted", "pending", "declined", "needsAction"]
|
||||
},
|
||||
"CalendarEventAttendee": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"email": {
|
||||
"type": "string",
|
||||
"description": "Email address of the attendee"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Display name of the attendee"
|
||||
},
|
||||
"responseStatus": {
|
||||
"nullable": true,
|
||||
"example": "accepted",
|
||||
"$ref": "#/components/schemas/CalendarEventResponseStatus"
|
||||
},
|
||||
"self": {
|
||||
"type": "boolean",
|
||||
"nullable": true,
|
||||
"description": "Indicates if this attendee is the current user"
|
||||
},
|
||||
"optional": {
|
||||
"type": "boolean",
|
||||
"nullable": true,
|
||||
"description": "Indicates if this attendee's attendance is optional"
|
||||
}
|
||||
},
|
||||
"required": ["email"]
|
||||
},
|
||||
"CalendarEventStatus": {
|
||||
"type": "string",
|
||||
"description": "Status of the event (accepted, pending, declined, cancelled)",
|
||||
"enum": ["accepted", "pending", "declined", "cancelled"]
|
||||
},
|
||||
"CalendarEventHost": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"email": {
|
||||
"type": "string",
|
||||
"description": "Email address of the event host"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"nullable": true,
|
||||
"description": "Display name of the event host"
|
||||
}
|
||||
},
|
||||
"required": ["email"]
|
||||
},
|
||||
"CalendarSource": {
|
||||
"type": "string",
|
||||
"description": "Calendar integration source (e.g., Google Calendar, Office 365, Apple Calendar). Currently only Google Calendar is supported.",
|
||||
"enum": ["google", "office365", "apple"]
|
||||
},
|
||||
"UnifiedCalendarEventOutput": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"start": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"time": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
},
|
||||
"timeZone": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"description": "Start date and time of the calendar event with timezone information"
|
||||
},
|
||||
"end": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"time": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
},
|
||||
"timeZone": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"description": "End date and time of the calendar event with timezone information"
|
||||
},
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "Unique identifier of the calendar event"
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"description": "Title of the calendar event"
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"nullable": true,
|
||||
"description": "Detailed description of the calendar event"
|
||||
},
|
||||
"locations": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/CalendarEventVideoLocation"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/CalendarEventPhoneLocation"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/CalendarEventSipLocation"
|
||||
},
|
||||
{
|
||||
"$ref": "#/components/schemas/CalendarEventMoreLocation"
|
||||
}
|
||||
],
|
||||
"discriminator": {
|
||||
"propertyName": "type"
|
||||
}
|
||||
},
|
||||
"nullable": true,
|
||||
"description": "Conference locations with entry points (video, phone, sip, more)"
|
||||
},
|
||||
"attendees": {
|
||||
"nullable": true,
|
||||
"description": "List of attendees with their response status",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/CalendarEventAttendee"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"nullable": true,
|
||||
"example": "accepted",
|
||||
"$ref": "#/components/schemas/CalendarEventStatus"
|
||||
},
|
||||
"hosts": {
|
||||
"nullable": true,
|
||||
"description": "Information about the event hosts (organizers)",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/CalendarEventHost"
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"example": "google",
|
||||
"$ref": "#/components/schemas/CalendarSource"
|
||||
}
|
||||
},
|
||||
"required": ["start", "end", "id", "title", "source"]
|
||||
},
|
||||
"GetUnifiedCalendarEventOutput": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"status": {
|
||||
"type": "string",
|
||||
"example": "success",
|
||||
"enum": ["success", "error"]
|
||||
},
|
||||
"data": {
|
||||
"$ref": "#/components/schemas/UnifiedCalendarEventOutput"
|
||||
}
|
||||
},
|
||||
"required": ["status", "data"]
|
||||
},
|
||||
"RequestEmailVerificationInput": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
||||
Reference in New Issue
Block a user