Freebusy: query

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

Prośba

Żądanie HTTP

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

Upoważnienie

To żądanie umożliwia 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 uwierzytelniania i autoryzacji.

Treść żądania

Dane w treści żądania muszą mieć taką strukturę:

{
  "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 w formacie zgodnym z RFC3339.
timeMax datetime Koniec interwału zapytania w formacie zgodnym z RFC3339.
timeZone string Strefa czasowa używana w odpowiedzi. Opcjonalnie. Wartością domyślną jest UTC.
groupExpansionMax integer Maksymalna liczba identyfikatorów kalendarza, które można podać dla pojedynczej grupy. Opcjonalnie. W przypadku grupy mającej więcej członków niż ta wartość jest zwracany błąd. Maksymalna wartość to 100.
calendarExpansionMax integer Maksymalna liczba kalendarzy, dla których mają zostać podane informacje o stanie Wolny/Zajęty. Opcjonalnie. Maksymalna wartość to 50.
items[] list Lista kalendarzy lub grup, których dotyczy zapytanie.
items[].id string Identyfikator kalendarza lub grupy.

Odpowiedź

Jeśli operacja się uda, metoda zwróci odpowiedź w 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 Rozszerzenie grup.
groups.(key) nested object Lista kalendarzy członków tej grupy.
groups.(key).errors[] list Opcjonalne błędy (jeśli obliczenia dla grupy się nie udało).
groups.(key).errors[].domain string Domena lub szeroka kategoria błędu.
groups.(key).errors[].reason string Konkretna przyczyna błędu. Oto kilka możliwych wartości:
  • groupTooBig” – liczba żądanych użytkowników jest za duża na jedno zapytanie.
  • tooManyCalendarsRequested” – liczba żądanych kalendarzy jest zbyt duża dla jednego zapytania.
  • notFound” – nie znaleziono żądanego zasobu.
  • internalError” – w usłudze interfejsu API wystąpił błąd wewnętrzny.
W przyszłości możemy dodać kolejne typy błędów, więc klienci powinni płynnie obsługiwać dodatkowe stany błędów, których nie ma na tej liście.
groups.(key).calendars[] list Lista identyfikatorów kalendarzy w grupie.
calendars object Lista informacji o stanie Wolny/Zajęty z kalendarzy.
calendars.(key) nested object Rozwinięcia pojedynczego kalendarza ze stanem Wolny/Zajęty.
calendars.(key).errors[] list Opcjonalne błędy (jeśli obliczenia kalendarza się nie udało).
calendars.(key).errors[].domain string Domena lub szeroka kategoria błędu.
calendars.(key).errors[].reason string Konkretna przyczyna błędu. Oto kilka możliwych wartości:
  • groupTooBig” – liczba żądanych użytkowników jest za duża na jedno zapytanie.
  • tooManyCalendarsRequested” – liczba żądanych kalendarzy jest zbyt duża dla jednego zapytania.
  • notFound” – nie znaleziono żądanego zasobu.
  • internalError” – w usłudze interfejsu API wystąpił błąd wewnętrzny.
W przyszłości możemy dodać kolejne typy błędów, więc klienci powinni płynnie obsługiwać dodatkowe stany błędów, których nie ma na tej liście.
calendars.(key).busy[] list Lista zakresów czasu, w których ten kalendarz ma być uważany za zajęty.
calendars.(key).busy[].start datetime Początek okresu (włącznie z tym dniem).
calendars.(key).busy[].end datetime Koniec okresu (wyłącznie).

Wypróbuj

Użyj Eksploratora interfejsów API poniżej, aby wywołać tę metodę na aktywnych danych i zobaczyć odpowiedź.