หน้านี้อธิบายพร็อพเพอร์ตี้ 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 Calendar 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/workspace/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/workspace/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/workspace/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 เข้าถึงปฏิทิน
- คุณตรวจสอบผลลัพธ์ของการเรียกใช้สคริปต์ได้ในบันทึกการดำเนินการที่ปรากฏที่ด้านล่างของหน้าต่าง