날짜 / 위치 / 알림
날짜 (due_date + due_time)
자연어 인식
create_task 의 content 안에 시간 표현 → 자동 파싱:
| 입력 | 파싱 결과 (한국 기준 2026-05-07 목요일) |
|---|---|
| "내일 오전 10시" | due_date: "2026-05-08T10:00:00+09:00" |
| "다음주 화요일" | due_date: "2026-05-12" (시간 없음 → is_all_day 가능) |
| "오늘 저녁 7시" | due_date: "2026-05-07T19:00:00+09:00" |
| "5월 20일 3시" | due_date: "2026-05-20T15:00:00+09:00" |
| "30분 후" | due_date = now + 30 min |
명시적 ISO 8601 도 가능:
json
{ "content": "회의", "due_date": "2026-05-08T10:00:00+09:00" }due_date + due_time 분리
due_date 가 시간 없을 때 due_time 만 따로:
json
{ "content": "회의", "due_date": "2026-05-08", "due_time": "10:00" }종일 일정
json
{ "content": "휴가", "due_date": "2026-05-08", "is_all_day": true }다일 이벤트
json
{
"content": "출장",
"start_date": "2026-05-08",
"due_date": "2026-05-10",
"is_all_day": true
}위치 (location + GPS)
사람용 텍스트
json
{ "content": "강남역 미팅", "location": "강남역 3번 출구 스타벅스" }표시할 때 그대로 노출. list_tasks 의 location 필터에서 부분 일치 검색.
GPS 좌표
json
{
"content": "스벅",
"location": "Starbucks Gangnam",
"location_lat": 37.4979,
"location_lng": 127.0276
}iOS/Android 앱에서 지도 표시 가능.
이동시간 (travel_time)
마감 시각 N분 전 이동 시간 확보 (알림 스케줄링 영향):
json
{
"content": "강남역 미팅",
"due_date": "2026-05-08T10:00:00+09:00",
"travel_time": 30,
"notification_minutes_before": 60
}→ 마감 60분 전 알림 + 30분 전엔 "이동 시간" 표시.
알림 (notification_minutes_before)
기본
json
{
"content": "회의",
"due_date": "2026-05-08T10:00:00+09:00",
"notification_minutes_before": 30
}→ 09:30 에 푸시 (FCM/APNs/Telegram/Web Push 모두).
알림 제거 (update 시)
json
{ "id": "uuid", "notification_minutes_before": null }null 명시적 전달 → 기존 MCP reminder 제거.
다중 채널 / 다중 시점
현재 MCP 도구는 단일 알림만 (notification_minutes_before). 다중 알림은 웹 UI 또는 update_task 후 다시 push.
반복 (repeat_rule)
단순 패턴
json
{
"content": "주간 회고",
"due_date": "2026-05-10T14:00:00+09:00",
"repeat_rule": "weekly"
}값: daily / weekly / monthly / yearly.
RRULE (iCalendar)
json
{ "repeat_rule": "FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20261231T235959Z" }서버가 부분 지원. 자세한 spec 은 RFC 5545.
인스턴스 vs 마스터
반복 설정 task 는 "마스터". 표시되는 건 recurring_instances:
- 마스터 수정 → 모든 미래 인스턴스 영향
- 단일 인스턴스 수정 → 그것만 (예외)
우선순위 (is_important)
true 면 별표 + 모든 list 에서 우선 정렬.
json
{ "content": "긴급 패치", "is_important": true }