Freebusy: query

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Zwraca informacje o stanie Wolny/Zajęty dla zestawu kalendarzy. Wypróbuj teraz

Żądanie

Żądanie HTTP

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

Upoważnienie

To żądanie umożliwia autoryzację przy użyciu co najmniej jednego z tych zakresów:

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

Więcej informacji znajdziesz na stronie uwierzytelniania i autoryzacji.

Treść żądania

W treści żądania podaj dane o tej strukturze:

{
  "timeMin": datetime,
  "timeMax": datetime,
  "timeZone": string,
  "groupExpansionMax": integer,
  "calendarExpansionMax": integer,
  "items": [
    {
      "id": string
    }
  ]
}
Nazwa właściwości Wartość Opis Uwagi
timeMin datetime Początek przedziału czasu zapytania utworzonego w formacie RFC3339.
timeMax datetime Koniec przedziału czasowego dla zapytania sformatowanego zgodnie ze standardem RFC3339.
timeZone string Strefa czasowa w odpowiedzi. Opcjonalne. Wartość domyślna to UTC.
groupExpansionMax integer Maksymalna liczba identyfikatorów kalendarzy udostępnianych jednej grupie. Opcjonalne. W przypadku grupy zawierającej więcej członków zwracany jest błąd. Wartość maksymalna to 100.
calendarExpansionMax integer Maksymalna liczba kalendarzy, dla których mają zostać podane informacje o firmie FreeBusy. Opcjonalne. Wartość maksymalna to 50.
items[] list Lista kalendarzy lub grup, które mają być objęte zapytaniem.
items[].id string Identyfikator kalendarza lub grupy.

Odpowiedź

Jeśli operacja się uda, metoda zwróci odpowiedź w następującym formacie:

{
  "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
        }
      ]
    }
  }
}
Nazwa właściwości Wartość Opis Uwagi
kind string Typ zasobu („calendar#freeBusy”).
timeMin datetime Początek przedziału czasu.
timeMax datetime Koniec przedziału.
groups object Rozszerzenie grup.
groups.(key) nested object Lista kalendarzy członków grupy.
groups.(key).errors[] list Błędy opcjonalne (jeśli obliczenia dla grupy się nie powiodły).
groups.(key).errors[].domain string Domena lub szeroka kategoria błędu.
groups.(key).errors[].reason string Określona przyczyna błędu. Oto niektóre z możliwych wartości:
  • groupTooBig” – grupa użytkowników jest zbyt duża dla jednego zapytania.
  • tooManyCalendarsRequested” – liczba żądanych kalendarzy jest zbyt duża dla jednego zapytania.
  • notFound” – nie znaleziono żądanego zasobu.
  • internalError” – w usłudze API wystąpił błąd wewnętrzny.
W przyszłości możemy dodać więcej typów błędów, więc klienci powinni bez problemu obsługiwać dodatkowe stany nieuwzględnione na tej liście.
groups.(key).calendars[] list Lista identyfikatorów kalendarzy w grupie.
calendars object Lista informacji o stanie Wolny/Zajęty kalendarzy.
calendars.(key) nested object Rozszerzenia stanu Wolny/Zajęty w pojedynczym kalendarzu.
calendars.(key).errors[] list Błędy opcjonalne (jeśli nie udało się obliczyć kalendarza).
calendars.(key).errors[].domain string Domena lub szeroka kategoria błędu.
calendars.(key).errors[].reason string Określona przyczyna błędu. Oto niektóre z możliwych wartości:
  • groupTooBig” – grupa użytkowników jest zbyt duża dla jednego zapytania.
  • tooManyCalendarsRequested” – liczba żądanych kalendarzy jest zbyt duża dla jednego zapytania.
  • notFound” – nie znaleziono żądanego zasobu.
  • internalError” – w usłudze API wystąpił błąd wewnętrzny.
W przyszłości możemy dodać więcej typów błędów, więc klienci powinni bez problemu obsługiwać dodatkowe stany nieuwzględnione na tej liście.
calendars.(key).busy[] list Lista zakresów czasu, w których ten kalendarz należy uznać za zajęty.
calendars.(key).busy[].start datetime Początek okresu (włącznie).
calendars.(key).busy[].end datetime Koniec (wyłącznie) przedziału czasu.

Wypróbuj

Skorzystaj z eksploratora interfejsów API poniżej, aby wywołać tę metodę w aktywnych danych i zobaczyć odpowiedź.