ConnectWiz + Apple 캘린더

운영 중인 연동

Apple 캘린더: 예약은 내보내고, 바쁜 시간은 가져옵니다

ConnectWiz에서 잡은 예약은 Apple 캘린더에 나타나고 취소하면 사라집니다. 반대로 Apple 캘린더에 이미 들어 있는 일정은 가용 시간에서 빠지므로, 목요일 15:00에 치과 예약이 있으면 AI가 그 시간을 제안하지 않습니다.

일정은 내보내기 바쁜 시간은 차감 소스별 역할과 방향
Apple 캘린더 × ConnectWiz
예약 → 캘린더 일정
바쁜 시간 블록 → 가용 시간 차감
읽기 / 쓰기 / 양방향 / 바쁜 시간만
4
일정당 내보내는 필드 — 제목, 메모, 시작, 종료. 참석자도 초대도, 그 밖의 어떤 것도 나가지 않습니다
3
소스마다 독립적인 축 — 예약을 가져올지, 예약을 내보낼지, 가용 시간을 막을지
Null ≠ 0
“캘린더를 읽지 못했음”을 “비어 있음”으로 취급하는 일은 없습니다
1
예약 원장 — 캘린더는 원장을 비추고 원장에 정보를 줄 뿐, 어느 쪽도 원본이 되지 않습니다

캘린더

하는 일, 정확히

Push, 뒷정리까지

새 예약은 Apple 캘린더에 일정을 만들고, 취소는 그 일정을 지웁니다. 담당자의 캘린더가 예약 장부보다 하루 늦는 일은 없습니다.

바쁜 시간도 차감됩니다

패널이든 AI든 플로우든 위젯이든, 어떤 창구가 슬롯을 제안하기 전에 외부 일정이 먼저 가용 시간에서 빠집니다. 개인 일정과 겹쳐 잡히는 것도 함께 막습니다.

동기화 방향은 설정 항목입니다

연결한 소스마다 읽기, 쓰기, 양방향, 바쁜 시간만 중에서 고릅니다. 공용 진료 캘린더와 개인 캘린더가 서로 부딪히지 않고 다른 역할을 맡을 수 있습니다.

기술적인 구조

중복 예약을 만들지 않는 동기화 규칙

앱 암호를 쓰는 CalDAV

Apple이 서드파티에 열어 둔 통로는 CalDAV입니다. Apple ID에서 앱 암호를 발급하면(실제 비밀번호는 Apple 밖으로 나가지 않습니다) 개방 표준을 통해 iCloud 캘린더 컬렉션을 읽고 씁니다.

권한은 드롭다운 하나가 아니라 세 개의 축입니다

소스마다 예약을 가져올지(가져오지 않음, 1회 가져오기, 계속 가져오기), 예약을 내보낼지, 그 소스의 바쁜 시간이 가용 시간을 막을지를 따로 설정합니다. 공용 진료 캘린더와 개인 캘린더가 완전히 다른 역할을 맡을 수 있습니다.

필요한 곳에서는 안전하게 막습니다

가용 시간만 막는 캘린더는 읽기 오류가 나면 안전하게 막는 쪽으로 동작합니다. 바쁜 시간을 모를 때는 충돌을 허용하는 대신 예약을 막습니다. 원장에 예약을 공급하는 소스는 반대로 열어 둡니다. 캘린더 동기화에서 이 선을 잘못 긋는 것이 가장 비싼 실수라, 기분이 아니라 규칙으로 정해 두었습니다.

스스로 복구하는 연결

오류가 난 연결은 이유와 함께 오류로 표시되고, 다음 읽기가 성공하면 자동으로 풀립니다. 끝난 장애를 사람이 와서 체크 해제해 줄 필요는 없습니다.

최소한의 이벤트 페이로드

캘린더에 들어가는 것은 예약 유형 이름, 방문자 이름과 메모, 시각뿐입니다. 참석자 초대도, 화상회의 링크도, 알림 재설정도 없습니다. 알림을 얼마나 울릴지는 각자의 캘린더 앱이 계속 정합니다.

충돌 시 처리 방식을 명시했습니다

양방향 편집이 들어올 때를 대비해 모든 소스는 이미 충돌 정책을 하나씩 갖게 됩니다. 사람이 판단할 때까지 보류(기본값이며 리마인더도 함께 멈춥니다), 저희 쪽 우선, 상대 쪽 우선 가운데 하나이고, 밀린 버전은 보관해 두고 보여 줍니다. 필요해지기 전에 정해 둡니다. 사고가 터진 뒤에 충돌 정책을 끼워 넣다가 데이터가 사라지기 때문입니다.

