Skip to content

일정 빠른 추가 (QuickAdd)

QuickAdd는 일정을 신속하게 추가하거나 편집하기 위한 가벼운 팝업 창입니다. 메인 윈도우와 독립된 별도 윈도우로 열려 다른 작업을 방해하지 않으면서, 제목·날짜·시간·캘린더·알림·음력 등 일정의 모든 핵심 항목을 한 화면에 채울 수 있도록 설계되어 있습니다.

요약

  • 팝업 한 장으로 일정 작성/편집을 끝낼 수 있습니다.
  • 종일 토글, 종료 시간 토글, 음력 토글이 독립적으로 작동합니다.
  • 알림은 한 일정에 최대 5개까지 추가할 수 있고, 각 알림마다 소리/팝업 옵션을 따로 지정합니다.
  • 외부 캘린더(Google·Microsoft·Naver 등)에 저장된 일정을 편집하면 저장 직후 해당 제공자로 동기화됩니다.

캘린더 위젯

캘린더 위젯의 빈 날짜 셀을 더블클릭하면 해당 날짜로 미리 채워진 QuickAdd가 열립니다.

이벤트 편집

캘린더의 일정 항목을 더블클릭하면 편집 모드로 QuickAdd가 열립니다 (mode=edit&eventId=...&calendarId=...).

이벤트 목록

데일리/월간 이벤트 목록 팝업의 + 새 일정 버튼으로 추가합니다.

트레이/단축 메뉴

트레이 아이콘 메뉴 또는 즐겨찾기/빠른 접근 위젯에서 일정 추가 액션을 호출합니다.

QuickAdd — 빠른 일정 추가 팝업
QuickAdd — 일정 제목 · 종일/종료시간/음력 토글 · 시작 일시 · 캘린더 선택 · 설명 · 장소 · 알림 · 저장

QuickAdd는 위에서 아래로 다음 영역이 순서대로 배치됩니다.

  1. 헤더 - 제목(일정 추가 또는 일정 편집)과 닫기 버튼
  2. 제목 입력 - 일정명 (필수, 자동 포커스)
  3. 옵션 체크박스 - 종일 / 종료시간 / 음력 (3개 토글)
  4. 시작 날짜·시간 - 음력 모드일 경우 양력 변환 결과가 그 아래 작은 글씨로 표시
  5. 종료 날짜·시간 - 종료시간 토글이 켜졌을 때만 표시
  6. 캘린더 드롭다운 - 로컬 + 연결된 외부 캘린더 그룹별 표시
  7. 설명 / 위치 - 자유 텍스트
  8. 알림 영역 - 최대 5개까지 알림 행 추가
  9. 푸터 - 취소 / 저장 버튼
필드필수비고
제목비워두면 브라우저 검증으로 차단됩니다
시작 날짜기본값은 오늘 또는 호출 시 전달된 날짜
시작 시간⛔️ 종일 ON 시 비활성HH:MM
종료 날짜·시간종료시간 ON 시 표시시작과 같은 날짜로 자동 채워짐

저장 시 폼 유효성 검사(form.checkValidity())가 실패하면 브라우저가 해당 필드 위로 메시지를 표시합니다.

종일 토글을 켜면 시작/종료 시간 입력이 흐려지면서 비활성화되고, 저장 시 is_all_day=1, time=null로 기록됩니다. 종일을 해제하면 현재 시각이 시작 시간 기본값으로 다시 들어갑니다.

음력 체크박스를 켜면 시작/종료 날짜 입력 칸이 음력을 의미하게 됩니다. 입력한 날짜를 즉시 양력으로 변환해 입력란 아래에 양력: 2026-04-27 형태로 안내하며, 변환은 메인 프로세스의 lunar:toSolar IPC가 담당합니다(src/main/utils/lunarCalendar.js - 1900~2100년 지원).

저장 시 음력 일정은 is_lunar=1, lunar_date=YYYY-MM-DD로 원본을 보존하고, date 컬럼에는 변환된 양력 날짜가 들어갑니다. 따라서 매년 같은 음력 일자에 일정을 자동으로 표시할 수 있습니다.

캘린더 드롭다운은 제공자별로 그룹화되어 표시됩니다.

