Ir para o conteúdo

Atualizar reunião

PATCH/api/v1/calendar/events/{id}

Aplica somente os campos enviados. start e end são validados em conjunto com os valores salvos para impedir que a reunião termine antes de começar. Enviar attendees substitui toda a lista. Reuniões sincronizadas com o Google propagam a alteração; reuniões internas continuam internas. Somente native:meeting pode ser alterado nesta rota. Tarefas e etapas de cadência resultam em 422.

Exemplos

A URL usa o servidor de produção. Defina PIPEFACIL_API_KEY e as variáveis de caminho (como SEQ ou ID) com os identificadores reais. Ajuste o corpo antes de executar: requisições de escrita alteram dados do workspace.

cURL

curl --request PATCH \
  --url "https://pipefacil-server.matchsales.com.br/api/v1/calendar/events/$ID" \
  --header "Authorization: Bearer $PIPEFACIL_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
  "summary": "Apresentação da proposta revisada"
}'
JavaScript
const response = await fetch(`https://pipefacil-server.matchsales.com.br/api/v1/calendar/events/${process.env.ID}`, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.PIPEFACIL_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "summary": "Apresentação da proposta revisada"
}),
});

if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
const text = await response.text();
const data = text ? JSON.parse(text) : null;
Python
import os
import json
import requests

response = requests.request(
    "PATCH",
    f"https://pipefacil-server.matchsales.com.br/api/v1/calendar/events/{os.environ['ID']}",
    headers={"Authorization": f"Bearer {os.environ['PIPEFACIL_API_KEY']}"},
    json=json.loads("{\n  \"summary\": \"Apresentação da proposta revisada\"\n}"),
)
response.raise_for_status()
data = response.json() if response.content else None

Parâmetros

NomeLocalTipoObrigatórioDescrição
idpathstringSimIdentificador no formato provider:kind:id, por exemplo, native:meeting:5f2c…

Corpo da requisição

Content-Type: application/json · obrigatório

{
  "summary": "Apresentação da proposta revisada"
}
CampoTipoObrigatório no objetoDescrição
summarystringNãoAceita null. Até 255 caracteres.
descriptionstringNãoAceita null.
locationstringNãoAceita null. Até 500 caracteres.
startobjectNãoAceita null.
start.datestringNãoData no formato YYYY-MM-DD para eventos de dia inteiro. Formato: date. Aceita null.
start.dateTimestringNãoFormato: date-time. Aceita null.
start.timeZonestringNãoFuso IANA. Padrão: fuso do workspace. Aceita null.
endobjectNãoAceita null.
end.datestringNãoData no formato YYYY-MM-DD para eventos de dia inteiro. Formato: date. Aceita null.
end.dateTimestringNãoFormato: date-time. Aceita null.
end.timeZonestringNãoFuso IANA. Padrão: fuso do workspace. Aceita null.
allDaybooleanNãoAceita null.
statusstringNãoAceita null.
attendeesarrayNãoAceita null.
attendees[].typestringNãoValores: member, contact.
attendees[].memberIdstringNãoAceita null.
attendees[].contactIdstringNãoAceita null.
attendees[].responseStatusstringNãoValores: needs_action, accepted, declined, tentative.
attendees[].organizerbooleanNão—
attendees[].optionalbooleanNão—
extendedPropertiesobjectNãoAceita null.
recordWithBotbooleanNãoAceita null.
conferenceUrlstringNãoAceita null. Até 1000 caracteres.
Esquema OpenAPI
{
  "type": "object",
  "description": "Aplica apenas os campos enviados. Enviar attendees substitui toda a lista.",
  "properties": {
    "summary": {
      "type": "string",
      "maxLength": 255,
      "nullable": true
    },
    "description": {
      "type": "string",
      "nullable": true
    },
    "location": {
      "type": "string",
      "maxLength": 500,
      "nullable": true
    },
    "start": {
      "allOf": [
        {
          "$ref": "#/components/schemas/EventDateTime"
        }
      ],
      "nullable": true
    },
    "end": {
      "allOf": [
        {
          "$ref": "#/components/schemas/EventDateTime"
        }
      ],
      "nullable": true
    },
    "allDay": {
      "type": "boolean",
      "nullable": true
    },
    "status": {
      "type": "string",
      "nullable": true
    },
    "attendees": {
      "type": "array",
      "nullable": true,
      "items": {
        "$ref": "#/components/schemas/CalendarAttendeeRequest"
      }
    },
    "extendedProperties": {
      "type": "object",
      "additionalProperties": true,
      "nullable": true
    },
    "recordWithBot": {
      "type": "boolean",
      "nullable": true
    },
    "conferenceUrl": {
      "type": "string",
      "maxLength": 1000,
      "nullable": true
    }
  },
  "example": {
    "summary": "Apresentação da proposta revisada"
  }
}

