| name | morgen |
| description | This skill should be used when the user asks to "check tasks", "list tasks", "create task", "complete task", "schedule task on calendar", "check calendar", "list events", "create event", "find free time", "check availability", "ask ai about calendar", "ask ai about tasks", or needs to interact with Morgen calendar and task management. |
| allowed-tools | Bash(morgen:*) |
Morgen Calendar & Task Management
CLI for Morgen calendar and task management. Manage tasks, calendars, events, and chat with an AI assistant — all from the terminal.
Install
bun install
bun build src/cli.ts --compile --outfile morgen
Auth
Two auth modes:
- API key (basic): Set
MORGEN_API_KEY from platform.morgen.so
- Session token (full access): Run
morgen auth with the Morgen desktop app open:
/Applications/Morgen.app/Contents/MacOS/Morgen --remote-debugging-port=9223
morgen auth
Session auth enables close/reopen on integration tasks (Google Tasks, MS To Do) and AI chat.
Container / Remote CDP
When running inside a Docker container, set CDP_HOST to reach the host:
export CDP_HOST=host.docker.internal
morgen auth
Container must be started with --add-host=host.docker.internal:host-gateway.
Commands
Tasks
morgen tasks
morgen tasks --all
morgen tasks --account <id>
morgen tasks get <id>
morgen tasks create --title "Do X"
morgen tasks update <id> --title "Y"
morgen tasks close <id>
morgen tasks reopen <id>
morgen tasks delete <id>
morgen tasks move <id> --after <id>
morgen tasks schedule <id> --start 2026-02-10T10:00:00
Options: --title, --description, --due, --duration, --priority (1-9), --tags, --list, --calendar-id
tasks schedule creates a linked task-event on the calendar. The task shows as scheduled in Morgen and can be completed directly from the calendar.
Calendar
morgen calendar
morgen calendar events
morgen calendar events --start 2026-02-10 --end 2026-02-11
morgen calendar create --title "Meeting" --start 2026-02-10T14:00:00 --end 2026-02-10T15:00:00
morgen calendar update <event-id> --title "New Title"
morgen calendar delete <event-id>
morgen calendar free --start 2026-02-10T09:00:00 --end 2026-02-10T17:00:00
Options: --calendar-id, --start, --end, --timezone, --location, --attendees, --all-day, --min-minutes
AI Chat
morgen chat "What's on my calendar today?"
morgen chat "Create a task to review the PR"
morgen chat "Find me 2 free hours this week"
The AI assistant has access to calendar and task tools — it can read events, create/update/delete events, list/create/update/close/reopen/delete tasks, and schedule tasks on the calendar with proper task linkage.
Calendar filtering for availability queries:
morgen chat "find free time" --calendars Work,Personal
morgen chat "am I free Friday?" --exclude-calendars Family,Holidays
morgen chat "schedule focus time" --only-primary
Other
morgen accounts
morgen auth
morgen --json <any command>
morgen --help
Output Formats
morgen tasks --all
morgen tasks --all --json
morgen tasks --all --ndjson
Auto-detection: When stdout is piped (not a TTY), the CLI auto-defaults to NDJSON. To force human-readable output in scripts, pipe through cat or use --json and parse.
Closing Integration Tasks (Google Tasks, MS To Do)
Integration task IDs are base64-encoded JSON strings (very long). To close one:
TASK_ID=$(morgen tasks --all --json | python3 -c "
import sys, json
tasks = json.load(sys.stdin)
for t in tasks:
if 'keyword' in t.get('title','').lower() and t['progress'] != 'completed':
print(t['id'])
break
")
morgen tasks close "$TASK_ID"
The id field is the only identifier tasks close accepts. Do NOT use legacyId.
Common Workflows
Task Management
morgen tasks create --title "Review PR" --due 2026-02-12
morgen tasks schedule <task-id> --start 2026-02-11T14:00:00
morgen tasks close <task-id>
morgen tasks --all
Calendar Management
morgen calendar events
morgen calendar free --start 2026-02-10T09:00:00 --end 2026-02-10T17:00:00
morgen calendar create --title "Team Sync" --start 2026-02-10T15:00:00 --end 2026-02-10T16:00:00
AI Assistant
morgen chat "What's my schedule tomorrow?"
morgen chat "Do I have time for a 2-hour meeting this week?"
morgen chat "Create a task to finish the report by Friday"
morgen chat "Am I free Thursday afternoon?" --calendars Work
morgen chat "Find 3 hours of focus time" --exclude-calendars Personal,Family
Development
bun install
bun test
bun run src/cli.ts <command>