บทความ / หัวข้อ GAS

ทำระบบจองคิว จองห้อง นัดหมายออนไลน์ด้วย Google Sheets และ Apps Script

อัปเดต 5 ตุลาคม 2026

ระบบจองเป็นงานที่ Apps Script ทำได้ดีมาก เพราะเชื่อมทั้ง Google Sheets (เก็บข้อมูล) + Google Calendar (ปฏิทิน) + Gmail/LINE (แจ้งเตือน) ได้ในที่เดียว หัวใจสำคัญคือ ห้ามมีการจองซ้อน

ระบบพร้อมใช้ที่เกี่ยวข้อง

ตรวจช่วงเวลาทับซ้อน

ช่วงเวลา A และ B ทับกันเมื่อ A.start < B.end && B.start < A.end

function book(req) {
  const lock = LockService.getScriptLock();
  lock.waitLock(10000);                       // สำคัญ: กันสองคนจองพร้อมกัน
  try {
    const sh = SpreadsheetApp.getActive().getSheetByName('bookings');
    const rows = sh.getDataRange().getValues().slice(1);
    const s = new Date(req.start), e = new Date(req.end);
    const clash = rows.some(([, room, start, end, status]) =>
      room === req.room && status !== 'cancelled' && s < new Date(end) && new Date(start) < e);
    if (clash) throw new Error('ช่วงเวลานี้ถูกจองแล้ว');
    sh.appendRow([Utilities.getUuid(), req.room, s, e, 'confirmed', req.name]);
  } finally {
    lock.releaseLock();
  }
}

เพิ่มลง Google Calendar อัตโนมัติ

CalendarApp.getCalendarById(CALENDAR_ID)
  .createEvent('จอง ' + req.room + ' - ' + req.name, s, e);

ฟีเจอร์ที่ลูกค้ามักต้องการ

  • ปฏิทินแสดงช่องว่างรายวัน/สัปดาห์
  • ยกเลิก/เลื่อนนัดเองผ่านลิงก์
  • แจ้งเตือนก่อนถึงเวลานัดด้วย Trigger
  • มัดจำผ่าน QR พร้อมเพย์

คำถามที่พบบ่อย: ระบบจองออนไลน์

ใช้ LockService ครอบขั้นตอนตรวจช่วงเวลาว่างและบันทึกการจอง ทำให้คำขอที่มาพร้อมกันถูกประมวลผลทีละรายการ

ไม่ต้อง ถ้า Deploy เว็บแอปแบบ Who has access: Anyone

ได้ ตั้ง Time-driven trigger ทุกชั่วโมงให้ค้นหานัดที่ใกล้ถึงแล้วส่ง LINE หรืออีเมล

ระบบอื่นที่น่าสนใจ

POS ร้านซักอบรีด
ดูรายละเอียด
POS งานบริการ v1.0.0

POS ร้านซักอบรีด

รับผ้าไว ออกแท็กทันที ผ้าไม่หาย ไม่เลยนัด · ใบรับผ้า ป้ายแท็ก กระดานงานซัก แจ้งเตือนน้ำยาใกล้หมด

฿1,990.00
0
POS ร้านนวดแผนไทย & สปา
ดูรายละเอียด
POS งานบริการ v1.0.0

POS ร้านนวดแผนไทย & สปา

เตียงไหนว่าง ใครนวดอยู่ รู้ได้ในแตะเดียว · บิลห้อง/เตียง กระดานคิวบริการ ค่ามือหมอนวด ตัดวัสดุต่อบริการและเตือนก่อนหมดเข้า LINE · บน Google Sheets ของร้านเอง ไม่มีค่ารายเดือน

฿1,990.00
0