Files

61 lines
1.6 KiB
Bash

#!/bin/bash
# Kakao Calendar 일정 추가 스크립트
set -e
# 환경변수 체크
if [ -z "$KAKAO_ACCESS_TOKEN" ]; then
echo "❌ KAKAO_ACCESS_TOKEN 환경변수가 필요합니다."
exit 1
fi
# 파라미터
TITLE="$1"
START_AT="$2" # UTC format: 2026-02-11T00:00:00Z
END_AT="$3" # UTC format: 2026-02-11T23:59:59Z
ALL_DAY="${4:-true}"
DESCRIPTION="${5:-}"
if [ -z "$TITLE" ] || [ -z "$START_AT" ] || [ -z "$END_AT" ]; then
echo "❌ 사용법: $0 <제목> <시작시각(UTC)> <종료시각(UTC)> [all_day] [설명]"
echo "예시: $0 '합동생일' '2026-02-11T00:00:00Z' '2026-02-11T23:59:59Z' true"
exit 1
fi
# JSON 생성
EVENT_JSON=$(cat << EOF
{
"title": "$TITLE",
"time": {
"start_at": "$START_AT",
"end_at": "$END_AT",
"time_zone": "Asia/Seoul",
"all_day": $ALL_DAY,
"lunar": false
}$([ -n "$DESCRIPTION" ] && echo ",
\"description\": \"$DESCRIPTION\"" || echo "")
}
EOF
)
# API 호출
RESPONSE=$(curl -s -X POST "https://kapi.kakao.com/v2/api/calendar/create/event" \
-H "Authorization: Bearer $KAKAO_ACCESS_TOKEN" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "calendar_id=primary" \
--data-urlencode "event=$EVENT_JSON")
# 결과 확인
if echo "$RESPONSE" | jq -e '.event_id' > /dev/null 2>&1; then
EVENT_ID=$(echo "$RESPONSE" | jq -r '.event_id')
echo "✅ 일정 추가 완료"
echo "제목: $TITLE"
echo "시작: $START_AT"
echo "종료: $END_AT"
echo "ID: $EVENT_ID"
else
echo "❌ 일정 추가 실패"
echo "$RESPONSE" | jq '.'
exit 1
fi