Events: insert

สร้างกิจกรรม ลองใช้เลยหรือดูตัวอย่าง

ส่งคำขอ

คำขอ HTTP

POST https://www.googleapis.com/calendar/v3/calendars/calendarId/events

พารามิเตอร์

ชื่อพารามิเตอร์ ค่า คำอธิบาย
พารามิเตอร์เส้นทาง
calendarId string ตัวระบุปฏิทิน หากต้องการเรียกข้อมูลรหัสปฏิทิน ให้เรียกใช้เมธอด calendarList.list หากคุณต้องการเข้าถึงปฏิทินหลักของผู้ใช้ที่เข้าสู่ระบบในปัจจุบัน ให้ใช้คีย์เวิร์ด "primary"
พารามิเตอร์การค้นหาที่ไม่บังคับ
conferenceDataVersion integer หมายเลขเวอร์ชันของข้อมูลการประชุมที่ไคลเอ็นต์ API รองรับ เวอร์ชัน 0 จะถือว่าไม่มีการรองรับข้อมูลการประชุมและจะละเว้นข้อมูลการประชุมในส่วนเนื้อหาของกิจกรรม เวอร์ชัน 1 ทำให้สามารถรองรับการคัดลอก MeetingseData และสร้างการประชุมใหม่โดยใช้ฟิลด์ createRequest ของ MeetingsData ค่าเริ่มต้นคือ 0 ค่าที่ยอมรับได้คือตั้งแต่ 0 ถึง 1
maxAttendees integer จำนวนผู้เข้าร่วมสูงสุดที่จะรวมไว้ในคำตอบ หากมีผู้เข้าร่วมมากกว่าจำนวนที่ระบุ ระบบจะแสดงเฉพาะผู้เข้าร่วม ไม่บังคับ
sendNotifications boolean เลิกใช้งานแล้ว โปรดใช้ sendUpdates แทน

การส่งการแจ้งเตือนเกี่ยวกับการสร้างเหตุการณ์ใหม่ โปรดทราบว่าระบบอาจยังส่งอีเมลบางฉบับได้ แม้ว่าคุณจะตั้งค่าเป็น false แล้วก็ตาม โดยมีค่าเริ่มต้นเป็น false
sendUpdates string การส่งการแจ้งเตือนเกี่ยวกับการสร้างกิจกรรมใหม่ โปรดทราบว่าระบบอาจยังส่งอีเมลบางฉบับ โดยมีค่าเริ่มต้นเป็น false

ค่าที่ยอมรับมีดังนี้
  • "all": ส่งการแจ้งเตือนไปยังผู้เข้าร่วมทุกคน
  • "externalOnly": ส่งการแจ้งเตือนไปยังผู้เข้าร่วมที่ไม่ได้ใช้ Google ปฏิทินเท่านั้น
  • "none": ระบบจะไม่ส่งการแจ้งเตือน
supportsAttachments boolean การดำเนินการของไคลเอ็นต์ API รองรับไฟล์แนบของกิจกรรมหรือไม่ ไม่บังคับ ค่าเริ่มต้นคือ False

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

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

ขอบเขต
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.events

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

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

ในเนื้อหาคำขอ ให้ระบุทรัพยากรเหตุการณ์ที่มีพร็อพเพอร์ตี้ต่อไปนี้

ชื่อพร็อพเพอร์ตี้ ค่า คำอธิบาย หมายเหตุ
พร็อพเพอร์ตี้ที่จำเป็น
end nested object เวลาสิ้นสุด (ไม่รวม) ของกิจกรรม สําหรับกิจกรรมที่เกิดซ้ำ ค่านี้คือเวลาสิ้นสุดของอินสแตนซ์แรก
start nested object เวลาเริ่มต้น (รวม) ของกิจกรรม สำหรับกิจกรรมที่เกิดซ้ำ นี่คือเวลาเริ่มต้นของอินสแตนซ์แรก
พร็อพเพอร์ตี้ที่ไม่บังคับ
anyoneCanAddSelf boolean ทุกคนสามารถเชิญตัวเองให้เข้าร่วมกิจกรรมได้หรือไม่ (เลิกใช้งานแล้ว) ไม่บังคับ ค่าเริ่มต้นคือ False เขียนได้
attachments[].fileUrl string URL ที่ลิงก์ไปยังไฟล์แนบ

สำหรับการเพิ่มไฟล์แนบของ Google ไดรฟ์ ให้ใช้รูปแบบเดียวกับในพร็อพเพอร์ตี้ alternateLink ของทรัพยากร Files ใน Drive API

ต้องระบุเมื่อเพิ่มไฟล์แนบ

