제품명: Smart Schedule & Task Auto-Register
현재 버전: v2.3.0 (Apps Script 기반 Gmail Add-on) → 목표 버전: v3.0
작성일: 2026-07-06 | 작성 근거: 브레인스토밍, v2.3 소스코드 분석, 2026-07 기준 LLM/API 기술 검증
Gmail 이메일에서 AI로 일정/작업 정보를 추출해 Google Calendar와 Google Tasks에 자동 등록하는 Gmail Add-on(Apps Script)의 고도화. 실사용 중 발견된 문제(참석자 초대 사고, 시간대 오류, 제목/본문 품질)를 해결하고 2026년 최신 LLM 라인업을 반영한다.
한국에서 온 회의 초대 메일을 보스턴에서 열람 → "일정/작업 추출" 클릭 → KST 시간이 내 시간대(EDT)로 자동 변환된 일정 카드 확인 → 참석자 초대 없이 내 캘린더에만 등록 → Zoom URL이 '장소'에, 구조화된 요약과 Gmail 원문 링크가 본문에 포함됨.
| 영역 | 현황 |
|---|---|
| 아키텍처 | Apps Script Gmail Add-on (CardService), Advanced Services: Calendar v3, Gmail v1, Tasks v1, Drive v2 (이미 활성화) |
| 멀티 LLM | OpenAI / Gemini(native endpoint) / Claude 3사 지원, API 키 암호화 저장 |
| 이미지 | 인라인 이미지만 Vision 모델에 전달 |
| 캘린더 | 다중 캘린더 자동 매칭(도메인/키워드/AI/패턴 학습), 충돌 감지 |
| Tasks | Tasks API insert + 실패 시 캘린더 리마인더 폴백, 우선순위 이모지 |
| ID | 문제 | 위치 |
|---|---|---|
| BUG-01 | 참석자 자동 게스트 추가: guests + sendInvites:false로 생성 → 초대 메일은 억제되나 참석자 캘린더에 일정이 노출됨. "모든 사람에게 등록되는" 문제의 원인 | CalendarTasks.createCalendarEvent |
| BUG-02 | 시간대 고정: appsscript.json이 Asia/Seoul 고정 + naive datetime 파싱 → 해외 체류 시 시간 오류 | appsscript.json, Helpers |
| BUG-03 | 일반 첨부 이미지 미분석: attachments[]에 수집만 하고 LLM 호출 시 inlineImages만 전달 | AllIntegration |
| BUG-04 | 존재하지 않는 기본 모델 참조: 폴백 기본값 gpt-5, gemini-2.5-flash, claude-4-sonnet이 AI_MODELS에 없음 | AllIntegration |
| BUG-05 | Tasks 마감일 하루 밀림: due를 UTC 자정으로 저장 → 미주 시간대에서 하루 어긋남 | CalendarTasks.createTask |
| BUG-06 | 중복 코드: getModelDisplayName 2곳 정의, AllIntegration.gs = helper.gs 동일 파일 | 전역 |
| BUG-07 | 위험한 메시지 폴백: 메시지 ID 없으면 받은편지함 최신 메일을 임의 분석 | Code.getCurrentMessageId |
| BUG-08 | 모델 카탈로그가 2024~25년 기준으로 구식 | AI_MODELS |