Freebusy: query

แสดงข้อมูลว่าง/ไม่ว่างสำหรับชุดปฏิทิน ลองใช้เลย

ส่งคำขอ

คำขอ HTTP

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

การให้สิทธิ์

คำขอนี้อนุญาตการให้สิทธิ์ด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

ขอบเขต
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

ดูข้อมูลเพิ่มเติมได้ที่หน้าการตรวจสอบสิทธิ์และการให้สิทธิ์

เนื้อหาของคำขอ

ในเนื้อหาคําขอ ให้ระบุข้อมูลที่มีโครงสร้างดังต่อไปนี้

{
  "timeMin": datetime,
  "timeMax": datetime,
  "timeZone": string,
  "groupExpansionMax": integer,
  "calendarExpansionMax": integer,
  "items": [
    {
      "id": string
    }
  ]
}
ชื่อพร็อพเพอร์ตี้ ค่า คำอธิบาย หมายเหตุ
timeMin datetime จุดเริ่มต้นของช่วงเวลาสําหรับการค้นหาที่จัดรูปแบบตาม RFC3339
timeMax datetime จุดสิ้นสุดของช่วงเวลาสําหรับการค้นหาที่จัดรูปแบบตาม RFC3339
timeZone string เขตเวลาที่ใช้ในคำตอบ ไม่บังคับ ค่าเริ่มต้นคือ UTC
groupExpansionMax integer จำนวนตัวระบุปฏิทินสูงสุดที่ระบุสำหรับกลุ่มเดียว ไม่บังคับ ระบบจะแสดงข้อผิดพลาดสำหรับกลุ่มที่มีสมาชิกมากกว่าค่านี้ ค่าสูงสุดคือ 100
calendarExpansionMax integer จำนวนปฏิทินสูงสุดที่จะระบุข้อมูลว่าง/ไม่ว่าง ไม่บังคับ ค่าสูงสุดคือ 50
items[] list รายการปฏิทิน และ/หรือกลุ่มที่จะค้นหา
items[].id string ตัวระบุของปฏิทินหรือกลุ่ม

คำตอบ

หากทำสำเร็จ วิธีการนี้จะแสดงผลลัพธ์เป็นเนื้อหาการตอบกลับซึ่งมีโครงสร้างดังต่อไปนี้

{
  "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
        }
      ]
    }
  }
}
ชื่อพร็อพเพอร์ตี้ ค่า คำอธิบาย หมายเหตุ
kind string ประเภทของทรัพยากร ("calendar#freeBusy")
timeMin datetime จุดเริ่มต้นของระยะเวลา
timeMax datetime ระยะสิ้นสุด
groups object การขยายกลุ่ม
groups.(key) nested object รายชื่อปฏิทินที่ถือเป็นสมาชิกของกลุ่มนี้
groups.(key).errors[] list ข้อผิดพลาดที่ไม่บังคับ (หากการคํานวณสําหรับกลุ่มไม่สําเร็จ)
groups.(key).errors[].domain string โดเมนหรือหมวดหมู่กว้างๆ ของข้อผิดพลาด
groups.(key).errors[].reason string เหตุผลที่เฉพาะเจาะจงของข้อผิดพลาด ค่าที่เป็นไปได้บางส่วนมีดังนี้
  • "groupTooBig" - กลุ่มผู้ใช้ที่ขอมีขนาดใหญ่เกินกว่าที่จะใช้การค้นหารายการเดียวได้
  • "tooManyCalendarsRequested" - จำนวนปฏิทินที่ขอมีมากเกินไปสำหรับคำค้นหาเดียว
  • "notFound" - ไม่พบทรัพยากรที่ขอ
  • "internalError" - บริการ API พบข้อผิดพลาดภายใน
อาจมีการเพิ่มประเภทข้อผิดพลาดอื่นๆ ในอนาคต ดังนั้นไคลเอ็นต์ควรจัดการสถานะข้อผิดพลาดเพิ่มเติมที่ไม่ได้รวมอยู่ในรายการนี้
groups.(key).calendars[] list รายการตัวระบุของปฏิทินภายในกลุ่ม
calendars object รายการข้อมูลว่าง/ไม่ว่างสำหรับปฏิทิน
calendars.(key) nested object การขยายเวลาว่าง/ไม่ว่างสำหรับปฏิทินเดียว
calendars.(key).errors[] list ข้อผิดพลาดที่ไม่บังคับ (หากการคํานวณปฏิทินไม่สําเร็จ)
calendars.(key).errors[].domain string โดเมนหรือหมวดหมู่กว้างๆ ของข้อผิดพลาด
calendars.(key).errors[].reason string เหตุผลที่เฉพาะเจาะจงของข้อผิดพลาด ค่าที่เป็นไปได้บางส่วนมีดังนี้
  • "groupTooBig" - กลุ่มผู้ใช้ที่ขอมีขนาดใหญ่เกินกว่าที่จะใช้การค้นหารายการเดียวได้
  • "tooManyCalendarsRequested" - จำนวนปฏิทินที่ขอมีมากเกินไปสำหรับคำค้นหาเดียว
  • "notFound" - ไม่พบทรัพยากรที่ขอ
  • "internalError" - บริการ API พบข้อผิดพลาดภายใน
อาจมีการเพิ่มประเภทข้อผิดพลาดอื่นๆ ในอนาคต ดังนั้นไคลเอ็นต์ควรจัดการสถานะข้อผิดพลาดเพิ่มเติมที่ไม่ได้รวมอยู่ในรายการนี้
calendars.(key).busy[] list รายการช่วงเวลาที่ปฏิทินนี้ควรถือว่าไม่ว่าง
calendars.(key).busy[].start datetime จุดเริ่มต้น (รวมวันที่เริ่มต้น) ของระยะเวลา
calendars.(key).busy[].end datetime จุดสิ้นสุด (ไม่รวม) ของระยะเวลา

ลองใช้งาน

ใช้โปรแกรมสำรวจ API ด้านล่างเพื่อเรียกใช้เมธอดนี้กับข้อมูลจริงและดูการตอบกลับ