เขียนได้
attendees[] list ผู้เข้าร่วมกิจกรรม ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดเวลากิจกรรมร่วมกับผู้ใช้ปฏิทินคนอื่นๆ ได้ในคู่มือกิจกรรมที่มีผู้เข้าร่วม บัญชีบริการต้องใช้การมอบสิทธิ์ทั้งโดเมนเพื่อป้อนข้อมูลรายชื่อผู้เข้าร่วม เขียนได้
attendees[].additionalGuests integer จำนวนแขกเพิ่มเติม ไม่บังคับ ค่าเริ่มต้นคือ 0 เขียนได้
attendees[].comment string ความคิดเห็นตอบกลับของผู้เข้าร่วม ไม่บังคับ เขียนได้
attendees[].displayName string ชื่อผู้เข้าร่วม (หากมี) ไม่บังคับ เขียนได้
attendees[].email string อีเมลของผู้เข้าร่วม (หากมี) ช่องนี้ต้องระบุเมื่อเพิ่มผู้เข้าร่วม ต้องเป็นอีเมลที่ถูกต้องตาม RFC5322

ต้องระบุเมื่อเพิ่มผู้เข้าร่วม

เขียนได้
attendees[].optional boolean ผู้เข้าร่วมรายนี้เป็นแบบไม่บังคับหรือไม่ ไม่บังคับ ค่าเริ่มต้นคือ False เขียนได้
attendees[].resource boolean ระบุว่าผู้เข้าร่วมเป็นทรัพยากรหรือไม่ ตั้งค่าได้เมื่อเพิ่มผู้เข้าร่วมไปยังกิจกรรมเป็นครั้งแรกเท่านั้น ระบบจะไม่สนใจการแก้ไขหลังจากนั้น ไม่บังคับ ค่าเริ่มต้นคือ False เขียนได้
attendees[].responseStatus string สถานะการตอบกลับของผู้เข้าร่วม ค่าที่เป็นไปได้มีดังนี้
  • "needsAction" - ผู้เข้าร่วมยังไม่ได้ตอบกลับคำเชิญ (แนะนำสำหรับกิจกรรมใหม่)
  • "declined" - ผู้เข้าร่วมปฏิเสธคำเชิญ
  • "tentative" - ผู้เข้าร่วมตอบรับคําเชิญชั่วคราวแล้ว
  • "accepted" - ผู้เข้าร่วมยอมรับคำเชิญแล้ว
เขียนได้
birthdayProperties nested object ข้อมูลวันเกิดหรือกิจกรรมพิเศษ ใช้ในกรณีที่ eventType เป็น "birthday" เปลี่ยนแปลงไม่ได้ เขียนได้
birthdayProperties.type string ประเภทวันเกิดหรือกิจกรรมพิเศษ ค่าที่เป็นไปได้มีดังนี้
  • "anniversary" - วันครบรอบที่ไม่ใช่วันเกิด มี contact เสมอ
  • "birthday" - กิจกรรมวันเกิด นี่คือค่าเริ่มต้น
  • "custom" - วันที่พิเศษซึ่งมีป้ายกำกับที่ระบุเพิ่มเติมในช่อง customTypeName มี contact เสมอ
  • "other" - วันที่พิเศษที่ไม่จัดอยู่ในหมวดหมู่อื่นๆ และไม่มีป้ายกำกับที่กำหนดเอง มี contact เสมอ
  • "self" - วันเกิดของเจ้าของปฏิทิน มี contact ไม่ได้