Respostas

200Sucesso
CampoTipoDescrição
dataCalendarEventFormato único do calendário, utilizado por todos os itens, independentemente da fonte.
data.idstringprovider:kind:id, por exemplo, native:meeting:5f2c…
data.providerstringValores: native, google.
data.kindstringValores: meeting, task, cadence_task.
data.readOnlybooleanNão pode ser alterado por esta API; somente reuniões nativas permitem escrita.
data.statusstringconfirmed, tentative, cancelled.
data.summarystring—
data.descriptionstringAceita null.
data.locationstringAceita null.
data.startEventDateTimeMesmo formato do Google Calendar: date para dia inteiro ou dateTime para instante ISO 8601. Nunca envie ambos.
data.start.datestringData no formato YYYY-MM-DD para eventos de dia inteiro. Formato: date. Aceita null.
data.start.dateTimestringFormato: date-time. Aceita null.
data.start.timeZonestringFuso IANA. Padrão: fuso do workspace. Aceita null.
data.endEventDateTimeMesmo formato do Google Calendar: date para dia inteiro ou dateTime para instante ISO 8601. Nunca envie ambos.
data.end.datestringData no formato YYYY-MM-DD para eventos de dia inteiro. Formato: date. Aceita null.
data.end.dateTimestringFormato: date-time. Aceita null.
data.end.timeZonestringFuso IANA. Padrão: fuso do workspace. Aceita null.
data.attendeesarray—
data.attendees[].typestringValores: member, contact.
data.attendees[].memberobjectAceita null.
data.attendees[].member.idstring—
data.attendees[].member.userIdstring—
data.attendees[].member.namestring—
data.attendees[].member.emailstring—
data.attendees[].member.imagestringAceita null.
data.attendees[].member.rolestring—
data.attendees[].contactobjectAceita null.
data.attendees[].contact.idstring—
data.attendees[].contact.displayNamestring—
data.attendees[].contact.emailstringAceita null.
data.attendees[].contact.phonestringAceita null.
data.attendees[].removedbooleanA identidade não existe mais; o convidado continua no histórico.
data.attendees[].responseStatusstringValores: needs_action, accepted, declined, tentative.
data.attendees[].organizerboolean—
data.attendees[].optionalboolean—
data.ownerobjectNulo quando o membro proprietário saiu do workspace. Aceita null.
data.owner.userIdstring—
data.owner.namestring—
data.owner.emailstring—
data.owner.imagestringAceita null.
data.owner.rolestringPapel do membro no workspace, por exemplo owner.
data.owner.idstringID do vínculo de membro no workspace. userId identifica o usuário.
data.extendedPropertiesobjectAceita null.
data.conferenceUrlstringLink da reunião, independentemente de sua origem. Aceita null.
data.botEnabledbooleanO bot de gravação está configurado para esta reunião.
data.botStatusstringÚltimo estado informado pelo bot. Aceita null.
data.createdstringFormato: date-time. Aceita null.
data.updatedstringFormato: date-time. Aceita null.
messagestringAceita null.
Esquema OpenAPI
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CalendarEvent"
    },
    "message": {
      "type": "string",
      "nullable": true
    }
  }
}
400Falha de validação dos campos; `fieldErrors` contém os erros.
CampoTipoDescrição
errorstring—
codestringValores: BAD_REQUEST, VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_DISABLED, NOT_FOUND, CONFLICT, QUOTA_EXCEEDED, UNPROCESSABLE_ENTITY, INTERNAL_ERROR, SERVICE_UNAVAILABLE.
requestIdstring—
detailsstringAceita null.
fieldErrorsarrayAceita null.
fieldErrors[].fieldstring—
fieldErrors[].messagestring—
Esquema OpenAPI
{
  "type": "object",
  "description": "Formato padrão de erro. `details` e `fieldErrors` são omitidos quando ausentes.",
  "properties": {
    "error": {
      "type": "string"
    },
    "code": {
      "type": "string",
      "enum": [
        "BAD_REQUEST",
        "VALIDATION_ERROR",
        "UNAUTHORIZED",
        "FORBIDDEN",
        "FEATURE_DISABLED",
        "NOT_FOUND",
        "CONFLICT",
        "QUOTA_EXCEEDED",
        "UNPROCESSABLE_ENTITY",
        "INTERNAL_ERROR",
        "SERVICE_UNAVAILABLE"
      ]
    },
    "requestId": {
      "type": "string"
    },
    "details": {
      "type": "string",
      "nullable": true
    },
    "fieldErrors": {
      "type": "array",
      "nullable": true,
      "items": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "required": [
    "error",
    "code",
    "requestId"
  ]
}
401Chave ausente, malformada, desconhecida, revogada ou expirada, ou membro emissor inativo.
CampoTipoDescrição
errorstring—
codestringValores: BAD_REQUEST, VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_DISABLED, NOT_FOUND, CONFLICT, QUOTA_EXCEEDED, UNPROCESSABLE_ENTITY, INTERNAL_ERROR, SERVICE_UNAVAILABLE.
requestIdstring—
detailsstringAceita null.
fieldErrorsarrayAceita null.
fieldErrors[].fieldstring—
fieldErrors[].messagestring—
Esquema OpenAPI
{
  "type": "object",
  "description": "Formato padrão de erro. `details` e `fieldErrors` são omitidos quando ausentes.",
  "properties": {
    "error": {
      "type": "string"
    },
    "code": {
      "type": "string",
      "enum": [
        "BAD_REQUEST",
        "VALIDATION_ERROR",
        "UNAUTHORIZED",
        "FORBIDDEN",
        "FEATURE_DISABLED",
        "NOT_FOUND",
        "CONFLICT",
        "QUOTA_EXCEEDED",
        "UNPROCESSABLE_ENTITY",
        "INTERNAL_ERROR",
        "SERVICE_UNAVAILABLE"
      ]
    },
    "requestId": {
      "type": "string"
    },
    "details": {
      "type": "string",
      "nullable": true
    },
    "fieldErrors": {
      "type": "array",
      "nullable": true,
      "items": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "required": [
    "error",
    "code",
    "requestId"
  ]
}
403Autenticado, mas sem acesso: falta de permissão (`FORBIDDEN`), recurso desligado no workspace (`FEATURE_DISABLED`) ou tentativa de acessar uma agenda não permitida.
CampoTipoDescrição
errorstring—
codestringValores: BAD_REQUEST, VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_DISABLED, NOT_FOUND, CONFLICT, QUOTA_EXCEEDED, UNPROCESSABLE_ENTITY, INTERNAL_ERROR, SERVICE_UNAVAILABLE.
requestIdstring—
detailsstringAceita null.
fieldErrorsarrayAceita null.
fieldErrors[].fieldstring—
fieldErrors[].messagestring—
Esquema OpenAPI
{
  "type": "object",
  "description": "Formato padrão de erro. `details` e `fieldErrors` são omitidos quando ausentes.",
  "properties": {
    "error": {
      "type": "string"
    },
    "code": {
      "type": "string",
      "enum": [
        "BAD_REQUEST",
        "VALIDATION_ERROR",
        "UNAUTHORIZED",
        "FORBIDDEN",
        "FEATURE_DISABLED",
        "NOT_FOUND",
        "CONFLICT",
        "QUOTA_EXCEEDED",
        "UNPROCESSABLE_ENTITY",
        "INTERNAL_ERROR",
        "SERVICE_UNAVAILABLE"
      ]
    },
    "requestId": {
      "type": "string"
    },
    "details": {
      "type": "string",
      "nullable": true
    },
    "fieldErrors": {
      "type": "array",
      "nullable": true,
      "items": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "required": [
    "error",
    "code",
    "requestId"
  ]
}
404Recurso não encontrado ou fora da visibilidade do membro.
CampoTipoDescrição
errorstring—
codestringValores: BAD_REQUEST, VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_DISABLED, NOT_FOUND, CONFLICT, QUOTA_EXCEEDED, UNPROCESSABLE_ENTITY, INTERNAL_ERROR, SERVICE_UNAVAILABLE.
requestIdstring—
detailsstringAceita null.
fieldErrorsarrayAceita null.
fieldErrors[].fieldstring—
fieldErrors[].messagestring—
Esquema OpenAPI
{
  "type": "object",
  "description": "Formato padrão de erro. `details` e `fieldErrors` são omitidos quando ausentes.",
  "properties": {
    "error": {
      "type": "string"
    },
    "code": {
      "type": "string",
      "enum": [
        "BAD_REQUEST",
        "VALIDATION_ERROR",
        "UNAUTHORIZED",
        "FORBIDDEN",
        "FEATURE_DISABLED",
        "NOT_FOUND",
        "CONFLICT",
        "QUOTA_EXCEEDED",
        "UNPROCESSABLE_ENTITY",
        "INTERNAL_ERROR",
        "SERVICE_UNAVAILABLE"
      ]
    },
    "requestId": {
      "type": "string"
    },
    "details": {
      "type": "string",
      "nullable": true
    },
    "fieldErrors": {
      "type": "array",
      "nullable": true,
      "items": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "required": [
    "error",
    "code",
    "requestId"
  ]
}
422Requisição válida que o recurso não pode atender, por exemplo, um identificador de calendário que não representa uma reunião nativa.
CampoTipoDescrição
errorstring—
codestringValores: BAD_REQUEST, VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_DISABLED, NOT_FOUND, CONFLICT, QUOTA_EXCEEDED, UNPROCESSABLE_ENTITY, INTERNAL_ERROR, SERVICE_UNAVAILABLE.
requestIdstring—
detailsstringAceita null.
fieldErrorsarrayAceita null.
fieldErrors[].fieldstring—
fieldErrors[].messagestring—
Esquema OpenAPI
{
  "type": "object",
  "description": "Formato padrão de erro. `details` e `fieldErrors` são omitidos quando ausentes.",
  "properties": {
    "error": {
      "type": "string"
    },
    "code": {
      "type": "string",
      "enum": [
        "BAD_REQUEST",
        "VALIDATION_ERROR",
        "UNAUTHORIZED",
        "FORBIDDEN",
        "FEATURE_DISABLED",
        "NOT_FOUND",
        "CONFLICT",
        "QUOTA_EXCEEDED",
        "UNPROCESSABLE_ENTITY",
        "INTERNAL_ERROR",
        "SERVICE_UNAVAILABLE"
      ]
    },
    "requestId": {
      "type": "string"
    },
    "details": {
      "type": "string",
      "nullable": true
    },
    "fieldErrors": {
      "type": "array",
      "nullable": true,
      "items": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "required": [
    "error",
    "code",
    "requestId"
  ]
}
429Limite de requisições excedido por workspace ou IP.
CampoTipoDescrição
errorstring—
codestringValores: BAD_REQUEST, VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, FEATURE_DISABLED, NOT_FOUND, CONFLICT, QUOTA_EXCEEDED, UNPROCESSABLE_ENTITY, INTERNAL_ERROR, SERVICE_UNAVAILABLE.
requestIdstring—
detailsstringAceita null.
fieldErrorsarrayAceita null.
fieldErrors[].fieldstring—
fieldErrors[].messagestring—
Esquema OpenAPI
{
  "type": "object",
  "description": "Formato padrão de erro. `details` e `fieldErrors` são omitidos quando ausentes.",
  "properties": {
    "error": {
      "type": "string"
    },
    "code": {
      "type": "string",
      "enum": [
        "BAD_REQUEST",
        "VALIDATION_ERROR",
        "UNAUTHORIZED",
        "FORBIDDEN",
        "FEATURE_DISABLED",
        "NOT_FOUND",
        "CONFLICT",
        "QUOTA_EXCEEDED",
        "UNPROCESSABLE_ENTITY",
        "INTERNAL_ERROR",
        "SERVICE_UNAVAILABLE"
      ]
    },
    "requestId": {
      "type": "string"
    },
    "details": {
      "type": "string",
      "nullable": true
    },
    "fieldErrors": {
      "type": "array",
      "nullable": true,
      "items": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      }
    }
  },
  "required": [
    "error",
    "code",
    "requestId"
  ]
}

Precisa de ajuda?

Encontrou um problema ou ficou com uma dúvida? Fale com a equipe pelo WhatsApp.

Chamar no WhatsApp