بنقرة واحدة
ea-time-block
Cal Newport time-block plan for today as a linked Excalidraw diagram.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Cal Newport time-block plan for today as a linked Excalidraw diagram.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Search Desktop files via gbrain; mail use joshu-mail.
Meeting-mail scheduling. Kanban ea-sched-*; Calendly fallback.
Find/search mail; local cache first, deep server Gmail.
jMail desktop UI workflows — compose drafts, thread navigation, voice fast paths.
Daily handoff — prep yesterday carryover, interactive morning review, finalize today's time block.
Triage mail to Projects. Not drips—use ea-project-kanban.
| name | ea-time-block |
| description | Cal Newport time-block plan for today as a linked Excalidraw diagram. |
| metadata | {"hermes":{"category":"executive-assistant","version":"1.3.0"}} |
On demand: build today's intentional schedule as a linked Excalidraw diagram in ${JOSHU_FILES_ROOT}/Planning/.
Inspired by Cal Newport's time blocking: schedule column = hour grid with named blocks; right column = capture notes and optional numbered task groups (① → task list). Replan when disrupted — rerun this skill to refresh the diagram.
GTD / linking context: docs/executive-assistant.md#gtd-workspace
carryover[]skill_view('excalidraw') for JSON envelope rules (container-bound labels)${JOSHU_FILES_ROOT} with connectors/calendar/ mirrors, Projects/, and optionally Planning/capture-YYYY-MM-DD.md/opt/joshu/scripts/gather-time-block-input.mjs and /opt/joshu/scripts/render-time-block-excalidraw.mjs on VPS (Joshu sandbox image; not scripts/… relative to Desktop — Hermes terminal.cwd is the ArozOS Desktop folder)npm run time-block:gather and scripts/render-time-block-excalidraw.mjsskill_view('ea-time-block') — this filegetOwnerTimeAnchor). Output file: Planning/time-block-YYYY-MM-DD.excalidrawnode /opt/joshu/scripts/gather-time-block-input.mjs \
--date YYYY-MM-DD \
--files-root "${JOSHU_FILES_ROOT}" \
-o "${JOSHU_FILES_ROOT}/Planning/.time-block-plan-YYYY-MM-DD.json"
Local dev (repo root): npm run time-block:gather -- --stdout or -o …
The script pre-fills blocks[] with today's meeting blocks (live calendar API when Joshu is up, else mirror scan), workHours expanded to cover meetings, yesterdayPlan, _gather.activeProjects, _gather.recentJournals, and _gather.planningFiles paths. See references/calendar-api-quirks.md.
Do not glob mirror filenames by calendar date — mirrors are named by event UUID. Prefer google_calendar_list_events (Composio MCP) or Joshu GET /joshu/api/connectors/calendar/google/events?date=&timezone= when the gather script is unavailable.
Planning/daily-review-YYYY-MM-DD.md — carryover checkboxes (after morning review).time-block-plan-*.json if daily-review missingPlanning/capture-YYYY-MM-DD.md — open Tasks/Ideas bullets_gather.activeProjects → deep/shallow blocks with Projects/<slug>/about.md links_gather.recentJournals for context onlygbrain for "today priority"ea-playbook owns filing_gather before render (renderer ignores extra keys)${JOSHU_FILES_ROOT}/Planning/.time-block-plan-YYYY-MM-DD.json:{
"date": "2026-06-18",
"title": "Time block — Wed Jun 18",
"yesterdayPlan": { "date": "2026-06-17", "path": "Planning/time-block-2026-06-17.excalidraw", "label": "Jun 17" },
"carryover": [
{ "text": "Finish investor reply batch", "link": { "path": "Projects/foo/todo.md" }, "done": false }
],
"workHours": { "start": "09:00", "end": "17:00" },
"taskGroups": [
{
"ref": "1",
"label": "①",
"items": [
{ "text": "task #1", "link": { "path": "Projects/foo/todo.md" } },
{ "text": "task #2", "link": null }
]
}
],
"blocks": [
{
"start": "09:00",
"end": "10:30",
"label": "Deep work — Joshu EA",
"kind": "deep_work",
"link": { "path": "Projects/joshu-product-development/about.md" }
},
{
"start": "14:00",
"end": "15:00",
"label": "Tasks ①",
"kind": "shallow",
"blockRef": "1",
"link": { "path": "Projects/joshu-product-development/todo.md" }
}
],
"notes": ["Shutdown ritual 5pm", "buy food (from capture)"],
"noteLinks": [null, { "path": "Planning/capture-2026-06-18.md" }]
}
Block kinds: meeting | deep_work | shallow | personal | break | buffer
taskGroups + blockRef: Cal Newport numbered lists — block label may include ①; blockRef matches taskGroups[].ref. Renderer draws the group in the notes column.
yesterdayPlan + carryover: After morning review, set yesterdayPlan.path to yesterday's .excalidraw; populate carryover[] from unchecked items in daily-review (see ea-morning-review). Renderer shows a yesterday link under the title and a From yesterday ☐ list in the notes column.
Rules:
shallow block or a taskGroups batchkind: meeting with link to the event mirror .mdkind: deep_work → Projects/<slug>/about.md or todo.mdkind: shallow → mail thread or inbox project todo.mdnotes[] with noteLinks → Planning/capture-*.mdcarryover[] before task groups; schedule deep/shallow blocks for themlink when a canonical target exists (joshu:// path from files root)scripts/… fails from Desktop cwd):node /opt/joshu/scripts/render-time-block-excalidraw.mjs \
"${JOSHU_FILES_ROOT}/Planning/.time-block-plan-YYYY-MM-DD.json" \
-o "${JOSHU_FILES_ROOT}/Planning/time-block-YYYY-MM-DD.excalidraw"
Local dev (repo root): node scripts/render-time-block-excalidraw.mjs plan.json -o …
Planning/time-block-YYYY-MM-DD.excalidraw in jWhiteboard (double-click from Files). Block links use joshu:// paths to threads, projects, calendar events, and capture files.See references/link-targets.md. Renderer emits joshu://<path-from-files-root> on each block.
references/cal-newport-layout.md — grid layout, replanning, shutdown note, task groups, carryoverreferences/link-targets.md — per-block link mappingreferences/calendar-api-quirks.md — live calendar vs mirrors, FreeBusy calendar IDsitems omitted by default (2026-06-24) — Joshu queries primary + personal Gmail; use calendars.combined.free for scheduling. See calendar-api-quirks.md.Projects/*/journal_YYYY-MM-DD.md and Projects/_system/journal_*.md (not repo-root journals).connectors/mail/… paths only