Calendar API รองรับเฉพาะการสร้างกิจกรรมประเภท "birthday" เปลี่ยนประเภทไม่ได้หลังจากสร้างกิจกรรมแล้ว
เขียนได้
colorId string สีของกิจกรรม รหัสนี้หมายถึงรายการในส่วน event ของคำจำกัดความสี (ดู ปลายทางสี) ไม่บังคับ เขียนได้
conferenceData nested object ข้อมูลที่เกี่ยวข้องกับการประชุม เช่น รายละเอียดการประชุมใน Google Meet หากต้องการสร้างรายละเอียดการประชุมใหม่ ให้ใช้ฟิลด์ createRequest อย่าลืมตั้งค่าพารามิเตอร์คำขอ conferenceDataVersion เป็น 1 สำหรับคำขอแก้ไขเหตุการณ์ทั้งหมดเพื่อยืนยันการเปลี่ยนแปลง เขียนได้
description string คำอธิบายกิจกรรม มี HTML ได้ ไม่บังคับ เขียนได้
end.date date วันที่ในรูปแบบ "ปปปป-ดด-วว" หากเป็นกิจกรรมตลอดทั้งวัน เขียนได้
end.dateTime datetime เวลาเป็นค่าวันที่และเวลาแบบรวม (จัดรูปแบบตาม RFC3339) ต้องระบุเขตเวลาออฟเซ็ต เว้นแต่จะมีการระบุเขตเวลาอย่างชัดเจนใน timeZone เขียนได้
end.timeZone string เขตเวลาที่ระบุเวลา (จัดรูปแบบเป็นชื่อฐานข้อมูลเขตเวลาของ IANA เช่น "Europe/Zurich") สำหรับกิจกรรมที่เกิดซ้ำ คุณต้องกรอกข้อมูลในช่องนี้และระบุเขตเวลาที่ขยายการเกิดซ้ำ สำหรับกิจกรรมเดียว ช่องนี้ไม่บังคับและระบุเขตเวลาที่กำหนดเองสำหรับเวลาเริ่มต้น/สิ้นสุดของกิจกรรม เขียนได้
eventType string ประเภทเหตุการณ์ที่เฉพาะเจาะจง คุณจะแก้ไขส่วนนี้หลังจากที่สร้างกิจกรรมแล้วไม่ได้ ค่าที่เป็นไปได้คือ
  • "birthday" - กิจกรรมพิเศษตลอดทั้งวันที่เกิดซ้ำทุกปี
  • "default" - เหตุการณ์ปกติหรือไม่ได้ระบุเพิ่มเติม
  • "focusTime" - กิจกรรมที่ต้องการสมาธิ
  • "fromGmail" - กิจกรรมจาก Gmail สร้างเหตุการณ์ประเภทนี้ไม่ได้
  • "outOfOffice" - กิจกรรมลางาน
  • "workingLocation" - กิจกรรมสถานที่ทำงาน
เขียนได้
extendedProperties.private object พร็อพเพอร์ตี้ที่เป็นส่วนตัวสำหรับสำเนาของกิจกรรมที่ปรากฏในปฏิทินนี้ เขียนได้
extendedProperties.shared object พร็อพเพอร์ตี้ที่แชร์ระหว่างสำเนาของกิจกรรมในปฏิทินของผู้อื่น เขียนได้
focusTimeProperties nested object ข้อมูลกิจกรรมที่ต้องการสมาธิ ใช้ในกรณีที่ eventType เป็น focusTime เขียนได้
gadget.display string โหมดการแสดงผลของแกดเจ็ต เลิกใช้งานแล้ว ค่าที่เป็นไปได้มีดังนี้
  • "icon" - แกดเจ็ตจะแสดงข้างชื่อกิจกรรมในมุมมองปฏิทิน
  • "chip" - แกดเจ็ตจะแสดงเมื่อคลิกเหตุการณ์
เขียนได้
gadget.height integer ความสูงของแก็ดเจ็ตในหน่วยพิกเซล ความสูงต้องเป็นจำนวนเต็มที่มากกว่า 0 ไม่บังคับ เลิกใช้งานแล้ว เขียนได้
gadget.preferences object ค่ากำหนด เขียนได้
gadget.title string ชื่อของแกดเจ็ต เลิกใช้งานแล้ว เขียนได้
gadget.type string ประเภทของแก็ดเจ็ต เลิกใช้งานแล้ว เขียนได้
gadget.width integer ความกว้างของแก็ดเจ็ตในหน่วยพิกเซล ความกว้างต้องเป็นจํานวนเต็มที่มากกว่า 0 ไม่บังคับ เลิกใช้งานแล้ว เขียนได้
guestsCanInviteOthers boolean ผู้เข้าร่วมที่ไม่ใช่ผู้จัดสามารถเชิญบุคคลอื่นเข้าร่วมกิจกรรมได้หรือไม่ ไม่บังคับ ค่าเริ่มต้นคือ True เขียนได้
guestsCanModify boolean กำหนดว่าผู้เข้าร่วมที่ไม่ใช่ผู้จัดงานจะแก้ไขกิจกรรมได้หรือไม่ ไม่บังคับ ค่าเริ่มต้นคือ "เท็จ" เขียนได้
guestsCanSeeOtherGuests boolean ผู้เข้าร่วมที่ไม่ใช่ผู้จัดจะเห็นรายชื่อผู้เข้าร่วมกิจกรรมหรือไม่ ไม่บังคับ ค่าเริ่มต้นคือ True เขียนได้
id string ตัวระบุแบบทึบของเหตุการณ์ เมื่อสร้างเหตุการณ์ใหม่แบบครั้งเดียวหรือแบบที่เกิดซ้ำ คุณสามารถระบุรหัสของเหตุการณ์ได้ รหัสที่ระบุต้องเป็นไปตามกฎต่อไปนี้
  • อักขระที่อนุญาตในรหัสคืออักขระที่ใช้ในการเข้ารหัสฐาน 32hex เช่น ตัวอักษรพิมพ์เล็ก a-v และตัวเลข 0-9 โปรดดูส่วน 3.1.2 ใน RFC2938
  • รหัสต้องมีความยาวระหว่าง 5 ถึง 1,024 อักขระ
  • รหัสต้องไม่ซ้ำกันในแต่ละปฏิทิน
