Freebusy: query

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

Żądanie

Żądanie HTTP

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

Autoryzacja

To żądanie zezwala na autoryzację z co najmniej jednym z tych zakresów:

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

Więcej informacji znajdziesz na stronie dotyczącej uwierzytelniania i autoryzacji.

Treść żądania

Dane w treści żądania podaj w następującej strukturze:

{
  "timeMin": datetime,
  "timeMax": datetime,
  "timeZone": string,
  "groupExpansionMax": integer,
  "calendarExpansionMax": integer,
  "items": [
    {
      "id": string
    }
  ]
}
Nazwa usługi Wartość Opis Uwagi
timeMin datetime Początek interwału zapytania sformatowanego zgodnie z RFC3339.
timeMax datetime Koniec przedziału czasu dla zapytania sformatowanego zgodnie z RFC3339.
timeZone string Strefa czasowa użyta w odpowiedzi. Opcjonalnie: Wartość domyślna to UTC.
groupExpansionMax integer Maksymalna liczba identyfikatorów kalendarza, które można podać dla pojedynczej grupy. Opcjonalnie: W przypadku grupy, która ma więcej członków niż ta wartość, zwracany jest błąd. Maksymalna wartość to 100.
calendarExpansionMax integer Maksymalna liczba kalendarzy, dla których należy podać informacje o FreeBusy. Opcjonalnie: Maksymalna wartość to 50.
items[] list Lista kalendarzy lub grup objętych zapytaniem.
items[].id string Identyfikator kalendarza lub grupy.

Odpowiedź

Jeśli operacja się uda, metoda zwróci odpowiedź o następującej strukturze:

{
  "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 usługi Wartość Opis Uwagi
kind string Typ zasobu („calendar#freeBusy”).
timeMin datetime Początek interwału.
timeMax datetime Koniec przedziału czasu.
groups object Powiększanie grup.
groups.(key) nested object Lista kalendarzy należących do tej grupy.
groups.(key).errors[] list Błędy opcjonalne (jeśli obliczenia dla grupy się nie udały).
groups.(key).errors[].domain string Domena lub szeroka kategoria błędu.
groups.(key).errors[].reason string Konkretna przyczyna błędu. Oto niektóre z możliwych wartości:
  • groupTooBig” - Żądana grupa użytkowników jest zbyt duża, aby utworzyć jedno zapytanie.
  • tooManyCalendarsRequested” - Żądana liczba kalendarzy jest zbyt duża, aby można było przesłać jedno zapytanie.
  • notFound” - Nie znaleziono żądanego zasobu.
  • internalError” – W usłudze interfejsu API wystąpił błąd wewnętrzny.
W przyszłości możemy dodawać kolejne typy błędów, więc klienci powinni płynnie obsługiwać kolejne stany błędu, których nie ma na tej liście.
groups.(key).calendars[] list Lista kalendarzy identyfikatorów w grupie.
calendars object Lista informacji o stanie Wolny/Zajęty z kalendarzy.
calendars.(key) nested object Rozwinięcia pojedynczego kalendarza związane ze stanem Wolny/Zajęty.
calendars.(key).errors[] list Błędy opcjonalne (jeśli obliczenie kalendarza nie powiodło się).
calendars.(key).errors[].domain string Domena lub szeroka kategoria błędu.
calendars.(key).errors[].reason string Konkretna przyczyna błędu. Oto niektóre z możliwych wartości:
  • groupTooBig” - Żądana grupa użytkowników jest zbyt duża, aby utworzyć jedno zapytanie.
  • tooManyCalendarsRequested” - Żądana liczba kalendarzy jest zbyt duża, aby można było przesłać jedno zapytanie.
  • notFound” - Nie znaleziono żądanego zasobu.
  • internalError” – W usłudze interfejsu API wystąpił błąd wewnętrzny.
W przyszłości możemy dodawać kolejne typy błędów, więc klienci powinni płynnie obsługiwać kolejne stany błędu, których nie ma na tej liście.
calendars.(key).busy[] list Lista zakresów czasu, w których ten kalendarz ma być traktowany jako zajęty.
calendars.(key).busy[].start datetime Początek okresu (włącznie).
calendars.(key).busy[].end datetime Koniec okresu (wyłącznie).

Wypróbuj

Użyj poniższego eksploratora interfejsów API, aby wywołać tę metodę na bieżących danych i wyświetlić odpowiedź.