Referência da API de escalas de plantão

Valores possíveis dos campos

Tipo de restrição

ValorDescrição
NONESem restrição
TIMEOFDAYRestrição baseada em um horário do dia
TIMEINTERVALSRestrição baseada em intervalos de horário

Tipo de rodízio

ValorDescrição
DAILYO rodízio acontece diariamente
WEEKLYO rodízio acontece semanalmente
CUSTOMO rodízio segue uma escala personalizada

Dias da semana

ValorDescrição
SATURDAYSábado
SUNDAYDomingo
MONDAYSegunda-feira
TUESDAYTerça-feira
WEDNESDAYQuarta-feira
THURSDAYQuinta-feira
FRIDAYSexta-feira

Obter os membros da escala de plantão

Endpoint:

GET /on-call-schedules/:id/members

Exemplo de requisição

GET /on-call-schedules/clzmgn2ze40301poblv9e1pq5/members

Exemplo de resposta

{
"currentMembers": [
{
"id": "clh8nmaan72592bfokqjqd95s1",
"name": null,
"email": "member1@email.com",
"phone": null,
"avatar": "https://example.com/avatar.jpg"
}
],
"nextMembers": [
{
"id": "clzajmm98115510h5olxn5i7ljr",
"name": null,
"email": "member2@email.com",
"phone": null,
"avatar": null
}
],
"allMembers": [
{
"id": "clh8nmaan72592bfokqjqd95s1",
"name": null,
"email": "member1@email.com",
"phone": null,
"avatar": "https://example.com/avatar.jpg"
},
{
"id": "clzajmm98115510h5olxn5i7ljr",
"name": null,
"email": "member2@email.com",
"phone": null,
"avatar": null
}
]
}

Criar escala de plantão

Endpoint:

POST /on-call-schedules

Exemplo de requisição

{
"name": "Primary On-call Schedule",
"description": "This schedule is for the primary on-call team.",
"onCallShifts": [
{
"name": "Primary",
"members": [
{
"workspaceMemberId": "member123",
"color": "#FF5733"
},
{
"workspaceMemberId": "member456",
"color": "#33C4FF"
}
],
"rotationType": "WEEKLY",
"customRotationTypeValue": null,
"customRotationTypeUnit": null,
"startDate": "2023-08-08T08:00:00Z",
"endDate": "2024-08-21T08:42:00.000Z",
"restrictionType": "TIMEINTERVALS",
"timeOfDayRestrictionStartTime": null,
"timeOfDayRestrictionEndTime": null,
"timeIntervals": [
{
"startDay": "SATURDAY",
"startDayTime": "1970-01-01T21:00:00.000Z",
"endDay": "SUNDAY",
"endDayTime": "1970-01-01T03:00:00.000Z"
}
]
}
]
}

Exemplo de resposta

{
"id": "clzmgn2ze40301poblv9e1pq5",
"name": "Primary On-call Schedule",
"description": "This schedule is for the primary on-call team.",
"status": "ACTIVE",
"onCallShifts": [
{
"id": "clzmgn2zt40361pobj78giwf7",
"name": "Primary",
"order": 1,
"members": [
{
"id": "clzmgn2zt40401pobjzq0pwjd",
"order": 3,
"color": "#0470a6",
"workspaceMember": {
"id": "member123",
"user": {
"id": "clh8nmaan72592bfokqjqd95s1",
"name": null,
"email": "member12@email.com",
"avatar": null
}
}
},
{
"id": "clzmgn2zt40381pob690bwaxx",
"order": 1,
"color": "#195397",
"workspaceMember": {
"id": "member456",
"user": {
"id": "clzajmm98115510h5olxn5i7ljr",
"name": null,
"email": "member45@email.com",
"avatar": null
}
}
}
],
"rotationType": "WEEKLY",
"customRotationTypeValue": null,
"customRotationTypeUnit": null,
"startDate": "2024-08-09T08:42:34.557Z",
"endDate": "2024-08-21T08:42:00.000Z",
"restrictionType": "TIMEINTERVALS",
"timeOfDayRestrictionStartTime": null,
"timeOfDayRestrictionEndTime": null,
"timeIntervals": [
{
"id": "clzmjq8bn313521ioblyzg7hic",
"startDay": "SATURDAY",
"startDayTime": "1970-01-01T21:00:00.000Z",
"endDay": "SUNDAY",
"endDayTime": "1970-01-01T03:00:00.000Z"
}
]
}
]
}