เนื่องจากลักษณะของระบบที่กระจายไปทั่วโลก เราจึงไม่สามารถรับประกันได้ว่าระบบจะตรวจพบการชนกันของรหัสในเวลาที่สร้างเหตุการณ์ เราขอแนะนำให้ใช้อัลกอริทึม UUID ที่กำหนดไว้ เช่น อัลกอริทึมที่อธิบายไว้ใน RFC4122 เพื่อลดความเสี่ยงที่จะมี UUID ซ้ำกัน

หากคุณไม่ได้ระบุรหัส ระบบจะสร้างรหัสให้โดยอัตโนมัติ

โปรดทราบว่า icalUID และ id จะไม่เหมือนกัน และควรระบุเพียงรายการเดียวเมื่อสร้างเหตุการณ์ ความแตกต่างอย่างหนึ่งของความหมายคือในเหตุการณ์ที่เกิดซ้ำ เหตุการณ์หนึ่งๆ ที่เกิดขึ้นทั้งหมดจะมี id ต่างกัน แต่ใช้ icalUID เดียวกัน

เขียนได้
location string สถานที่ตั้งทางภูมิศาสตร์ของกิจกรรมเป็นข้อความรูปแบบใดก็ได้ ไม่บังคับ เขียนได้
originalStartTime.date date วันที่ในรูปแบบ "ปปปป-ดด-วว" หากเป็นกิจกรรมตลอดทั้งวัน เขียนได้
originalStartTime.dateTime datetime เวลาเป็นค่าวันที่และเวลาแบบรวม (จัดรูปแบบตาม RFC3339) ต้องระบุเขตเวลาออฟเซ็ต เว้นแต่จะมีการระบุเขตเวลาอย่างชัดเจนใน timeZone เขียนได้
originalStartTime.timeZone string เขตเวลาที่ระบุเวลา (จัดรูปแบบเป็นชื่อฐานข้อมูลเขตเวลาของ IANA เช่น "Europe/Zurich") สำหรับกิจกรรมที่เกิดซ้ำ คุณต้องกรอกข้อมูลในช่องนี้และระบุเขตเวลาที่ขยายการเกิดซ้ำ สำหรับกิจกรรมเดียว ช่องนี้ไม่บังคับและระบุเขตเวลาที่กำหนดเองสำหรับเวลาเริ่มต้น/สิ้นสุดของกิจกรรม เขียนได้
outOfOfficeProperties nested object ข้อมูลกิจกรรมลางาน ใช้ในกรณีที่ eventType เป็น outOfOffice เขียนได้
recurrence[] list รายการบรรทัด RRULE, EXRULE, RDATE และ EXDATE สำหรับเหตุการณ์ที่เกิดซ้ำตามที่ระบุไว้ใน RFC5545 โปรดทราบว่าไม่อนุญาตให้ใช้บรรทัด DTSTART และ DTEND ในช่องนี้ โดยระบุเวลาเริ่มต้นและสิ้นสุดของกิจกรรมในช่อง start และ end ระบบจะไม่ระบุช่องนี้สำหรับกิจกรรมหรืออินสแตนซ์ของกิจกรรมที่เกิดซ้ำรายการเดียว เขียนได้
reminders.overrides[] list หากกิจกรรมไม่ได้ใช้การช่วยเตือนเริ่มต้น รายการนี้จะแสดงการช่วยเตือนสำหรับกิจกรรมนั้นๆ หรือหากไม่ได้ตั้งค่าไว้ ก็จะระบุว่าไม่ได้ตั้งค่าการช่วยเตือนสำหรับกิจกรรมนี้ จำนวนการช่วยเตือนการลบล้างสูงสุดคือ 5 รายการ เขียนได้
reminders.overrides[].method string วิธีการที่ใช้โดยการช่วยเตือนนี้ ค่าที่เป็นไปได้คือ
  • "email" - การช่วยเตือนจะส่งทางอีเมล
  • "popup" - ระบบจะส่งการช่วยเตือนผ่านป๊อปอัป UI

ต้องระบุเมื่อเพิ่มการช่วยเตือน

