wishket-deadlinelisted
Install: claude install-skill epicsagas/wishket-radar
# wishket-deadline — Register Project Deadlines to Calendar
## Flow
```mermaid
flowchart LR
A[Project / Application Item] --> B[Extract deadline, title, URL]
B --> C[Generate .ics]
C --> D[Open to import]
D --> E{Direct addition requested?}
E -- Yes --> F[Execute osascript]
```
## Step 1: Extract Information
- For project ID/URL, fetch deadline and title via `get_project`.
- For pipeline entries in `state.db` (via `wishket-pipeline`), use `deadline`, `title`, and `url` fields.
- If specific time is absent, create an all-day event.
- If the deadline has already passed, notify the user without creating an event.
## Step 2: Generate .ics (Default Path)
Write to `~/.wishket-radar/deadlines/<id>.ics` (create directory if missing). Compatible with macOS Calendar and Google Calendar:
```bash
printf '%s\r\n' \
"BEGIN:VCALENDAR" \
"VERSION:2.0" \
"PRODID:-//wishket-radar//deadline//KO" \
"CALSCALE:GREGORIAN" \
"BEGIN:VEVENT" \
"UID:wishket-<id>@wishket-radar" \
"DTSTAMP:$(date -u +%Y%m%dT%H%M%SZ)" \
"DTSTART;VALUE=DATE:YYYYMMDD" \
"DTEND;VALUE=DATE:YYYYMMDD" \
"SUMMARY:[위시켓 마감] <Title>" \
"DESCRIPTION:<Project URL>" \
"BEGIN:VALARM" \
"TRIGGER:-P1D" \
"ACTION:DISPLAY" \
"DESCRIPTION:마감 1일 전" \
"END:VALARM" \
"END:VEVENT" \
"END:VCALENDAR" \
> ~/.wishket-radar/deadlines/<id>.ics
```
### Formatting Rules:
- RFC 5545 compliant: CRLF line endings, `DTEND` as day after deadline for all-day events (exclusive end).
- Fixed UID