Files
2025-11-29 18:19:46 +08:00

5.2 KiB

You are helping create time blocks in Google Calendar from TaskNotes tasks using gcalcli.

Context

  • Calendar: 00_Schedule (main calendar only)
  • Tool: gcalcli CLI
  • TaskNotes: Tasks in ~/Obsidian/Altellus/00_Inbox/Tasks/
  • Daily notes: ~/Obsidian/Altellus/20_Notes/Journal/YYYY/Mnn/YYYY-MM-DD.md

Task

Create calendar time blocks for TaskNotes tasks to facilitate focus time and task completion.

Use Cases

1. Manual time block for specific task

/pkm:gcal-block "[[SWSP25 Problem Definition]]" 2025-11-19 14:00 120

Creates 2-hour focus block for the task.

2. Auto-schedule incomplete tasks

/pkm:gcal-block --auto

Automatically schedules incomplete tasks from today's daily note.

3. Weekly planning

/pkm:gcal-block --week

Creates time blocks for all tasks planned this week.

Steps:

Manual Time Block

  1. Parse input:

    • Task name: [[Task Name]] (TaskNotes wikilink)
    • Date: YYYY-MM-DD
    • Time: HH:MM
    • Duration: minutes (default 90)
  2. Extract task details:

    • Read task file from 00_Inbox/Tasks/Task Name.md
    • Get task title, priority, time estimate
  3. Create calendar event:

    gcalcli --calendar "00_Schedule" add \
      --title "🎯 [Task Title]" \
      --when "YYYY-MM-DD HH:MM" \
      --duration MINUTES \
      --description "TaskNotes: [[Task Name]]"
    
  4. Confirm:

    • Display: " Time block created for Task Name"

Auto-Schedule

  1. Read today's daily note:

    • Extract "오늘 이어서 할 일" section
    • Find incomplete tasks: - [ ] [[Task Name]]
  2. Check calendar availability:

    • Fetch today's events with /pkm:gcal-today
    • Find free time slots (gaps between events)
  3. Prioritize tasks:

    • High priority first (if specified in TaskNotes)
    • Larger time estimates first
    • Morning for deep work, afternoon for lighter tasks
  4. Create time blocks:

    • For each task, find suitable time slot
    • Create gcalcli event with task reference
    • Default duration: 90 minutes (pomodoro-friendly)
  5. Summary:

    **Auto-scheduled 3 tasks:**
    
    - 09:00-10:30: [[SWSP25 Problem Definition]]
    - 11:00-12:00: [[Long horizon action model paper search]]
    - 14:00-15:30: [[Claude 명령 테스트 및 디버깅]]
    
    Total focus time: 4 hours
    

Weekly Planning

  1. Read this week's tasks:

    • From weekly note or aggregated daily notes
    • Extract all incomplete tasks: - [ ] [[Task Name]]
  2. Distribute across week:

    • Monday-Friday scheduling
    • Balance workload (max 4 hours deep work/day)
    • Respect existing calendar events
  3. Create blocks:

    • Spread tasks across available time slots
    • Group similar tasks (context switching reduction)

Output Format

Single task:

**Time Block Created:**

- **Task:** [[SWSP25 Problem Definition]]
- **Time:** 2025-11-19 14:00-16:00 (2 hours)
- **Calendar:** 00_Schedule

Focus time secured! 🎯

Auto-schedule:

**Auto-scheduled 4 tasks:**

**Morning (Deep Work):**
- 09:00-10:30: [[SWSP25 Problem Definition]] 🍅🍅🍅
- 11:00-12:30: [[ELEGNT 논문 리뷰]] 🍅🍅🍅

**Afternoon:**
- 14:00-15:00: [[Documentation 업데이트]] 🍅🍅
- 15:30-16:30: [[Code Review]] 🍅🍅

**Total:** 5.5 hours focus time
**Available:** 09:00-12:30, 14:00-16:30

Smart Scheduling Logic

1. Respect existing events:

  • Don't overlap with calendar events
  • Leave buffer time (15 min) between blocks

2. Energy optimization:

  • 09:00-12:00: Deep work (complex tasks)
  • 14:00-16:00: Medium tasks
  • 16:00-18:00: Light tasks (reviews, admin)

3. Pomodoro-friendly durations:

  • 25 min = 🍅
  • 50 min = 🍅🍅
  • 90 min = 🍅🍅🍅 (ideal)
  • 120 min = 🍅🍅🍅🍅

4. Task batching:

  • Group similar tasks (reading papers, coding, writing)
  • Reduce context switching

Integration with TaskNotes

Time estimate from task:

---
timeEstimate: 120  # minutes
priority: high
---

Use task's timeEstimate for block duration.

Update task after scheduling:

---
scheduled: 2025-11-19
calendarBlock: true
---

Error Handling

If no free time:

  • Message: "No available time slots today. Calendar is full."
  • Suggest: Tomorrow or specific time

If task not found:

  • Message: "Task Task Name not found in 00_Inbox/Tasks/"
  • Verify: Task name spelling

If calendar conflict:

  • Message: "Conflict at 14:00 with: [Existing Event]"
  • Suggest: Next available slot

Advanced Features

1. Focus mode:

/pkm:gcal-block --focus 4

Create 4-hour protected deep work block (no meetings).

2. Recurring blocks:

/pkm:gcal-block "[[Weekly Review]]" --recur weekly-friday-16:00

3. Flexible timing:

/pkm:gcal-block --auto --prefer-morning

Schedule tasks in morning hours only.

Defaults

  • Duration: 90 minutes (🍅🍅🍅)
  • Buffer: 15 minutes between blocks
  • Deep work hours: 09:00-12:00
  • Event prefix: 🎯 (focus block indicator)

Notes

  • Time blocks appear in Google Calendar immediately
  • Sync across all devices
  • Can reschedule by dragging in Google Calendar
  • Task completion doesn't auto-delete block (manual cleanup)