เขียนได้
reminders.overrides[].minutes integer จำนวนนาทีก่อนเริ่มกิจกรรมที่การช่วยเตือนควรทริกเกอร์ ค่าที่ใช้ได้คือระหว่าง 0 ถึง 40320 (4 สัปดาห์เป็นนาที)

ต้องระบุเมื่อเพิ่มการช่วยเตือน

เขียนได้
reminders.useDefault boolean การแจ้งเตือนเริ่มต้นของปฏิทินมีผลกับกิจกรรมหรือไม่ เขียนได้
sequence integer หมายเลขลำดับตาม iCalendar เขียนได้
source.title string ชื่อแหล่งที่มา เช่น ชื่อหน้าเว็บหรือเรื่องอีเมล เขียนได้
source.url string URL ของแหล่งที่มาที่ชี้ไปยังทรัพยากร รูปแบบ URL ต้องเป็น HTTP หรือ HTTPS เขียนได้
start.date date วันที่ในรูปแบบ "ปปปป-ดด-วว" หากเป็นกิจกรรมตลอดทั้งวัน เขียนได้
start.dateTime datetime เวลาเป็นค่าวันที่และเวลาแบบรวม (จัดรูปแบบตาม RFC3339) ต้องระบุเขตเวลาออฟเซ็ต เว้นแต่จะมีการระบุเขตเวลาอย่างชัดเจนใน timeZone เขียนได้
start.timeZone string เขตเวลาที่ระบุเวลา (จัดรูปแบบเป็นชื่อฐานข้อมูลเขตเวลาของ IANA เช่น "Europe/Zurich") สำหรับกิจกรรมที่เกิดซ้ำ คุณต้องกรอกข้อมูลในช่องนี้และระบุเขตเวลาที่ขยายการเกิดซ้ำ สำหรับกิจกรรมเดียว ช่องนี้ไม่บังคับและระบุเขตเวลาที่กำหนดเองสำหรับเวลาเริ่มต้น/สิ้นสุดของกิจกรรม เขียนได้
status string สถานะของกิจกรรม ไม่บังคับ ค่าที่เป็นไปได้มีดังนี้
  • "confirmed" - ยืนยันกิจกรรมแล้ว สถานะนี้เป็นสถานะเริ่มต้น
  • "tentative" - กิจกรรมได้รับการยืนยันอย่างไม่แน่นอน
  • "cancelled" - กิจกรรมถูกยกเลิก (ลบแล้ว) เมธอด list จะแสดงเหตุการณ์ที่ยกเลิกในการซิงค์แบบเพิ่มเท่านั้น (เมื่อระบุ syncToken หรือ updatedMin) หรือหากตั้งค่า Flag showDeleted เป็น true เมธอด get จะแสดงผลลัพธ์เสมอ

    สถานะยกเลิกจะแสดง 2 สถานะที่แตกต่างกัน โดยขึ้นอยู่กับประเภทกิจกรรม

    1. ข้อยกเว้นที่ยกเลิกแล้วของกิจกรรมที่เกิดขึ้นซ้ำซึ่งยังไม่ได้ยกเลิกบ่งชี้ว่าไม่ควรแสดงอินสแตนซ์นี้ต่อผู้ใช้อีกต่อไป ไคลเอ็นต์ควรจัดเก็บเหตุการณ์เหล่านี้ตลอดอายุของกิจกรรมที่เกิดซ้ำหลัก

      การยกเว้นที่ถูกยกเลิกรับประกันว่าจะมีการเติมข้อมูลให้กับช่อง id, recurringEventId และ originalStartTime เท่านั้น ฟิลด์อื่นๆ อาจว่างเปล่า

    2. กิจกรรมอื่นๆ ทั้งหมดที่ถูกยกเลิกหมายถึงกิจกรรมที่ถูกลบ ลูกค้าควรนำสำเนาที่ซิงค์ในเครื่องออก กิจกรรมที่ยกเลิกดังกล่าวจะหายไปในที่สุด ดังนั้นอย่าคิดว่ากิจกรรมดังกล่าวจะพร้อมใช้งานตลอดไป

      ระบบรับประกันว่าเหตุการณ์ที่ลบไปแล้วจะมีข้อมูลในช่อง id เท่านั้น

    ในปฏิทินของผู้จัด กิจกรรมที่ยกเลิกจะยังแสดงรายละเอียดกิจกรรม (สรุป สถานที่ ฯลฯ) เพื่อให้สามารถกู้คืน (ยกเลิกการลบ) ได้ ในทำนองเดียวกัน กิจกรรมที่ผู้ใช้ได้รับเชิญและนำออกด้วยตนเองจะยังคงแสดงรายละเอียดต่อไป อย่างไรก็ตาม คำขอซิงค์แบบเพิ่มที่ตั้งค่า showDeleted เป็นเท็จจะไม่แสดงรายละเอียดเหล่านี้

    หากกิจกรรมเปลี่ยนผู้จัด (เช่น ผ่านการดำเนินการย้าย) และผู้จัดเดิมไม่ได้อยู่ในรายชื่อผู้เข้าร่วม กิจกรรมดังกล่าวก็จะทิ้งกิจกรรมที่ยกเลิกไปแล้วซึ่งระบบรับประกันว่าจะต้องป้อนข้อมูลในช่อง id เท่านั้น

