Generate today.md, this-week.md, and next-week.md files
Generates daily and weekly task overview files from Google Tasks, integrates calendar events, and supports Spanish formatting.
When to use
Use this when you need to organize and view your tasks for today, this week, and next week with calendar context.
How to invoke
manual via /today, auto-invoked when relevant
npx claudepluginhub hormigo69/brain2Generate today.md, this-week.md, and next-week.md files from Google Tasks with calendar integration.
Source of truth: Google Tasks (migrated feb 2026). Do NOT use Python scripts or local .md task files.
IMPORTANT: Use date command to get today's date. Never calculate day-of-week mentally.
Run date "+%Y-%m-%d %A %u" to get today's date, day name, and day-of-week number (1=Monday).
Then fetch tasks from Google Tasks. Make 4 PARALLEL calls to mcp__google_workspace__list_tasks:
task_list_id: "Wk1leGlhdy1kdm1kSVRuaA", show_completed: falsetask_list_id: "elpCaENDeGxBQ21xN3BUMQ", show_completed: falsetask_list_id: "VklQWXBOSl9FeDRRZzRHUw", show_completed: falsetask_list_id: "UUMwNExCdFd3N0o0bE9kWA", show_completed: falseUsing today's date from Step 1:
due < todayUse date commands to calculate the exact dates. Example:
# End of this week (Sunday)
date -v+sunday -j "+%Y-%m-%d"
# Next Monday
date -v+monday -j -v+1w "+%Y-%m-%d"
# Next Sunday
date -v+sunday -j -v+1w "+%Y-%m-%d"
Read config from ~/.claude/task-management-config/config.yaml to get paths.tasks_root.
Process ALL fetched tasks and classify them by due date:
Area mapping:
Project extraction: Extract from [Proyecto] prefix in title
[Babe] Revisar presupuesto → project "Babe", task "Revisar presupuesto"Escribir artículo LinkedIn → no project, task as-isBlocked status: If notes contain #esperando, show as (espera: REASON) where REASON is text after #esperando on same line, or just (espera) if no reason given
Overdue: If due < today → append (atrasada Xd) where X = days overdue
Sort order within each project/category: Actionable tasks first, then blocked (#esperando) tasks last
Write to {tasks_root}/today.md:
---
date: YYYY-MM-DD
---
# Hoy - [Día en español], DD de [mes en español]
## Trabajo
### [Proyecto]
- [ ] Tarea actionable
- [ ] Tarea bloqueada (espera: razón)
### [Otro proyecto]
- [ ] Otra tarea
## Personal
### [Categoría]
- [ ] Tarea personal
## Atrasadas
### [Proyecto]
- [ ] Tarea atrasada (atrasada 3d)
Rules for today.md:
due = today (grouped by area then project)due < today) in a separate "## Atrasadas" section at the endWrite to {tasks_root}/this-week.md:
---
week_start: YYYY-MM-DD
week_end: YYYY-MM-DD
---
# Esta semana - Semana del DD al DD de [mes]
## Atrasadas
- [ ] [Proyecto] Tarea (atrasada Xd)
## [Día], DD de [mes]
- [ ] [Proyecto] Tarea
- [ ] Otra tarea (espera: algo)
Rules for this-week.md:
[Proyecto] prefix in the title(espera: razón) suffixNo hay tareas para el resto de la semana.Write to {tasks_root}/next-week.md:
---
week_start: YYYY-MM-DD
week_end: YYYY-MM-DD
---
# Próxima semana - Semana del DD al DD de [mes]
## [Día], DD de [mes]
- [ ] [Proyecto] Tarea
Rules for next-week.md:
No hay tareas para la próxima semana.Read config from ~/.claude/task-management-config/config.yaml to get:
calendar.enabled (boolean)calendar.google_email (string)If calendar.enabled is true, you MUST complete these steps:
Use the Google Calendar MCP tool mcp__google_workspace__get_events with:
user_google_email: value from calendar.google_emailtime_min = today start, time_max = tomorrow starttime_min = tomorrow start, time_max = end of week + 1 daytime_min = next week start, time_max = next week end + 1 dayFor each event, format as:
- 📌 Event name- HH:MM-HH:MM - Event nameSort events by start time within each day.
IMMEDIATELY after the # Hoy - ... header line, insert:
## Calendario
- 08:00-10:00 - Event 1
- 14:00-15:00 - Event 2
Use the Edit tool to insert after the header line.
For EACH day section that has events, transform:
## Lunes, 26 de enero
- [ ] [Proyecto] Tarea
Into:
## Lunes, 26 de enero
### Calendario
- 09:00-10:00 - Event 1
### Tareas
- [ ] [Proyecto] Tarea
IMPORTANT:
### Calendario if there are events for that day### Tareas header before the task list when adding calendarAfter inserting calendar, read each file to verify:
## Calendario section### Calendario for days with events### Calendario for days with eventsIf any verification fails, fix it before completing.
Only if integrations.research_system is true in config.yaml:
/research-system:generate-research-digestDays: lunes, martes, miércoles, jueves, viernes, sábado, domingo Months: enero, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre, octubre, noviembre, diciembre
---
date: 2026-02-10
---
# Hoy - Martes, 10 de febrero
## Calendario
- 📌 Recordatorio importante
- 09:00-10:00 - Weekly team sync
- 14:00-15:00 - Client meeting
## Trabajo
### Babe
- [ ] Revisar presupuesto RFID
- [ ] Preparar presentación (espera: datos de Marta)
### Ventas
- [ ] Identificar empresas Valencia
## Personal
### Admin
- [ ] Renovar seguro coche
## Atrasadas
### Tolsa
- [ ] Enviar factura (atrasada 3d)
---
week_start: 2026-02-11
week_end: 2026-02-15
---
# Esta semana - Semana del 11 al 15 de febrero
## Atrasadas
- [ ] [Tolsa] Enviar factura (atrasada 3d)
## Miércoles, 11 de febrero
### Calendario
- 10:00-11:00 - Sprint planning
### Tareas
- [ ] [Babe] Cerrar requisitos fase 2
## Viernes, 13 de febrero
- [ ] [Personal] Comprar billete tren
---
week_start: 2026-02-16
week_end: 2026-02-22
---
# Próxima semana - Semana del 16 al 22 de febrero
## Lunes, 16 de febrero
### Calendario
- 09:00-10:00 - Quarterly planning kickoff
### Tareas
- [ ] [Babe] Entregar diseño final
## Miércoles, 18 de febrero
- [ ] [Ventas] Presentación interna