Freebusy: query

Retorna as informações disponível/ocupado de um conjunto de agendas. Faça o teste agora.

Solicitação

Solicitação HTTP

POST https://www.googleapis.com/calendar/v3/freeBusy

Autorização

Essa solicitação permite autorização com pelo menos um dos seguintes escopos:

Escopo
https://www.googleapis.com/auth/calendar.readonly
https://www.googleapis.com/auth/calendar

Para mais informações, consulte a página de autenticação e autorização.

Corpo da solicitação

No corpo da solicitação, forneça os dados com a seguinte estrutura:

{
  "timeMin": datetime,
  "timeMax": datetime,
  "timeZone": string,
  "groupExpansionMax": integer,
  "calendarExpansionMax": integer,
  "items": [
    {
      "id": string
    }
  ]
}
Nome da propriedade Valor Descrição Observações
timeMin datetime O início do intervalo para a consulta formatada de acordo com RFC3339.
timeMax datetime Fim do intervalo para a consulta formatada de acordo com RFC3339.
timeZone string Fuso horário usado na resposta. Opcional. O padrão é UTC.
groupExpansionMax integer Número máximo de identificadores de agenda a serem fornecidos para um único grupo. Opcional. Um erro é retornado para um grupo com mais membros do que esse valor. O valor máximo é 100.
calendarExpansionMax integer Número máximo de agendas para as quais informações da FreeBusy devem ser fornecidas. Opcional. O valor máximo é 50.
items[] list Lista de agendas e/ou grupos a serem consultados.
items[].id string O identificador de uma agenda ou grupo.

Resposta

Se for bem-sucedido, esse método retornará um corpo de resposta com esta estrutura:

{
  "kind": "calendar#freeBusy",
  "timeMin": datetime,
  "timeMax": datetime,
  "groups": {
    (key): {
      "errors": [
        {
          "domain": string,
          "reason": string
        }
      ],
      "calendars": [
        string
      ]
    }
  },
  "calendars": {
    (key): {
      "errors": [
        {
          "domain": string,
          "reason": string
        }
      ],
      "busy": [
        {
          "start": datetime,
          "end": datetime
        }
      ]
    }
  }
}
Nome da propriedade Valor Descrição Observações
kind string Tipo do recurso ("calendar#freeBusy").
timeMin datetime O início do intervalo.
timeMax datetime Fim do intervalo.
groups object Expansão dos grupos.
groups.(key) nested object Lista de agendas que são participantes deste grupo.
groups.(key).errors[] list Erros opcionais (se o cálculo do grupo falhar).
groups.(key).errors[].domain string Domínio ou categoria ampla do erro.
groups.(key).errors[].reason string Motivo específico do erro. Alguns dos valores possíveis são:
  • "groupTooBig" - O grupo de usuários solicitado é muito grande para uma única consulta.
  • "tooManyCalendarsRequested" - O número de agendas solicitadas é muito grande para uma única consulta.
  • "notFound" - O recurso solicitado não foi encontrado.
  • "internalError" - O serviço da API encontrou um erro interno.
Outros tipos de erro poderão ser adicionados no futuro, portanto, os clientes precisam lidar com outros status de erro não incluídos nesta lista.
groups.(key).calendars[] list Lista de agendas identificadores dentro de um grupo.
calendars object Lista de informações disponível/ocupado para agendas.
calendars.(key) nested object Expansões de disponível/ocupado para uma única agenda.
calendars.(key).errors[] list Erros opcionais (se o cálculo da agenda falhar).
calendars.(key).errors[].domain string Domínio ou categoria ampla do erro.
calendars.(key).errors[].reason string Motivo específico do erro. Alguns dos valores possíveis são:
  • "groupTooBig" - O grupo de usuários solicitado é muito grande para uma única consulta.
  • "tooManyCalendarsRequested" - O número de agendas solicitadas é muito grande para uma única consulta.
  • "notFound" - O recurso solicitado não foi encontrado.
  • "internalError" - O serviço da API encontrou um erro interno.
Outros tipos de erro poderão ser adicionados no futuro, portanto, os clientes precisam lidar com outros status de erro não incluídos nesta lista.
calendars.(key).busy[] list Lista de períodos durante os quais esta agenda deve ser considerada como ocupada.
calendars.(key).busy[].start datetime O início (inclusivo) do período.
calendars.(key).busy[].end datetime O fim (exclusivo) do período.

Confira!

Use o APIs Explorer abaixo para chamar esse método em dados ativos e ver a resposta.