설정

연결 방식

01

Apple 캘린더 연결

Apple ID에서 발급한 앱 암호로 CalDAV를 통해 연결합니다.

02

역할 지정

읽기, 쓰기, 양방향, 바쁜 시간만 — 캘린더 단위로 정합니다.

03

어디서든 예약

패널, AI, 플로우, 웹사이트 위젯 — 모든 창구가 똑같이 차감된 가용 시간을 봅니다.

함께 쓰면 강해집니다

함께 쓰는 기능

예약 엔진

가용 시간, 버퍼, 최소 고지 시간, 겹치지 않는 홀드가 모두 들어 있는 곳은 예약 시스템 — 캘린더는 여기에 사실을 공급합니다.

Wiz는 안전하게 예약합니다

바쁜 시간을 뺀 뒤에도 남는 슬롯만 제안하는 것은 AI 에이전트 — 이중 예약을 막는 것은 바람이 아니라 데이터베이스 제약입니다.

CRM 다이어리

Estesoft Stella를 쓰고 계신가요? Stella의 다이어리와 자사 캘린더 모두 같은 가용 시간에서 차감됩니다. 자세한 내용은 Stella 연동.

보안과 보증

지루한 보증

최소 권한 범위

연결이 요청하는 권한은 캘린더 접근뿐입니다. 메일도, 연락처도, 드라이브도 요청하지 않습니다. 토큰은 저장할 때 암호화하고 자동으로 갱신합니다.

이벤트는 자사 것으로 남습니다

바쁜 시간 조회가 가져오는 것은 시각이지 내용이 아닙니다. 가용 시간 계산에 필요한 것은 바쁘다는 사실이지 그 이유가 아닙니다.

연결 해제는 깔끔합니다

연결을 지우면 동기화는 즉시 멈추고, 캘린더에 이미 복사된 일정은 남겨 두든 지우든 고객사 몫으로 남습니다.

솔직한 세부 조건

경계를 명시합니다

원장은 저희 쪽에 남습니다

어떤 캘린더를 연결하든 예약 원장은 ConnectWiz 자체 테이블로 남습니다. 캘린더는 거울이자 소스일 뿐, 원본이 되지 않습니다. 설계상의 입장이고, 그대로 밝힙니다.

리마인더는 저희 쪽이지, 캘린더 쪽이 아닙니다

예약 리마인더는 캘린더 알림이 아니라 ConnectWiz에서 보냅니다. 이메일로, 설정해 두었다면 SMS로도 나갑니다. 캘린더 초대를 한 번도 열지 않은 방문자에게까지 닿아야 하기 때문입니다. 리마인더가 두 군데서 울리는 것이 한 군데서 울리는 것보다 나쁘기에 미리 밝혀 둡니다.

Apple 캘린더 FAQ

솔직한 답변

더 자세한 내용은 FAQ에서 확인하시거나, 직접 문의해 주세요.

예약은 일정으로 나가고(취소하면 지워집니다), 바쁜 시간은 들어와 가용 시간에서 빠집니다. 소스마다 읽기, 쓰기, 양방향, 바쁜 시간만 가운데 하나의 역할을 갖습니다.

아닙니다. 가용 시간은 외부의 바쁜 시간을 뺀 다음 계산하고, 겹치는 홀드는 어떤 예약 창구도 우회할 수 없는 데이터베이스 제약이 거부합니다.

Apple이 서드파티 캘린더 접근용으로 지원하는 통로이기 때문입니다. 표준이고, 안정적이며, 비공개 API 없이 iCloud 캘린더와 동작합니다.

Apple이 캘린더 데이터용 OAuth를 제공하지 않기 때문입니다. 앱 암호를 쓰는 CalDAV가 Apple이 지원하는 방식입니다. 개방 표준이고, Apple ID에서 언제든 회수할 수 있으며, 쓰는 도중에 만료되지도 않습니다.

예약 유형을 제목으로 달고 방문자 이름과 메모를 담은 일정이 예약한 시각에 생깁니다. 예약하면 만들어지고 취소하면 지워집니다. 캘린더에서 참석자 초대를 보내지 않고, 캘린더의 다른 내용은 건드리지 않습니다.

요란한 연동보다 정직한 연동이 낫습니다.

여기 있는 연동은 하나같이 실제 동작 그대로 설명합니다. 데이터가 흐르는 방향, 소유권, 한계까지 빠짐없이 적었습니다.