Freebusy: query

Retorna as informações de disponibilidade 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

Esta solicitação permite a 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 formatado de acordo com o RFC3339.
timeMax datetime O fim do intervalo para a consulta formatado de acordo com a 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 O número máximo de agendas para as quais as informações do 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 um 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 de grupos.
groups.(key) nested object Lista de agendas que são participantes deste grupo.
groups.(key).errors[] list Erros opcionais (se a computação 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 podem ser adicionados no futuro, por isso, os clientes devem lidar com outros status de erro não incluídos nesta lista.
groups.(key).calendars[] list Lista de identificadores de agendas em um grupo.
calendars object Lista de informações de disponibilidade das agendas.
calendars.(key) nested object Expansões de disponibilidade 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 podem ser adicionados no futuro, por isso, os clientes devem lidar com outros status de erro não incluídos nesta lista.
calendars.(key).busy[] list Lista de períodos em que a 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.