เขียนได้
summary string ชื่อกิจกรรม เขียนได้
transparency string กิจกรรมบล็อกเวลาในปฏิทินหรือไม่ ไม่บังคับ ค่าที่เป็นไปได้มีดังนี้
  • "opaque" - ค่าเริ่มต้น กิจกรรมจะบล็อกเวลาในปฏิทิน วิธีนี้เทียบเท่ากับการตั้งค่าแสดงว่าฉันเป็นไม่ว่างใน UI ปฏิทิน
  • "transparent" - กิจกรรมไม่ได้บล็อกเวลาในปฏิทิน ซึ่งเทียบเท่ากับการตั้งค่าแสดงฉันเป็นเป็นว่างใน UI ของปฏิทิน
เขียนได้
visibility string ระดับการเข้าถึงของกิจกรรม ไม่บังคับ ค่าที่เป็นไปได้มีดังนี้
  • "default" ใช้ระดับการเข้าถึงเริ่มต้นสำหรับกิจกรรมในปฏิทิน นี่คือค่าเริ่มต้น
  • "public" - กิจกรรมนี้เป็นแบบสาธารณะและผู้อ่านปฏิทินทุกคนจะเห็นรายละเอียดกิจกรรม
  • "private" - กิจกรรมเป็นแบบส่วนตัว และมีเพียงผู้เข้าร่วมกิจกรรมเท่านั้นที่ดูรายละเอียดกิจกรรมได้
  • "confidential" - กิจกรรมเป็นแบบส่วนตัว ค่านี้มีไว้เพื่อเหตุผลด้านความเข้ากันได้
เขียนได้
workingLocationProperties nested object ข้อมูลเหตุการณ์ของสถานที่ทำงาน เขียนได้
workingLocationProperties.customLocation object (หากมี) ระบุว่าผู้ใช้ทํางานจากสถานที่ที่กําหนดเอง เขียนได้
workingLocationProperties.customLocation.label string ป้ายกำกับเพิ่มเติมที่ไม่บังคับสำหรับข้อมูลเพิ่มเติม เขียนได้
workingLocationProperties.homeOffice any value (หากมี) ระบุว่าผู้ใช้ทํางานอยู่ที่บ้าน เขียนได้
workingLocationProperties.officeLocation object (หากมี) ระบุว่าผู้ใช้ทํางานจากสำนักงาน เขียนได้
workingLocationProperties.officeLocation.buildingId string ตัวระบุอาคาร (ไม่บังคับ) ซึ่งควรอ้างอิงรหัสอาคารในฐานข้อมูลทรัพยากรขององค์กร เขียนได้
workingLocationProperties.officeLocation.deskId string ตัวระบุฝ่ายดูแลลูกค้า (ไม่บังคับ) เขียนได้
workingLocationProperties.officeLocation.floorId string ตัวระบุชั้น (ไม่บังคับ) เขียนได้
workingLocationProperties.officeLocation.floorSectionId string ตัวระบุส่วนของชั้น (ไม่บังคับ) เขียนได้
workingLocationProperties.officeLocation.label string ชื่อสำนักงานที่แสดงในไคลเอ็นต์ของปฏิทินบนเว็บและอุปกรณ์เคลื่อนที่ เราขอแนะนำให้คุณอ้างอิงชื่ออาคารในฐานข้อมูลทรัพยากรขององค์กร เขียนได้
workingLocationProperties.type string ประเภทสถานที่ทํางาน ค่าที่เป็นไปได้มีดังนี้
  • "homeOffice" - ผู้ใช้ทํางานอยู่ที่บ้าน
  • "officeLocation" - ผู้ใช้ทํางานจากสำนักงาน
  • "customLocation" - ผู้ใช้ทํางานจากสถานที่ที่กำหนดเอง
รายละเอียดทั้งหมดจะระบุไว้ในช่องย่อยของชื่อที่ระบุ แต่ช่องนี้อาจหายไปหากไม่มีข้อมูล ระบบจะไม่สนใจช่องอื่นๆ

ต้องระบุเมื่อเพิ่มพร็อพเพอร์ตี้สถานที่ทำงาน