Atualizar escala de plantão

Endpoint:

PUT /on-call-schedules/:id

Exemplo de requisição

PUT /on-call-schedules/clzmgn2ze40301poblv9e1pq5
{
"id": "clzmgn2ze40301poblv9e1pq5",
"name": "Name Update",
"description": "This schedule is for the primary on-call team.",
"status": "ACTIVE",
"onCallShifts": [
{
"id": "clzmgn2zt40361pobj78giwf7",
"name": "Primary",
"order": 1,
"members": [
{
"id": "clzmgn2zt40401pobjzq0pwjd",
"order": 3,
"color": "#0470a6",
"workspaceMember": {
"id": "member123",
"user": {
"id": "clh8nmaan72592bfokqjqd95s1",
"name": null,
"email": "member12@email.com",
"avatar": null
}
}
},
{
"id": "clzmgn2zt40381pob690bwaxx",
"order": 1,
"color": "#195397",
"workspaceMember": {
"id": "member456",
"user": {
"id": "clzajmm98115510h5olxn5i7ljr",
"name": null,
"email": "member45@email.com",
"avatar": null
}
}
}
],
"rotationType": "WEEKLY",
"customRotationTypeValue": null,
"customRotationTypeUnit": null,
"startDate": "2024-08-09T08:42:34.557Z",
"endDate": "2024-08-21T08:42:00.000Z",
"restrictionType": "TIMEINTERVALS",
"timeOfDayRestrictionStartTime": null,
"timeOfDayRestrictionEndTime": null,
"timeIntervals": [
{
"id": "clzmjq8bn313521ioblyzg7hic",
"startDay": "SATURDAY",
"startDayTime": "1970-01-01T21:00:00.000Z",
"endDay": "SUNDAY",
"endDayTime": "1970-01-01T03:00:00.000Z"
}
]
}
]
}

Exemplo de resposta

{
"id": "clzmgn2ze40301poblv9e1pq5",
"name": "Name Update",
"description": "This schedule is for the primary on-call team.",
"status": "ACTIVE",
"onCallShifts": [
{
"id": "clzmgn2zt40361pobj78giwf7",
"name": "Primary",
"order": 1,
"members": [
{
"id": "clzmgn2zt40401pobjzq0pwjd",
"order": 3,
"color": "#0470a6",
"workspaceMember": {
"id": "member123",
"user": {
"id": "clh8nmaan72592bfokqjqd95s1",
"name": null,
"email": "member12@email.com",
"avatar": null
}
}
},
{
"id": "clzmgn2zt40381pob690bwaxx",
"order": 1,
"color": "#195397",
"workspaceMember": {
"id": "member456",
"user": {
"id": "clzajmm98115510h5olxn5i7ljr",
"name": null,
"email": "member45@email.com",
"avatar": null
}
}
}
],
"rotationType": "WEEKLY",
"customRotationTypeValue": null,
"customRotationTypeUnit": null,
"startDate": "2024-08-09T08:42:34.557Z",
"endDate": "2024-08-21T08:42:00.000Z",
"restrictionType": "TIMEINTERVALS",
"timeOfDayRestrictionStartTime": null,
"timeOfDayRestrictionEndTime": null,
"timeIntervals": [
{
"id": "clzmjq8bn313521ioblyzg7hic",
"startDay": "SATURDAY",
"startDayTime": "1970-01-01T21:00:00.000Z",
"endDay": "SUNDAY",
"endDayTime": "1970-01-01T03:00:00.000Z"
}
]
}
]
}

Excluir escala de plantão

Endpoint:

DELETE /on-call-schedules/:id

Exemplo de requisição

DELETE /on-call-schedules/schedule-id-1

Exemplo de resposta

204 No Content