일정을 등록하고 싱크하기 위한 요건
일정을 등록
- 일정에 포함되는 내용
- 제목, 종일일정, 시작일 시간 종료일 시간
- 일정분류 – 내가 쓰기 권한이 있는 폴더
- 위치, 참석자등록 주최자는 작성자, 초대는 검색해서 추가
- 초대자 일정을 조회해서 볼수 있어야하는 유효일정 확인
- 반복일정 설정
- 내용
- 첨부파일 – 옵션
일정추가
해당 항목을 ical형식에 맞게 변환해서 gateway-api를 통해 smartermail 서버로 전달
- l FREQ: 반복 주기 (DAILY, WEEKLY, MONTHLY, YEARLY)
- l INTERVAL: 반복 간격 (예: INTERVAL=2 → 2일마다, 2주마다)
- l BYDAY: 요일 지정 (MO=월, TU=화, WE=수 …)
- l BYMONTHDAY: 특정 월의 날짜 지정 (예: 15일)
- l BYMONTH: 특정 월 지정 (예: 1월, 6월)
- l UNTIL: 반복 종료 시점 (UTC 형식)
- l COUNT: 반복 횟수 제한
일정변경 업데이트 UID, SEQUENCE DTSTAMP 값을 조회해서 일정을 찾아 ical update
UID 기반 식별
- 각 이벤트는 UID 속성을 가집니다. 업데이트 시 동일한 UID를 가진 이벤트를 찾아 수정합니다.
- UID는 고유해야 하며, 변경하지 않습니다.
SEQUENCE 증가
- 이벤트가 수정될 때마다 SEQUENCE 값을 증가시켜 클라이언트가 최신 버전을 인식하도록 합니다.
- 예: SEQUENCE:2 → 수정 후 SEQUENCE:3
DTSTAMP 갱신
- 이벤트가 업데이트된 시각을 DTSTAMP에 기록합니다.
- 클라이언트는 이 값을 보고 최신 여부를 판단합니다.
일정삭제 UID, SEQUENCE DTSTAMP 값을 조회해서 일정을 찾아 삭제
gateway-api는 iCal 기반 캘린더 서버 (smatermail) 에서 전체 일정 데이터를 주기적으로 가져옵니다,
일정 추가, 변경,삭제, 동기화 등의 이벤트발생시 UID·SEQUENCE·DTSTAMP를 기준으로 변경된 이벤트만 추려서 DB에 반영하는 구조로 변경합니다.