เขียนได้

คำตอบ

หากดำเนินการสำเร็จ วิธีการนี้จะแสดงผลทรัพยากรเหตุการณ์ในเนื้อหาการตอบกลับ

ตัวอย่าง

หมายเหตุ: ตัวอย่างโค้ดที่มีสำหรับวิธีการนี้ไม่ได้แสดงถึงภาษาโปรแกรมที่รองรับทั้งหมด (ดูรายการภาษาที่รองรับได้ในหน้าไลบรารีของไคลเอ็นต์)

Java

ใช้ไลบรารีของไคลเอ็นต์ Java

// Refer to the Java quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/java
// Change the scope to CalendarScopes.CALENDAR and delete any stored
// credentials.

Event event = new Event()
    .setSummary("Google I/O 2015")
    .setLocation("800 Howard St., San Francisco, CA 94103")
    .setDescription("A chance to hear more about Google's developer products.");

DateTime startDateTime = new DateTime("2015-05-28T09:00:00-07:00");
EventDateTime start = new EventDateTime()
    .setDateTime(startDateTime)
    .setTimeZone("America/Los_Angeles");
event.setStart(start);

DateTime endDateTime = new DateTime("2015-05-28T17:00:00-07:00");
EventDateTime end = new EventDateTime()
    .setDateTime(endDateTime)
    .setTimeZone("America/Los_Angeles");
event.setEnd(end);

String[] recurrence = new String[] {"RRULE:FREQ=DAILY;COUNT=2"};
event.setRecurrence(Arrays.asList(recurrence));

EventAttendee[] attendees = new EventAttendee[] {
    new EventAttendee().setEmail("lpage@example.com"),
    new EventAttendee().setEmail("sbrin@example.com"),
};
event.setAttendees(Arrays.asList(attendees));

EventReminder[] reminderOverrides = new EventReminder[] {
    new EventReminder().setMethod("email").setMinutes(24 * 60),
    new EventReminder().setMethod("popup").setMinutes(10),
};
Event.Reminders reminders = new Event.Reminders()
    .setUseDefault(false)
    .setOverrides(Arrays.asList(reminderOverrides));
event.setReminders(reminders);

String calendarId = "primary";
event = service.events().insert(calendarId, event).execute();
System.out.printf("Event created: %s\n", event.getHtmlLink());

Python

ใช้ไลบรารีของไคลเอ็นต์ Python

# Refer to the Python quickstart on how to setup the environment:
# https://developers.google.com/calendar/quickstart/python
# Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any
# stored credentials.

event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'},
  ],
  'reminders': {
    'useDefault': False,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10},
    ],
  },
}

event = service.events().insert(calendarId='primary', body=event).execute()
print 'Event created: %s' % (event.get('htmlLink'))

PHP

ใช้ไลบรารีของไคลเอ็นต์ PHP

// Refer to the PHP quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/php
// Change the scope to Google_Service_Calendar::CALENDAR and delete any stored
// credentials.

$event = new Google_Service_Calendar_Event(array(
  'summary' => 'Google I/O 2015',
  'location' => '800 Howard St., San Francisco, CA 94103',
  'description' => 'A chance to hear more about Google\'s developer products.',
  'start' => array(
    'dateTime' => '2015-05-28T09:00:00-07:00',
    'timeZone' => 'America/Los_Angeles',
  ),
  'end' => array(
    'dateTime' => '2015-05-28T17:00:00-07:00',
    'timeZone' => 'America/Los_Angeles',
  ),
  'recurrence' => array(
    'RRULE:FREQ=DAILY;COUNT=2'
  ),
  'attendees' => array(
    array('email' => 'lpage@example.com'),
    array('email' => 'sbrin@example.com'),
  ),
  'reminders' => array(
    'useDefault' => FALSE,
    'overrides' => array(
      array('method' => 'email', 'minutes' => 24 * 60),
      array('method' => 'popup', 'minutes' => 10),
    ),
  ),
));

$calendarId = 'primary';
$event = $service->events->insert($calendarId, $event);
printf('Event created: %s\n', $event->htmlLink);

Ruby

ใช้ไลบรารีของไคลเอ็นต์ Ruby

