n8n x Google Calendar: จัดการนัดหมายอัตโนมัติ
ใช้ n8n สร้าง อ่าน อัปเดต และลบ Event ใน Google Calendar อัตโนมัติ เชื่อมกับ Forms, Sheets และระบบจองได้ครบ
การจัดการนัดหมายด้วยมือในธุรกิจที่มีลูกค้าจำนวนมากเป็นงานที่ใช้เวลามาก ทั้งการสร้าง Event, ส่งคำเชิญ, อัปเดตเมื่อเปลี่ยนเวลา และแจ้งเตือนก่อนถึงนัด n8n เชื่อมกับ Google Calendar ทำให้ขั้นตอนเหล่านี้เกิดขึ้นเองโดยอัตโนมัติตามเงื่อนไขที่กำหนด
Google Calendar Node ทำอะไรได้บ้าง
n8n รองรับ Operation หลักของ Google Calendar:
- Create Event สร้าง Event ใหม่พร้อม Title, Description, เวลาเริ่ม-จบ, Location และ Attendees
- Get Event ดึงรายละเอียด Event เดียวตาม ID
- Get Many Events ดึงรายการ Event ในช่วงเวลาที่กำหนด
- Update Event แก้ไขข้อมูล Event ที่มีอยู่
- Delete Event ลบ Event
- Add Attendee เพิ่มผู้เข้าร่วม Event
ทุก Operation ใช้ Google OAuth2 Credential เดียวกับ Sheets และ Gmail
ตั้งค่า Google Calendar Credentials
ใช้ Credential เดียวกับที่ตั้งค่าสำหรับบริการ Google อื่น แต่ต้องเปิดใช้ Google Calendar API ใน Google Cloud Console ด้วย ถ้ายังไม่ได้ทำดูขั้นตอนเต็มที่คู่มือ Google Workspace
สร้าง Event อัตโนมัติจากการจอง
ขั้นตอนการสร้าง Event:
- เพิ่ม Google Calendar Node ใน Workflow
- เลือก Operation: Create Event
- ระบุ Calendar ID (ใช้
primaryสำหรับ Calendar หลัก หรือ Email ของ Calendar อื่น) - ตั้งค่า Fields:
Summary (Title): การนัดหมาย: {{ $json.service_name }}
Description: ลูกค้า: {{ $json.name }}\nโทร: {{ $json.phone }}
Start Time: {{ $json.appointment_date }}T{{ $json.appointment_time }}:00+07:00
End Time: {{ $json.appointment_end }}T{{ $json.appointment_end_time }}:00+07:00
Attendees: {{ $json.customer_email }}
Location: {{ $json.location }}
ข้อสำคัญเรื่อง Timezone: Google Calendar ใช้ ISO 8601 format สำหรับเวลา ต้องระบุ Timezone ด้วย สำหรับไทยใช้ +07:00 ต่อท้าย มิฉะนั้น Event อาจแสดงเวลาผิด
Workflow จริง: ระบบจองนัดหมาย
สถานการณ์: คลินิกหรือร้านเสริมสวยที่รับจองผ่าน Google Forms
- Webhook Node หรือ Cron อ่านข้อมูลจาก Google Forms (ดูวิธีที่คู่มือ Google Forms)
- IF Node ตรวจสอบว่าเวลานั้นว่างไหม โดยดึง Event จาก Calendar ในช่วงเวลานั้น
- แตก Branch:
- ถ้าว่าง: สร้าง Calendar Event + ส่ง Gmail ยืนยัน + บันทึก Sheets
- ถ้าไม่ว่าง: ส่ง Gmail แจ้งลูกค้าพร้อมแนะนำเวลาอื่น
ตรวจสอบว่าเวลาว่างหรือไม่:
// Code Node ตรวจสอบ Event ที่ซ้อนทับกัน
const events = $input.all();
const requestedStart = new Date($('Webhook').first().json.appointment_time);
const requestedEnd = new Date(requestedStart.getTime() + 60 * 60 * 1000); // +1 ชั่วโมง
const hasConflict = events.some(event => {
const eventStart = new Date(event.json.start.dateTime);
const eventEnd = new Date(event.json.end.dateTime);
return requestedStart < eventEnd && requestedEnd > eventStart;
});
return [{ json: { available: !hasConflict } }];
ดึง Event เพื่อใช้ใน Workflow
Get Many Events ใช้ดึง Event ในช่วงเวลาที่กำหนด เหมาะสำหรับ:
- สรุปนัดหมายของวันนี้และส่ง LINE แจ้งทีมตอนเช้า
- ดึงนัดหมายของสัปดาห์หน้ามาวางแผนทรัพยากร
- ตรวจสอบนัดหมายที่ใกล้ถึงเพื่อส่งอีเมลเตือนล่วงหน้า
ตัวอย่าง Workflow แจ้งเตือนก่อนนัด 1 ชั่วโมง:
- Cron Node ทุกชั่วโมง
- Google Calendar Node ดึง Event ในช่วง
nowถึงnow + 1 ชั่วโมง - Filter Node กรองเฉพาะ Event ที่ยังไม่ได้ส่งเตือน (ใช้ Flag ใน Description หรือ Sheets)
- Gmail Node ส่งอีเมลเตือนลูกค้า
- Google Calendar Node Update Event เพิ่ม “Reminder Sent” ใน Description
อัปเดตและยกเลิกนัดหมาย
เมื่อลูกค้าต้องการเลื่อนหรือยกเลิกนัด Workflow สามารถจัดการได้:
- รับ Request ยกเลิก/เลื่อน (ผ่าน Webhook, LINE, หรือ Form)
- ดึง Event ID จาก Sheets โดยใช้ข้อมูลเช่น Phone หรือ Booking ID
- Update Event เปลี่ยนเวลา หรือ Delete Event ถ้ายกเลิก
- Gmail Node ส่งยืนยันการเปลี่ยนแปลง
- Google Sheets Node Update สถานะการจองใน Sheets
เคล็ดลับการใช้งาน Calendar Node
Calendar ID: แต่ละ Calendar ใน Google Calendar มี ID เฉพาะ สำหรับ Calendar หลักให้ใช้ primary หรือ Email Address ของผู้ใช้ สำหรับ Calendar อื่นหาได้จาก Google Calendar Settings > Calendar ที่ต้องการ > ส่วน Calendar ID
Attendees และ Send Notifications: เมื่อเพิ่ม Attendees ใน Event Google จะส่งคำเชิญอัตโนมัติ ถ้าไม่ต้องการส่งคำเชิญให้ตั้งค่า sendNotifications: false
Recurring Events: n8n รองรับการสร้าง Recurring Event ด้วย RRULE format เช่น RRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR สำหรับ Event ที่เกิดขึ้นทุก จันทร์ พุธ ศุกร์
อยากเรียน n8n แบบเป็นระบบ ตั้งแต่เริ่มต้นจนสร้าง Workflow ใช้งานจริงได้ ลองดู คอร์สสอน n8n ที่ aiunlock.co
Related posts
n8n x Google Drive: จัดการไฟล์อัตโนมัติ
ใช้ n8n อัปโหลด ดาวน์โหลด คัดลอก และจัดโฟลเดอร์ไฟล์ใน Google Drive อัตโนมัติ ระบบสำรองและแจกจ่ายไฟล์
n8n x LINE: คู่มือเชื่อมต่อ LINE ทำ Automation ครบทุกวิธี
รวมทุกวิธีเชื่อมต่อ LINE กับ n8n ตั้งแต่ LINE Notify, Messaging API, Flex Message ไปจนถึง Rich Menu และ AI Chatbot
สร้าง Telegram Bot ด้วย n8n: แจ้งเตือนและสั่งงาน
คู่มือสร้าง Telegram Bot ด้วย n8n ตั้งแต่สร้าง Bot ผ่าน BotFather จนถึงสร้าง Workflow แจ้งเตือนอัตโนมัติและรับคำสั่งจาก Telegram