generate_weekly_review
Generate weekly work reports and retrospectives for Notion, summarizing completed tasks, ongoing work, and created notes to track productivity and progress.
Instructions
生成工作周报/复盘,默认为本周,week_offset=-1 为上周。
Args: week_offset: 0 = 本周,-1 = 上周,以此类推
Returns: WeeklyReview 字典,包含完成任务、进行中任务、创建笔记数和总结
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| week_offset | No |
Implementation Reference
- tools/aggregations.py:80-115 (handler)The core handler function that generates the weekly review report.
def generate_weekly_review(week_offset: int = 0) -> dict: """ 生成工作周报/复盘,默认为本周,week_offset=-1 为上周。 Args: week_offset: 0 = 本周,-1 = 上周,以此类推 Returns: WeeklyReview 字典,包含完成任务、进行中任务、创建笔记数和总结 """ client = get_client() now = datetime.now(timezone.utc) # Calculate week boundaries (Monday to Sunday) monday = now - timedelta(days=now.weekday()) + timedelta(weeks=week_offset) monday = monday.replace(hour=0, minute=0, second=0, microsecond=0) sunday = monday + timedelta(days=6, hours=23, minutes=59, seconds=59) year, week_num, _ = monday.isocalendar() week_label = f"{year}-W{week_num:02d}" # Completed tasks this week done_tasks = client.list_tasks(status=TaskStatus.DONE, limit=100) weekly_done = [ t for t in done_tasks if t.created_time and monday <= t.created_time <= sunday ] # In-progress tasks in_progress = client.list_tasks(status=TaskStatus.IN_PROGRESS, limit=50) # Notes created this week notes = client.list_notes(limit=100) weekly_notes_count = sum( 1 for n in notes if n.created_time and monday <= n.created_time <= sunday - server.py:58-58 (registration)The tool registration in the MCP server.
mcp.tool(generate_weekly_review)