event = Google::Apis::CalendarV3::Event.new(
  summary: 'Google I/O 2015',
  location: '800 Howard St., San Francisco, CA 94103',
  description: 'A chance to hear more about Google\'s developer products.',
  start: Google::Apis::CalendarV3::EventDateTime.new(
    date_time: '2015-05-28T09:00:00-07:00',
    time_zone: 'America/Los_Angeles'
  ),
  end: Google::Apis::CalendarV3::EventDateTime.new(
    date_time: '2015-05-28T17:00:00-07:00',
    time_zone: 'America/Los_Angeles'
  ),
  recurrence: [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  attendees: [
    Google::Apis::CalendarV3::EventAttendee.new(
      email: 'lpage@example.com'
    ),
    Google::Apis::CalendarV3::EventAttendee.new(
      email: 'sbrin@example.com'
    )
  ],
  reminders: Google::Apis::CalendarV3::Event::Reminders.new(
    use_default: false,
    overrides: [
      Google::Apis::CalendarV3::EventReminder.new(
        reminder_method: 'email',
        minutes: 24 * 60
      ),
      Google::Apis::CalendarV3::EventReminder.new(
        reminder_method: 'popup',
        minutes: 10
      )
    ]
  )
)

result = client.insert_event('primary', event)
puts "Event created: #{result.html_link}"

.NET

ใช้ไลบรารีของไคลเอ็นต์ .NET

// Refer to the .NET quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/dotnet
// Change the scope to CalendarService.Scope.Calendar and delete any stored
// credentials.

Event newEvent = new Event()
{
    Summary = "Google I/O 2015",
    Location = "800 Howard St., San Francisco, CA 94103",
    Description = "A chance to hear more about Google's developer products.",
    Start = new EventDateTime()
    {
        DateTime = DateTime.Parse("2015-05-28T09:00:00-07:00"),
        TimeZone = "America/Los_Angeles",
    },
    End = new EventDateTime()
    {
        DateTime = DateTime.Parse("2015-05-28T17:00:00-07:00"),
        TimeZone = "America/Los_Angeles",
    },
    Recurrence = new String[] { "RRULE:FREQ=DAILY;COUNT=2" },
    Attendees = new EventAttendee[] {
        new EventAttendee() { Email = "lpage@example.com" },
        new EventAttendee() { Email = "sbrin@example.com" },
    },
    Reminders = new Event.RemindersData()
    {
        UseDefault = false,
        Overrides = new EventReminder[] {
            new EventReminder() { Method = "email", Minutes = 24 * 60 },
            new EventReminder() { Method = "sms", Minutes = 10 },
        }
    }
};

String calendarId = "primary";
EventsResource.InsertRequest request = service.Events.Insert(newEvent, calendarId);
Event createdEvent = request.Execute();
Console.WriteLine("Event created: {0}", createdEvent.HtmlLink);

Go

ใช้ไลบรารีของไคลเอ็นต์ Go

// Refer to the Go quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/go
// Change the scope to calendar.CalendarScope and delete any stored credentials.

event := &calendar.Event{
  Summary: "Google I/O 2015",
  Location: "800 Howard St., San Francisco, CA 94103",
  Description: "A chance to hear more about Google's developer products.",
  Start: &calendar.EventDateTime{
    DateTime: "2015-05-28T09:00:00-07:00",
    TimeZone: "America/Los_Angeles",
  },
  End: &calendar.EventDateTime{
    DateTime: "2015-05-28T17:00:00-07:00",
    TimeZone: "America/Los_Angeles",
  },
  Recurrence: []string{"RRULE:FREQ=DAILY;COUNT=2"},
  Attendees: []*calendar.EventAttendee{
    &calendar.EventAttendee{Email:"lpage@example.com"},
    &calendar.EventAttendee{Email:"sbrin@example.com"},
  },
}

calendarId := "primary"
event, err = srv.Events.Insert(calendarId, event).Do()
if err != nil {
  log.Fatalf("Unable to create event. %v\n", err)
}
fmt.Printf("Event created: %s\n", event.HtmlLink)

JavaScript

ใช้ไลบรารีไคลเอ็นต์ JavaScript

// Refer to the JavaScript quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/js
// Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any
// stored credentials.

var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'}
  ],
  'reminders': {
    'useDefault': false,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10}
    ]
  }
};

var request = gapi.client.calendar.events.insert({
  'calendarId': 'primary',
  'resource': event
});

request.execute(function(event) {
  appendPre('Event created: ' + event.htmlLink);
});

Node.js

ใช้ไลบรารีของไคลเอ็นต์ Node.js

// Refer to the Node.js quickstart on how to setup the environment:
// https://developers.google.com/calendar/quickstart/node
// Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any
// stored credentials.

var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'},
  ],
  'reminders': {
    'useDefault': false,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10},
    ],
  },
};

calendar.events.insert({
  auth: auth,
  calendarId: 'primary',
  resource: event,
}, function(err, event) {
  if (err) {
    console.log('There was an error contacting the Calendar service: ' + err);
    return;
  }
  console.log('Event created: %s', event.htmlLink);
});

ลองใช้งาน

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