Freebusy: query

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

Żądanie

Żądanie HTTP

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

Autoryzacja

Ta prośba 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
https://www.googleapis.com/auth/calendar.events.freebusy
https://www.googleapis.com/auth/calendar.freebusy

Więcej informacji znajdziesz na stronie Uwierzytelnianie i autoryzacja.

Treść żądania

Dane w treści żądania muszą mieć poniższy format:

{
  "timeMin": datetime,
  "timeMax": datetime,
  "timeZone": string,
  "groupExpansionMax": integer,
  "calendarExpansionMax": integer,
  "items": [
    {
      "id": string
    }
  ]
}
Nazwa usługi Wartość Opis Uwagi
timeMin datetime Początek przedziału dla zapytania sformatowany zgodnie ze standardem RFC3339.
timeMax datetime Koniec przedziału czasu zapytania sformatowany zgodnie z RFC3339.
timeZone string Strefa czasowa używana w odpowiedzi. Opcjonalnie: Wartość domyślna to UTC.
groupExpansionMax integer Maksymalna liczba identyfikatorów kalendarza, które można podać dla jednej 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 mają być udostępniane 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ę powiedzie, metoda zwróci odpowiedź o tej 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 przedziału.
timeMax datetime Koniec przedziału.
groups object Rozwinięcie grup.
groups.(key) nested object Lista kalendarzy należących do tej grupy.
groups.(key).errors[] list Opcjonalne błędy (jeśli obliczenia dla grupy się nie powiodły).
groups.(key).errors[].domain string Domena lub ogólna kategoria błędu.
groups.(key).errors[].reason string Konkretna przyczyna błędu. Oto niektóre z możliwych wartości:
  • groupTooBig” – grupa użytkowników jest zbyt duża na potrzeby pojedynczego zapytania.
  • tooManyCalendarsRequested” – liczba żądanych kalendarzy jest zbyt duża na potrzeby pojedynczego zapytania.
  • notFound” – nie znaleziono żądanego zasobu.
  • internalError” – usługa interfejsu API napotkała błąd wewnętrzny.
W przyszłości możemy dodać dodatkowe typy błędów, dlatego klienci powinni odpowiednio obsługiwać dodatkowe stany błędów, które nie są uwzględnione na tej liście.
groups.(key).calendars[] list Lista identyfikatorów kalendarzy w grupie.
calendars object Lista informacji o stanie Wolny/Zajęty dla kalendarzy.
calendars.(key) nested object rozszerzenia wolne/zajęte dla jednego kalendarza,
calendars.(key).errors[] list Opcjonalne błędy (jeśli obliczenia dla kalendarza nie powiodły się).
calendars.(key).errors[].domain string Domena lub ogólna kategoria błędu.
calendars.(key).errors[].reason string Konkretna przyczyna błędu. Oto niektóre z możliwych wartości:
  • groupTooBig” – grupa użytkowników jest zbyt duża na potrzeby pojedynczego zapytania.
  • tooManyCalendarsRequested” – liczba żądanych kalendarzy jest zbyt duża na potrzeby pojedynczego zapytania.
  • notFound” – nie znaleziono żądanego zasobu.
  • internalError” – usługa interfejsu API napotkała błąd wewnętrzny.
W przyszłości możemy dodać dodatkowe typy błędów, dlatego klienci powinni odpowiednio obsługiwać dodatkowe stany błędów, które nie są uwzględnione na tej liście.
calendars.(key).busy[] list Lista przedziałów czasu, w których ten kalendarz powinien być uważany za zajęty.
calendars.(key).busy[].start datetime Początek (włącznie) okresu.
calendars.(key).busy[].end datetime Koniec (nie wliczając) okresu.

Wypróbuj

Aby wywołać tę metodę na podstawie danych na żywo i zobaczyć odpowiedź, użyj narzędzia APIs Explorer.