หน้านี้จะอธิบายพร็อพเพอร์ตี้ eventType
และข้อกําหนดของประเภทกิจกรรมที่มีอยู่ใน Google Calendar API
Google ปฏิทินช่วยให้ผู้ใช้สร้างกิจกรรมทั่วไป รวมถึงกิจกรรมที่ออกแบบมาสำหรับกรณีการใช้งานที่เฉพาะเจาะจงและมีพร็อพเพอร์ตี้ที่กำหนดเอง
ประเภทเหตุการณ์จะค้นพบได้ในตำแหน่งต่อไปนี้ใน API
- ระบบจะแสดงผลเหตุการณ์ทั้งหมดพร้อม
eventType
eventType
ต้องตั้งค่าเมื่อสร้างหรืออัปเดตทรัพยากรกิจกรรม หากไม่ได้ตั้งค่า ระบบจะใช้ประเภท'default'
eventTypes
สามารถระบุได้ในคําเรียกEvents:list
เพื่อแสดงรายการเหตุการณ์บางประเภท หากไม่ได้ระบุประเภท ระบบจะแสดงเหตุการณ์ทุกประเภทeventTypes
สามารถระบุได้ในEvents:watch
การเรียกใช้เพื่อสมัครรับข้อมูลอัปเดตเกี่ยวกับเหตุการณ์บางประเภท หากไม่ได้ระบุประเภท คําขอจะส่งผลให้มีการสมัครรับข้อมูลเหตุการณ์ทุกประเภท
เหตุการณ์เริ่มต้น
ระบบจะสร้างกิจกรรมที่มีประเภทกิจกรรม default
และใช้กิจกรรมดังกล่าวเป็นหนึ่งในทรัพยากรหลักของ Google Calendar API ซึ่งรองรับพร็อพเพอร์ตี้ที่หลากหลาย ซึ่งสามารถใช้เพื่อปรับแต่งเหตุการณ์เพิ่มเติมได้
โปรดดูหัวข้อสร้างกิจกรรมเพื่อเริ่มทำงานกับกิจกรรมใน Google ปฏิทิน
วันเกิด
วันเกิดเป็นกิจกรรมพิเศษตลอดทั้งวันซึ่งเกิดขึ้นซ้ำทุกปี
ผู้ใช้สามารถสร้างกิจกรรมวันเกิดใน Google ปฏิทินด้วยตนเองได้ นอกจากนี้ ข้อมูลวันเกิดจะซิงค์กับ Google ปฏิทินเมื่อผู้ใช้เพิ่มบุคคลและระบุวันเกิดและวันสำคัญอื่นๆ ของบุคคลดังกล่าวไว้ใน Google Contacts ระบบจะซิงค์วันเกิดของผู้ใช้จากโปรไฟล์บัญชี Google กับ Google ปฏิทินด้วย
Google Calendar API รองรับเมธอด get
,
instances
และ
list
สำหรับการอ่านกิจกรรมวันเกิด คุณสามารถตั้งค่า eventTypes
เป็น 'birthday'
เพื่อแสดงเฉพาะกิจกรรมวันเกิด หากไม่ได้ระบุประเภท วันเกิดจะแสดงพร้อมกับเหตุการณ์ประเภทอื่นๆ ทั้งหมด
ในออบเจ็กต์ Event
ที่แสดง ให้ตรวจสอบฟิลด์ birthdayProperties
เพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับเหตุการณ์พิเศษนี้ birthdayProperties
มีฟิลด์ต่อไปนี้
type
: ประเภทของกิจกรรมพิเศษนี้ ไม่ว่าจะเป็นวันเกิด วันครบรอบ หรือวันที่สำคัญอื่นๆcustomTypeName
: ป้ายกำกับที่ผู้ใช้ระบุสำหรับกิจกรรมพิเศษนี้ ระบบจะป้อนข้อมูลนี้หากตั้งค่าtype
เป็น'custom'
contact
: ชื่อทรัพยากรของผู้ติดต่อที่ลิงก์กับกิจกรรมพิเศษนี้ หากมี ข้อมูลนี้อยู่ในรูปแบบ'people/c12345'
และใช้เพื่อดึงข้อมูลติดต่อจาก People API ได้
API นี้อนุญาตให้สร้างกิจกรรมวันเกิดโดยใช้เมธอด insert
ที่มีข้อกําหนดต่อไปนี้
- ตั้งค่า
eventType
เป็น'birthday'
- ช่อง
start
และend
ต้องกําหนดกิจกรรมตลอดทั้งวันที่ครอบคลุม 1 วันพอดี - ค่าในช่อง
visibility
ต้องเท่ากับ'private'
- ค่าในช่อง
transparency
ต้องเท่ากับ'transparent'
- ต้องมีความถี่ตามรอบรายปี ซึ่งหมายความว่าช่อง
recurrence
ต้องเป็น'RRULE:FREQ=YEARLY'
กิจกรรมวันเกิดที่ตรงกับวันที่ 29 กุมภาพันธ์ต้องมีกฎการเกิดซ้ำต่อไปนี้'RRULE:FREQ=YEARLY;BYMONTH=2;BYMONTHDAY=-1'
- มี
colorId
,summary
และreminders
- อาจมี
birthdayProperties
หากระบุtype
ต้องเป็น'birthday'
และทั้งcustomTypeName
และcontact
ต้องว่างเปล่า - ไม่มีพร็อพเพอร์ตี้เหตุการณ์อื่นๆ
API นี้อนุญาตให้อัปเดต colorId
, summary
และ reminders
ของกิจกรรมวันเกิดโดยใช้เมธอด update
และ patch
นอกจากนี้ คุณยังอัปเดตช่อง start
และ end
เพื่อเปลี่ยนวันที่ของกิจกรรมได้ด้วย ในกรณีนี้ ค่าใหม่ต้องกําหนดเหตุการณ์ตลอดทั้งวันซึ่งครอบคลุม 1 วันพอดี คุณจะอัปเดตรายละเอียดเวลาของกิจกรรมวันเกิดไม่ได้หากกิจกรรมลิงก์กับcontact
หรือtype
เป็น'self'
Google Calendar API ไม่อนุญาตให้สร้างกิจกรรมวันเกิดที่มี birthdayProperties
ที่กำหนดเอง หรืออัปเดตพร็อพเพอร์ตี้เหล่านี้ คุณแก้ไขวันที่สำคัญได้ด้วย People API และระบบจะซิงค์การเปลี่ยนแปลงกับ Google ปฏิทิน ในทำนองเดียวกัน ผู้ใช้สามารถแก้ไขวันเกิดของตนเองในโปรไฟล์บัญชี Google และระบบจะซิงค์กับ Google ปฏิทิน
คำขอที่พยายามสร้างหรืออัปเดตวันเกิดด้วยวิธีที่เราไม่รองรับจะดำเนินการไม่สำเร็จ ในกรณีนี้ ให้ตรวจสอบข้อความแสดงข้อผิดพลาดเพื่อระบุปัญหา
API รองรับการดำเนินการ import
สำหรับกิจกรรมวันเกิด แต่ระบบจะนำเข้ากิจกรรมเป็นกิจกรรมเริ่มต้น กล่าวคือ eventType
จะเท่ากับ 'default'
API รองรับเมธอด watch
เพื่อสมัครรับข้อมูลการเปลี่ยนแปลงกิจกรรมวันเกิดใน Google ปฏิทิน
คุณสามารถตั้งค่า eventTypes
เป็น 'birthday'
เพื่อสมัครรับข้อมูลอัปเดตเกี่ยวกับกิจกรรมวันเกิด หากไม่ระบุประเภท ระบบจะสมัครรับข้อมูลเหตุการณ์ทุกประเภท รวมถึงวันเกิด
คุณลบกิจกรรมวันเกิดได้โดยใช้เมธอด delete
ของ Google Calendar API การลบกิจกรรมวันเกิดจาก Google ปฏิทินจะไม่ส่งผลต่อข้อมูลใน Google Contacts หรือโปรไฟล์บัญชี Google
ระบบไม่รองรับการเปลี่ยนผู้จัดของกิจกรรมวันเกิดโดยใช้วิธี move
หรือ update
กิจกรรมจาก Gmail
กิจกรรมที่สร้างขึ้นจาก Gmail โดยอัตโนมัติจะมีประเภทกิจกรรม 'fromGmail'
Google Calendar API ไม่อนุญาตให้สร้างกิจกรรมประเภทนี้โดยใช้เมธอด insert
API นี้อนุญาตให้อัปเดตพร็อพเพอร์ตี้เพิ่มเติม colorId
,
reminders
,
visibility
,
transparency
,
status
,
attendees
,
private
และ shared
โดยใช้เมธอด update
และ patch
API รองรับเมธอด get
และ list
ในการอ่านเหตุการณ์จาก Gmail คุณสามารถตั้งค่า eventTypes
เป็น 'fromGmail'
เพื่อแสดงเฉพาะเหตุการณ์ที่สร้างขึ้นจาก Gmail หากไม่ได้ระบุประเภท กิจกรรมจาก Gmail จะแสดงพร้อมกับกิจกรรมประเภทอื่นๆ ทั้งหมด
API รองรับเมธอด watch
เพื่อสมัครรับข้อมูลการเปลี่ยนแปลงกิจกรรมจาก Gmail ใน Google ปฏิทิน หากไม่ระบุประเภท ระบบจะสมัครรับข้อมูลเหตุการณ์ทุกประเภท รวมถึง 'fromGmail'
คุณสามารถลบกิจกรรมจาก Gmail ได้โดยใช้เมธอด delete
ของ Google Calendar API
ระบบไม่รองรับการเปลี่ยนผู้จัดกิจกรรมจาก Gmail โดยใช้เมธอด move
หรือ update
เวลาที่ต้องการสมาธิ การลางาน และสถานที่ทำงาน
คุณสามารถใช้ Google Calendar API เพื่อสร้างและจัดการกิจกรรมที่แสดงสถานะของผู้ใช้ Google ปฏิทิน
ฟีเจอร์เหล่านี้ใช้ได้เฉพาะในปฏิทินหลักและผู้ใช้ Google ปฏิทินบางรายเท่านั้น ดูข้อมูลเพิ่มเติมได้ที่จัดการเวลาที่ต้องการสมาธิ ลางาน และเหตุการณ์เกี่ยวกับสถานที่ทำงาน
สํารวจประเภทเหตุการณ์ใน Google Apps Script
Google Apps Script คือภาษาสคริปต์ในระบบคลาวด์ที่อิงตาม JavaScript ซึ่งช่วยให้คุณสร้างแอปพลิเคชันทางธุรกิจที่ผสานรวมกับ Google Workspace ได้ สคริปต์จะพัฒนาในตัวแก้ไขโค้ดบนเบราว์เซอร์ และระบบจะจัดเก็บและเรียกใช้สคริปต์เหล่านั้นในเซิร์ฟเวอร์ของ Google โปรดดูGoogle Apps Script เริ่มต้นใช้งานเพื่อเริ่มใช้ Apps Script ในการส่งคำขอไปยัง Google Calendar API
วิธีการต่อไปนี้อธิบายวิธีอ่านและจัดการกิจกรรมโดยใช้ Google Calendar API เป็นบริการขั้นสูงใน Google Apps Script ดูรายการแหล่งข้อมูลและเมธอดทั้งหมดของ Google ปฏิทิน API ได้ที่เอกสารอ้างอิง
สร้างและตั้งค่าสคริปต์
- สร้างสคริปต์โดยไปที่ script.google.com/create
- ในแผงด้านซ้าย ข้างบริการ ให้คลิกเพิ่มบริการ
- เลือก Google Calendar API แล้วคลิกเพิ่ม
- หลังจากเปิดใช้แล้ว API จะปรากฏในแผงด้านซ้าย คุณสามารถแสดงเมธอดและคลาสที่ใช้ได้ใน API โดยใช้คีย์เวิร์ด Calendar ในเครื่องมือแก้ไข
(ไม่บังคับ) อัปเดตโปรเจ็กต์ Google Cloud
โปรเจ็กต์ Google Apps Script แต่ละโปรเจ็กต์จะมีโปรเจ็กต์ Google Cloud ที่เกี่ยวข้อง สคริปต์ของคุณสามารถใช้โปรเจ็กต์เริ่มต้นที่ Google Apps Script สร้างโดยอัตโนมัติ หากต้องการใช้โปรเจ็กต์ Google Cloud ที่กําหนดเอง โปรดดูเปลี่ยนไปใช้โปรเจ็กต์ Cloud มาตรฐานอื่น หลังจากตั้งค่าโปรเจ็กต์ Google Cloud แล้ว ให้เลือกเครื่องมือแก้ไข ทางด้านซ้ายเพื่อกลับไปที่เครื่องมือแก้ไขโค้ด
เพิ่มโค้ดลงในสคริปต์
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแสดงรายการ อ่าน และสร้างเหตุการณ์ที่มีค่า eventType
ต่างกัน
วางข้อมูลต่อไปนี้ลงในเครื่องมือแก้ไขโค้ด
const CALENDAR_ID = 'CALENDAR_ID' || 'primary'; /** Lists default events. */ function listDefaultEvents() { listEvents('default'); } /** Lists birthday events. */ function listBirthdays() { listEvents('birthday'); } /** Lists events from Gmail. */ function listEventsFromGmail() { listEvents('fromGmail'); } /** * Lists events with the given event type. If no type is specified, lists all events. * See https://developers.google.com/calendar/api/v3/reference/events/list */ function listEvents(eventType = undefined) { // Query parameters for the list request. const optionalArgs = { eventTypes: eventType ? [eventType] : undefined, singleEvents: true, timeMax: '2024-07-30T00:00:00+01:00', timeMin: '2024-07-29T00:00:00+01:00', } try { var response = Calendar.Events.list(CALENDAR_ID, optionalArgs); response.items.forEach(event => console.log(event)); } catch (exception) { console.log(exception.message); } } /** * Reads the event with the given eventId. * See https://developers.google.com/calendar/api/v3/reference/events/get */ function readEvent() { try { var response = Calendar.Events.get(CALENDAR_ID, 'EVENT_ID'); console.log(response); } catch (exception) { console.log(exception.message); } } /** Creates a default event. */ function createDefaultEvent() { const event = { start: { dateTime: '2024-07-30T10:30:00+01:00'}, end: { dateTime: '2024-07-30T12:30:00+01:00'}, description: 'Created from Apps Script.', eventType: 'default', summary: 'Sample event', } createEvent(event); } /** Creates a birthday event. */ function createBirthday() { const event = { start: { date: '2024-01-29' }, end: { date: '2024-01-30' }, eventType: 'birthday', recurrence: ["RRULE:FREQ=YEARLY"], summary: "My friend's birthday", transparency: "transparent", visibility: "private", } createEvent(event); } /** * Creates a Calendar event. * See https://developers.google.com/calendar/api/v3/reference/events/insert */ function createEvent(event) { try { var response = Calendar.Events.insert(event, CALENDAR_ID); console.log(response); } catch (exception) { console.log(exception.message); } }
แทนที่ค่าต่อไปนี้
CALENDAR_ID
: อีเมลของปฏิทินที่จะดึงข้อมูลและสร้างกิจกรรม ค่าคงที่นี้ได้รับการตั้งค่าเป็น'primary'
ในตอนแรก ซึ่งเป็นคีย์เวิร์ดในการเข้าถึงปฏิทินหลักของผู้ใช้ที่ลงชื่อเข้าใช้ การเปลี่ยนค่านี้จะช่วยให้คุณอ่านกิจกรรมในปฏิทินของผู้ใช้รายอื่นที่คุณมีสิทธิ์เข้าถึงได้EVENT_ID
: รหัสของเหตุการณ์ คุณสามารถเรียกใช้ Events:list เพื่อเรียกข้อมูลรหัสกิจกรรม
เรียกใช้ตัวอย่างโค้ด
- เหนือเครื่องมือแก้ไขโค้ด ให้เลือกฟังก์ชันที่จะเรียกใช้จากเมนูแบบเลื่อนลง แล้วคลิกเรียกใช้
- ในการเรียกใช้ครั้งแรก ระบบจะแจ้งให้คุณให้สิทธิ์เข้าถึง ตรวจสอบและอนุญาตให้ Apps Script เข้าถึงปฏิทิน
- คุณสามารถตรวจสอบผลลัพธ์ของการดำเนินการสคริปต์ได้ในบันทึกการดำเนินการที่ปรากฏที่ด้านล่างของหน้าต่าง