Calendario y Reuniones
Eventos de calendario, reuniones con grabación IA y conexiones con Google Calendar/CalDAV
curl "https://app.getplea.com/api/calendar-events?dateFrom=2026-03-01&dateTo=2026-03-31" \
-H "Authorization: Bearer TOKEN" \
-H "x-organization-id: ORG_ID"
const events = await fetch('/api/calendar-events?dateFrom=2026-03-01&dateTo=2026-03-31', {
headers: {
'Authorization': 'Bearer TOKEN',
'x-organization-id': 'ORG_ID'
}
}).then(r => r.json());
[
{
"id": "event-uuid-1",
"title": "Vista oral - Exp. 2026/0042",
"start": "2026-03-15T10:00:00+01:00",
"end": "2026-03-15T12:00:00+01:00",
"location": "Juzgado de Primera Instancia nº 12, Madrid",
"caseId": "case-uuid-1",
"attendees": ["ana.lopez@despacho.com"],
"color": "#ef4444"
},
{
"id": "event-uuid-2",
"title": "Reunión con cliente Elena Martínez",
"start": "2026-03-10T16:00:00+01:00",
"end": "2026-03-10T17:00:00+01:00",
"location": "Despacho",
"meetingUrl": "https://meet.google.com/abc-def-ghi",
"color": "#6366f1"
}
]
curl -X POST https://app.getplea.com/api/calendar/create-event \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-H "x-organization-id: ORG_ID" \
-d '{
"title": "Audiencia previa - Exp. 2026/0100",
"start": "2026-04-10T09:30:00+02:00",
"end": "2026-04-10T11:00:00+02:00",
"location": "Juzgado de lo Social nº 3, Madrid",
"caseId": "case-uuid-new",
"attendees": ["ana.lopez@despacho.com", "pedro@despacho.com"]
}'
const event = await fetch('/api/calendar/create-event', {
method: 'POST',
headers: {
'Authorization': 'Bearer TOKEN',
'Content-Type': 'application/json',
'x-organization-id': 'ORG_ID'
},
body: JSON.stringify({
title: 'Audiencia previa - Exp. 2026/0100',
start: '2026-04-10T09:30:00+02:00',
end: '2026-04-10T11:00:00+02:00',
location: 'Juzgado de lo Social nº 3, Madrid',
caseId: 'case-uuid-new',
attendees: ['ana.lopez@despacho.com', 'pedro@despacho.com']
})
}).then(r => r.json());
{
"id": "event-uuid-new",
"title": "Audiencia previa - Exp. 2026/0100",
"start": "2026-04-10T09:30:00+02:00",
"end": "2026-04-10T11:00:00+02:00",
"location": "Juzgado de lo Social nº 3, Madrid",
"createdAt": "2026-03-07T12:00:00Z"
}
curl -X POST https://app.getplea.com/api/meeting/create \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-H "x-organization-id: ORG_ID" \
-d '{
"title": "Reunión seguimiento - Elena Martínez",
"meetingUrl": "https://meet.google.com/abc-def-ghi",
"scheduledAt": "2026-03-10T16:00:00+01:00",
"caseId": "case-uuid-1"
}'
const meeting = await fetch('/api/meeting/create', {
method: 'POST',
headers: {
'Authorization': 'Bearer TOKEN',
'Content-Type': 'application/json',
'x-organization-id': 'ORG_ID'
},
body: JSON.stringify({
title: 'Reunión seguimiento - Elena Martínez',
meetingUrl: 'https://meet.google.com/abc-def-ghi',
scheduledAt: '2026-03-10T16:00:00+01:00',
caseId: 'case-uuid-1'
})
}).then(r => r.json());
{
"id": "meeting-uuid-1",
"title": "Reunión seguimiento - Elena Martínez",
"meetingUrl": "https://meet.google.com/abc-def-ghi",
"scheduledAt": "2026-03-10T16:00:00+01:00",
"botStatus": "scheduled",
"transcriptionEnabled": true,
"createdAt": "2026-03-07T12:00:00Z"
}
curl https://app.getplea.com/api/meetings \
-H "Authorization: Bearer TOKEN" \
-H "x-organization-id: ORG_ID"
const meetings = await fetch('/api/meetings', {
headers: {
'Authorization': 'Bearer TOKEN',
'x-organization-id': 'ORG_ID'
}
}).then(r => r.json());
[
{
"id": "meeting-uuid-1",
"title": "Reunión seguimiento - Elena Martínez",
"scheduledAt": "2026-03-10T16:00:00+01:00",
"duration": 45,
"botStatus": "completed",
"hasTranscription": true,
"hasSummary": true,
"summary": "Se discutió la estrategia para la reclamación. El cliente aportará facturas adicionales...",
"caseId": "case-uuid-1"
}
]
curl https://app.getplea.com/api/google-calendar-connections \
-H "Authorization: Bearer TOKEN" \
-H "x-organization-id: ORG_ID"
const connections = await fetch('/api/google-calendar-connections', {
headers: {
'Authorization': 'Bearer TOKEN',
'x-organization-id': 'ORG_ID'
}
}).then(r => r.json());
[
{
"id": "gcc-uuid-1",
"email": "ana.lopez@gmail.com",
"calendarId": "primary",
"syncEnabled": true,
"lastSync": "2026-03-07T08:00:00Z"
}
]
curl https://app.getplea.com/api/caldav-connections \
-H "Authorization: Bearer TOKEN" \
-H "x-organization-id: ORG_ID"
const connections = await fetch('/api/caldav-connections', {
headers: {
'Authorization': 'Bearer TOKEN',
'x-organization-id': 'ORG_ID'
}
}).then(r => r.json());
[
{
"id": "caldav-uuid-1",
"serverUrl": "https://caldav.icloud.com",
"username": "ana.lopez@icloud.com",
"syncEnabled": true,
"lastSync": "2026-03-07T07:45:00Z"
}
]
Endpoints para gestionar eventos del calendario, reuniones con transcripción automática (Recall.ai) y conexiones con calendarios externos.
GET /api/calendar-events
Lista los eventos del calendario.
Desde fecha (ISO 8601).
Hasta fecha (ISO 8601).
POST /api/calendar/create-event
Crea un nuevo evento en el calendario.
Título del evento.
Fecha/hora de inicio (ISO 8601).
Fecha/hora de fin (ISO 8601).
Ubicación.
UUID del expediente asociado.
Array de emails de asistentes.
POST /api/meeting/create
Crea una reunión con grabación y transcripción automática (Recall.ai bot).
Título de la reunión.
URL de la videollamada (Google Meet, Zoom, Teams).
Fecha/hora programada (ISO 8601).
UUID del expediente asociado.
GET /api/meetings
Lista las reuniones con sus transcripciones.
GET /api/google-calendar-connections
Lista las conexiones con Google Calendar.
GET /api/caldav-connections
Lista las conexiones CalDAV (iCloud, NextCloud, etc.).
Last updated today