หน้านี้อธิบายพร็อพเพอร์ตี้ eventType และข้อกำหนดของประเภทกิจกรรม
ที่มีใน Google ปฏิทิน API
Google ปฏิทินช่วยให้ผู้ใช้สร้างกิจกรรมทั่วไป รวมถึงกิจกรรมที่ ออกแบบมาสำหรับกรณีการใช้งานที่เฉพาะเจาะจงและมีพร็อพเพอร์ตี้ที่กำหนดเองได้
คุณจะดูประเภทเหตุการณ์ได้ในตำแหน่งต่อไปนี้ใน API
- ระบบจะแสดงเหตุการณ์ทั้งหมดพร้อมกับ
eventType - ต้องตั้งค่า
eventTypeเมื่อสร้างหรืออัปเดตทรัพยากรกิจกรรม หากไม่ได้ตั้งค่า ระบบจะใช้ประเภท'default' eventTypesสามารถระบุในการเรียกEvents:listเพื่อแสดงกิจกรรมประเภทที่เฉพาะเจาะจง หากไม่ได้ระบุประเภท ระบบจะแสดงผลเหตุการณ์ทุกประเภทeventTypesสามารถระบุได้ในการเรียกEvents:watchเพื่อสมัครรับข้อมูลอัปเดตเกี่ยวกับเหตุการณ์บางประเภท หากไม่ได้ระบุประเภท คำขอจะส่งผลให้มีการสมัครรับข้อมูลเหตุการณ์ทุกประเภท
เหตุการณ์เริ่มต้น
ระบบจะสร้างกิจกรรมที่มีdefaultประเภทกิจกรรมและใช้เป็นหนึ่งในแหล่งข้อมูลหลักของ Google ปฏิทิน API โดยรองรับพร็อพเพอร์ตี้
ที่หลากหลาย
ซึ่งใช้เพื่อปรับแต่งเหตุการณ์เพิ่มเติมได้
ดูวิธี สร้างกิจกรรมเพื่อเริ่มต้นใช้งาน กิจกรรมใน Google ปฏิทิน
วันเกิด
วันเกิดเป็นกิจกรรมพิเศษตลอดทั้งวันที่จะเกิดซ้ำทุกปี
ผู้ใช้สามารถสร้างกิจกรรมวันเกิดใน Google ปฏิทินด้วยตนเองได้ นอกจากนี้ ข้อมูลวันเกิดจะซิงค์กับ Google ปฏิทินเมื่อผู้ใช้เพิ่มบุคคลและระบุวันเกิดและวันสำคัญอื่นๆ ไว้ใน Google Contacts ระบบจะซิงค์วันเกิดของผู้ใช้กับ Google ปฏิทินจากโปรไฟล์บัญชี Google ด้วย
Google ปฏิทิน 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 ปฏิทิน 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 ปฏิทิน 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 ปฏิทิน API
วิธีการต่อไปนี้อธิบายวิธีอ่านและจัดการกิจกรรมโดยใช้ Google Calendar API เป็นบริการขั้นสูงใน Google Apps Script ดูรายการทรัพยากรและเมธอดทั้งหมดของ Google ปฏิทิน API ได้ในเอกสารอ้างอิง
สร้างและตั้งค่าสคริปต์
- สร้างสคริปต์โดยไปที่ script.google.com/create
- ในแผงด้านซ้ายข้างบริการ ให้คลิกเพิ่มบริการ
- เลือก API Google ปฏิทิน แล้วคลิกเพิ่ม
- หลังจากเปิดใช้แล้ว API จะปรากฏในแผงด้านซ้าย คุณแสดงรายการเมธอดและคลาสที่มีอยู่ใน API ได้โดยใช้คีย์เวิร์ด Calendar ในเครื่องมือแก้ไข
(ไม่บังคับ) อัปเดตโปรเจ็กต์ Google Cloud
โปรเจ็กต์ Google Apps Script แต่ละโปรเจ็กต์จะมีโปรเจ็กต์ที่อยู่ในระบบคลาวด์ที่เชื่อมโยงกัน สคริปต์ของคุณสามารถใช้โปรเจ็กต์เริ่มต้นที่ Google Apps Script สร้างขึ้นโดยอัตโนมัติ ได้ หากต้องการใช้โปรเจ็กต์ Google Cloud ที่กำหนดเอง โปรดดูเปลี่ยนไปใช้โปรเจ็กต์ที่อยู่ในระบบคลาวด์มาตรฐานอื่น หลังจากตั้งค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google แล้ว ให้เลือกเอดิเตอร์ ทางด้านซ้ายเพื่อกลับไปที่ตัวแก้ไขโค้ด
เพิ่มโค้ดลงในสคริปต์
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแสดง อ่าน และสร้างเหตุการณ์ที่มีค่า 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 เข้าถึงปฏิทิน
- คุณตรวจสอบผลการดำเนินการสคริปต์ได้ในบันทึกการดำเนินการที่ปรากฏที่ด้านล่างของหน้าต่าง