그룹설명
로컬앱 내부 SQLite에 저장되는 기본 캘린더
Google로그인된 Google 계정의 캘린더 목록
MicrosoftOutlook/Live/Microsoft 365 캘린더
NaverCalDAV로 연동된 네이버 캘린더
Kakao지원 예정 톡캘린더

각 항목 앞에는 캘린더 색상 점이 표시되며, 선택 시 점 색상과 이름이 헤더에 반영됩니다. 외부 캘린더가 하나도 연결되지 않은 경우에는 기본 캘린더(local-default) 단일 항목만 노출됩니다.

알림 추가 버튼을 누르면 알림 행이 한 줄씩 추가됩니다(최대 5개).

  1. 소리 토글(🔔/🔕) - 알림음 ON/OFF
  2. 팝업 토글(🖥️) - 활성화 시 시스템 토스트 대신 메인 모니터 중앙에 알림 팝업 윈도우 표시
  3. 시점 선택 - 10분 / 30분 / 1시간 / 1일 전 프리셋 또는 사용자 설정
  4. 사용자 설정 모드 - “N일 전 + HH:MM” 형식으로 직접 입력 (예: 3일 전 09:00)
  5. 삭제(✕) - 해당 알림 행 제거

저장되는 데이터 형식은 두 가지입니다.

// 프리셋
{ "type": "notification", "minutes": 10, "sound": true, "popup": false }
// 사용자 설정
{ "type": "notification", "days": 3, "time": "09:00", "sound": true, "popup": true }
  1. 폼 유효성 검사 통과
  2. 음력 일정인 경우 양력으로 변환
  3. SQLite의 events 테이블에 행 삽입/갱신
  4. 외부 캘린더 항목이면 백그라운드로 해당 제공자의 SyncEngine에 push
  5. 부모 윈도우에 eventAdded 메시지를 보내 캘린더/위젯이 즉시 다시 그려지도록 알림
  6. 팝업 자동 종료

저장에 실패하면 한국어 오류 메시지(일정 저장 중 오류가 발생했습니다.)가 모달로 표시되며, 이때 팝업은 닫히지 않으므로 입력값을 잃지 않고 다시 시도할 수 있습니다.

mode=edit으로 호출되면 헤더 제목이 일정 편집으로 바뀌고, 기존 일정의 모든 필드가 자동으로 채워집니다.

  • Google 일정의 시간 형식(오후 02:30, 02:30 PM)은 자동으로 14:30 형태로 정규화됩니다.
  • 음력 일정은 is_lunar=1이면 음력 입력란에 원본 음력 날짜가 들어갑니다.
  • 캘린더는 원래 캘린더가 선택되어 있고, 다른 캘린더로 옮기려면 드롭다운에서 변경 후 저장하면 됩니다.
  • 외부 캘린더 일정을 편집하면 저장 시 해당 제공자에 즉시 업데이트가 푸시됩니다.
동작
Tab / Shift + Tab다음/이전 입력 필드로 이동
Enter캘린더 드롭다운 열기/닫기 (포커스 시)
Space체크박스 토글
Esc팝업 닫기 (저장하지 않음)
Ctrl + Enter(브라우저 기본) 폼 제출 시도

Q. 반복 일정은 어떻게 만드나요?

현재 QuickAdd는 단일 일정 작성/편집에 집중되어 있습니다. 매주/매월 같은 시각의 알람이 필요하다면 알람 관리의 시계 알람 기능을, 매년 같은 음력 일자가 필요하다면 음력 옵션을 사용하세요.

Q. 일정을 잘못 저장했어요.

캘린더 위젯에서 해당 일정을 더블클릭하면 같은 QuickAdd 팝업이 편집 모드로 열립니다. 외부 캘린더 일정도 동일한 흐름으로 수정/삭제할 수 있고, 변경은 외부 제공자로 동기화됩니다.

Q. 알림 시간은 정확한가요?

일정 알림은 ±30초 허용 범위 안에서 트리거되며, PC가 절전 상태였더라도 복귀 후 5분 이내의 놓친 알림은 자동으로 다시 표시됩니다. 자세한 내용은 알림 문서를 참고하세요.