GET /teams/{teamId}/calendar/events
Lista events do team expandindo RRULE na janela.
- Access: Team member
- Service:
https://api-calendar.axuz.net
Accepted authentication
sessionCookie— Sessão plena Axuz (cookie de sessão da casa). Sessão restrita é 403 enrollment_required.bearerSession— JWT de acesso da sessão em `Authorization: Bearer`.
Responde GET /teams/{teamId}/calendar/events?start=&end=&calendar_ids=.
Motivo: query principal do UI de calendário (mês/semana/dia) — janela [start,end) com expansão RRULE server-side (Fase 184b.2).
Comportamento: exige start/end RFC3339 com end > start; opcional calendar_ids = CSV de UUIDs (400 se algum for inválido). Busca raw events no repo (retorna master + overrides + skips) e passa por rruleexp.Expand que gera ocorrências dentro da janela. Sem RRULE passa through. Responde {items:[...]}.
Entradas: URL params, query params. Saídas: JSON 200 ou erro.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
teamId | path | string | yes | |
start | query | string | yes | |
end | query | string | yes | |
calendar_ids | query | string | no |
Responses
200
OK.
| Name | Type | Required | Description |
|---|---|---|---|
items | array<CalendarEvent> | yes | |
items[].id | string<uuid> | yes | |
items[].calendar_id | string<uuid> | null | no | |
items[].calendar_name | string | no | |
items[].calendar_color | string | no | |
items[].team_id | string<uuid> | null | no | |
items[].summary | string | yes | |
items[].description | string | null | no | |
items[].location | string | null | no | |
items[].dtstart | string<date-time> | yes | |
items[].dtend | string<date-time> | yes | |
items[].all_day | boolean | yes | |
items[].rrule | string | null | no | RFC5545 RRULE (ex: FREQ=WEEKLY;BYDAY=MO,WE). |
items[].tz | string | no | IANA timezone name (Region/City). '' = UTC. |
items[].is_recurring_instance | boolean | no | True quando é ocorrência expandida (não master row). |
items[].recurrence_id | string<date-time> | null | no | dtstart canônico da ocorrência dentro da série. |
items[].parent_event_id | string<uuid> | null | no | Aponta pro master quando é override. |
items[].is_overridden | boolean | no | |
items[].created_by | string<uuid> | no | |
items[].created_at | string<date-time> | no | |
items[].updated_at | string<date-time> | no | |
items[].meet_room_id | string<uuid> | no | Sala de vídeo vinculada ao evento (F-063). AUSENTE quando o evento não tem sala — o cliente testa presença da chave, não string vazia. Só é devolvido em |
items[].meet_room_slug | string | no | Slug da mesma sala. É a chave da entrada de CONVIDADO ( |
items[].reminders | array<CalendarEventReminder> | no | Lembretes do evento (R-007). Devolvido em |
items[].reminders[].id | string<uuid> | yes | |
items[].reminders[].trigger_offset_minutes | integer | yes | |
items[].reminders[].kind | string | yes | enum: |
items[].reminders[].fired_at | string<date-time> | no | AUSENTE enquanto pendente; presente quando terminal. |
400
Input inválido.
| Name | Type | Required | Description |
|---|---|---|---|
error | string | yes | Mensagem humana curta; sem stack. |
401
Faltando ou token inválido.
| Name | Type | Required | Description |
|---|---|---|---|
error | string | yes | Mensagem humana curta; sem stack. |
403
Sem permissao (nao e owner/admin; token sem escopo; token de integracao em rota nao permitida)
| Name | Type | Required | Description |
|---|---|---|---|
error | string | yes |
429
Limite de requisições excedido.
| Name | Type | Required | Description |
|---|---|---|---|
error | string | yes |
500
Erro interno. Tente de novo com backoff; reporte o X-Request-Id.
| Name | Type | Required | Description |
|---|---|---|---|
error | string | yes |
Examples
"Try it" is turned off in this reference. Use the examples with your test credential.
curl
curl -sS -X GET 'https://api-calendar.axuz.net/teams/TEAM_ID/calendar/events?start=VALUE&end=VALUE' \
-H "Authorization: Bearer $AXUZ_TOKEN"Node.js
const res = await fetch("https://api-calendar.axuz.net/teams/TEAM_ID/calendar/events?start=VALUE&end=VALUE", {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.AXUZ_TOKEN}`,
},
});
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
console.log(await res.json());Python
import os
import requests
res = requests.request(
"GET",
"https://api-calendar.axuz.net/teams/TEAM_ID/calendar/events?start=VALUE&end=VALUE",
headers={
"Authorization": f"Bearer {os.environ['AXUZ_TOKEN']}",
},
timeout=30,
)
res.raise_for_status()
print(res.json())