에어비앤비 캘린더를 홈페이지 예약 달력에 연동하는 법
에어비앤비 예약을 홈페이지 달력에 어떻게 반영하나요?
에어비앤비가 제공하는 iCal 주소를 홈페이지가 주기적으로 읽어 예약된 날짜를 자동으로 막습니다. 설악팜은 5분 캐시로 운영 중이며, 플랫폼에서 예약이 잡히면 5분 안에 홈페이지 달력에도 반영됩니다.
숙소 운영에서 가장 자주 오는 문의가 “그날 되나요?”입니다. 이 질문 하나 때문에 사장님이 하루에도 몇 번씩 플랫폼 캘린더를 열어봅니다. 홈페이지에 달력이 있어도 손으로 막는 달력이면 오히려 위험합니다. 깜빡하면 이중 예약이 납니다.
해결 방법은 어렵지 않습니다. 플랫폼이 이미 캘린더를 파일로 내보내 주고 있습니다.
1. iCal 주소를 가져온다
에어비앤비 호스트 화면의 캘린더 설정에 “캘린더 내보내기”가 있습니다. 여기서 나오는 주소가 .ics로 끝나는 iCal 주소입니다. 이 주소를 열어보면 예약된 날짜 구간이 텍스트로 들어 있습니다.
이 주소는 비밀에 가깝습니다. 주소를 아는 사람은 그 숙소의 예약 일정을 볼 수 있습니다. 홈페이지 소스나 공개된 곳에 그대로 노출하지 마시고, 서버가 대신 읽어오도록 만들어야 합니다.
2. 서버가 읽고, 홈페이지는 결과만 받는다
브라우저가 플랫폼 주소를 직접 읽게 만들면 두 가지 문제가 생깁니다. iCal 주소가 노출되고, 손님이 페이지를 열 때마다 플랫폼에 요청이 갑니다. 그래서 서버가 중간에서 읽고 결과만 내려줍니다.
설악팜은 5분 캐시를 둡니다. 손님이 몰려도 플랫폼에는 5분에 한 번만 물어보고, 그 사이 방문자에게는 저장해 둔 결과를 보여줍니다. 플랫폼에 과도한 요청을 보내지 않으면서도 예약 반영은 5분 안에 따라갑니다.
3. 실제로 걸렸던 것들
규격대로만 만들면 잘 돌 것 같지만, 운영해 보면 걸리는 게 있습니다. 설악팜에서 실제로 처리한 것들입니다.
- 리다이렉트 — iCal 주소가 다른 주소로 넘기는 경우가 있습니다. 따라가지 않으면 빈 캘린더를 읽고 전부 예약 가능으로 표시됩니다. 가장 위험한 실패 방식입니다. 조용히 틀리기 때문입니다.
- 긴 줄 병합 — iCal 규격은 긴 줄을 여러 줄로 접어서 보냅니다. 접힌 줄을 다시 붙이지 않으면 일부 예약을 놓칩니다.
- 날짜 두 형식 — 하루 단위(날짜만)와 시각까지 들어 있는 형식이 섞여 옵니다. 둘 다 처리해야 합니다.
- 퇴실일 처리 — 예약 구간의 마지막 날은 보통 퇴실일이라 그날 밤은 비어 있습니다. 이걸 막아버리면 팔 수 있는 날을 못 팝니다.
정리하면, 연동이 실패했을 때 “예약 가능”으로 보이는 게 가장 위험합니다. 읽어온 결과가 비어 있으면 예약을 받지 말고 문의로 유도하는 편이 안전합니다.
4. 직접 예약을 함께 받을 때
홈페이지에서 직접 예약을 받기 시작하면 방향이 하나 더 생깁니다. 플랫폼 → 홈페이지는 iCal이 해결하지만, 홈페이지 → 플랫폼은 자동으로 되지 않습니다.
실무에서는 이렇게 씁니다. 홈페이지로 직접 예약을 받으면 그 날짜를 플랫폼 캘린더에서 막아 둡니다. 그러면 다음 동기화 때 홈페이지 달력에도 반영되어 양쪽이 같은 기준을 보게 됩니다. 손이 한 번 가지만 이중 예약은 나지 않습니다.
5. 달력이 있으면 문의가 어떻게 바뀌나
달력만 붙여도 “그날 되나요?”가 줄지만, 더 큰 변화는 문의의 성격이 바뀌는 것입니다. 손님이 달력에서 날짜를 고르고 나면 그다음 질문은 “이 날짜로 예약하고 싶은데요”가 됩니다. 확인 문의가 예약 문의로 바뀝니다.
설악팜은 여기에 한 단계를 더 붙였습니다. 달력에서 체크인·체크아웃을 고르면 숙박일수가 계산되고, 그 상태로 문의가 접수되어 운영자 카카오톡으로 바로 전달됩니다. 손님은 날짜를 다시 적지 않고, 사장님은 날짜를 다시 묻지 않습니다.