✅ Introduction
The Agenda system in Scimax VS Code provides powerful views of your scheduled tasks, deadlines, and TODO items. It helps you stay organized by showing what needs to be done and when.
Think of the Agenda as your command center for task management - it collects tasks from all your org files and presents them in meaningful ways:
Day/Week views - See what's scheduled for specific time periods
TODO lists - Review all incomplete tasks
Deadline views - Track upcoming and overdue deadlines
Filtering - Focus on specific tags, priorities, or categories
The Agenda system works with both file-based scanning and database indexing, giving you flexibility for different workflows.
✅ What is the Agenda?
The Agenda is a dynamic view that displays TODO items, scheduled tasks, and deadlines from your org files. Unlike browsing individual files, the Agenda aggregates information across all your documents.
✅ Key Concepts
✅ Agenda Items
An agenda item is any headline with:
A TODO keyword (TODO, DONE, NEXT, WAITING, etc.)
A SCHEDULED timestamp
A DEADLINE timestamp
An active timestamp
✅ Scheduled Items
Tasks with SCHEDULED timestamps appear in the agenda on their scheduled date:
* TODO Write report
SCHEDULED: <2026-01-15 Wed>
This appears in the agenda starting January 15.
✅ Deadlines
Tasks with DEADLINE timestamps appear with warning indicators:
* TODO Submit proposal
DEADLINE: <2026-01-20 Mon>
Shows in the agenda with countdown (e.g., "in 7 days") and becomes overdue if not completed.
✅ Overdue Items
Items past their deadline appear prominently with warning indicators and show how many days overdue they are.
✅ Unscheduled TODOs
TODO items without dates can be included in agenda views to ensure nothing is forgotten.
✅ Two Agenda Systems
Scimax VS Code provides two complementary agenda implementations:
✅ Native/File-Based Agenda
Scans org files on-demand
Works immediately without indexing
Provides tree view in sidebar
Commands: scimax.agenda.*
Best for: Quick views, smaller document sets
✅ Database-Backed Agenda
Uses indexed data for fast queries
Requires indexing files first
Integrates with search and filtering
Commands: scimax.db.agenda, scimax.db.deadlines
Best for: Large document collections, complex queries
Both systems can be used together - choose based on your needs.
✅ Agenda View Modes
The agenda can display information in different time-based views.
✅ Day Agenda
Shows items for a single day.
| Command | Key Binding | Description |
|---|---|---|
| scimax.agenda.day | C-c aa | Today's agenda |
The day view displays:
Scheduled items for the day
Deadlines due today
Overdue items
Time-of-day for timed entries
Today (Wednesday, Jan 15, 2026)
──────────────────────────────
09:00 TODO [#A] Team standup :work:
14:00 TODO Client presentation :important:
TODO DEADLINE: Submit timesheet (TODAY)
TODO Review pull requests :code:
✅ Week Agenda
Shows a 7-day view starting from today.
| Command | Description | |
|---|---|---|
| scimax.agenda.week | C-c aw | Next 7 days |
Groups items by date, making it easy to plan your week:
Week Agenda (Jan 15-21, 2026) ───────────────────────────── Wednesday, Jan 15 09:00 TODO Team standup 14:00 TODO Client meeting Thursday, Jan 16 TODO Code review DEADLINE: Deploy feature (in 1 day) Friday, Jan 17 TODO Weekly review
✅ Fortnight Agenda
Shows the next 14 days.
| Command | Description |
|---|---|
| scimax.agenda.fortnight | Next 14 days |
Useful for medium-term planning and catching upcoming deadlines.
✅ Month Agenda
Shows the next 30 days.
| Command | Key Binding | Description |
|---|---|---|
| scimax.agenda.month | C-c am | Next 30 days |
Good for long-term planning and ensuring nothing falls through the cracks.
✅ Custom Time Ranges
The database-backed agenda supports custom time ranges:
; Next 2 weeks Command: scimax.db.agenda → "Next 2 weeks" ; Next month Command: scimax.db.agenda → "Next month" ; Next 3 months Command: scimax.db.agenda → "Next 3 months" ; All items (no time limit) Command: scimax.db.agenda → "All items"
✅ TODO List View
The TODO list shows all incomplete tasks regardless of date.
| Command | Key Binding | Description |
|---|---|---|
| scimax.agenda.todoList | C-c at | All TODO items (native) |
| scimax.db.showTodos | All TODO items (database) |
✅ Grouping by State
TODOs are grouped by their keyword state:
TODO List (45 items) ─────────────────── TODO (32 items) [#A] Fix critical bug :urgent: Write documentation :docs: Review code changes :review: NEXT (8 items) [#A] Implement login feature :feature: Deploy to staging :deploy: WAITING (5 items) Approval from manager :blocked: Design feedback :design:
✅ Filtering TODO List
Filter by state when viewing TODOs:
Command: scimax.db.showTodos
→ Select filter: "All TODOs", "TODO", "NEXT", "WAITING", etc.
Shows only items in the selected state.
✅ Deadline Views
Focus specifically on items with deadlines.
✅ Upcoming Deadlines
| Command | Key Bindings | Description |
|---|---|---|
| [[cmd:scimax.agenda.deadlines]] | C-c ad | Show upcoming deadlines |
| [[cmd:scimax.db.deadlines]] | Database deadline view |
Displays deadlines with time-until indicators:
Upcoming Deadlines (8 items) ──────────────────────────── ⚠ TODO Submit proposal (2 days overdue) 🔔 TODO Complete Q1 report (TODAY) 🔔 TODO Review contract (in 1 day) 🔔 TODO File taxes (in 14 days)
✅ Deadline Display
Deadlines show:
Overdue indicator (⚠) if past due
Days until/overdue count
Priority and tags
File location
✅ Warning Periods
Deadlines with warning periods appear in the agenda before they're due:
* TODO Annual review
DEADLINE: <2026-01-31 Fri -7d>
This appears 7 days early (January 24) with "in 7 days" indicator.
✅ Scheduled Item View
View all scheduled items.
| Command | Description |
|---|---|
| [[cmd:scimax.agenda.scheduled]] | All scheduled items |
Shows items with SCHEDULED timestamps:
Scheduled Items (12 items) ───────────────────────── 📅 TODO Weekly team meeting (Today, 09:00) 📅 TODO Start new project (in 2 days) 📅 TODO Monthly review (in 5 days)
✅ Repeating Items
Recurring tasks with repeater syntax appear in the agenda:
* TODO Daily standup
SCHEDULED: <2026-01-15 Wed 09:00 +1d>
* TODO Weekly review
SCHEDULED: <2026-01-19 Sun +1w>
* TODO Monthly report
DEADLINE: <2026-01-31 Fri +1m>
See Timestamps for more on repeaters.
✅ Grouping and Sorting
Agenda views can be grouped and sorted in different ways.
✅ Group By Options
✅ By Date (Default)
Groups items by their date:
Today Item 1 Item 2 Tomorrow Item 3 Item 4
✅ By Category
Groups items by their CATEGORY property or file:
Work Project A tasks Project B tasks Personal Home tasks Errands
✅ By Priority
Groups items by priority level:
Priority A [#A] Critical bug [#A] Important meeting Priority B [#B] Code review [#B] Documentation No Priority Regular tasks
✅ By TODO State
Groups items by their keyword:
TODO Task 1 Task 2 NEXT Task 3 WAITING Task 4
✅ Changing Grouping
| Command | Description |
|---|---|
| [[cmd:scimax.agenda.groupByDate]] | Group by date |
| [[cmd:scimax.agenda.groupByCategory]] | Group by category |
| [[cmd:scimax.agenda.groupByPriority]] | Group by priority |
Tree view groups update immediately.
✅ Sort Options
Items within groups are sorted by:
Time - Default, chronological order
Priority - High to low (A → B → C)
Category - Alphabetical by category
TODO state - By keyword
Tag - By first tag alphabetically
✅ Filtering
Focus the agenda on specific criteria.
✅ Filter by Tag
Show only items with a specific tag.
| Command | Description |
|---|---|
| [[cmd:scimax.agenda.filterByTag]] | Filter by tag (native) |
| [[cmd:scimax.db.searchByTag]] | Filter by tag (database) |
Workflow:
Run command
Select a tag from the list
See only items with that tag
Command: scimax.agenda.filterByTag → Select tag: "urgent" Items with :urgent: (7 items) ──────────────────────────── TODO [#A] Fix production bug :urgent:work: TODO Submit incident report :urgent:admin:
✅ Filter by Priority
Database filtering supports priority:
Query: priority:A
Shows: Only [#A] priority items
✅ Filter by TODO State
Show only specific TODO states:
Command: [[cmd:scimax.db.showTodos]]
→ Select: "NEXT"
Shows: Only NEXT items
✅ Filter by Date Range
Combine time ranges with other filters:
Command: [[cmd:scimax.db.agenda]]
→ Select: "Next 2 weeks"
Shows: Items in next 14 days only
✅ Combining Filters
Database queries support multiple filters:
Show TODOs:
- With tag :work:
- Priority A or B
- Due in next week
Use the database search commands for complex filtering.
✅ Agenda Configuration
Configure agenda behavior through VS Code settings.
✅ Agenda Sources
The agenda automatically includes files from these sources:
| Setting | Default | Description |
|---|---|---|
| scimax.agenda.includeJournal | true | Include journal directory |
| scimax.agenda.includeWorkspace | true | Include workspace folders |
| scimax.agenda.includeProjects | true | Include all scimax projects |
| scimax.agenda.include | [] | Additional directories/files |
By default, the agenda includes:
Your journal directory (from
scimax.journal.directory)All org files in your workspace folders
All scimax projects (registered via projectile)
To add additional files or directories:
Command: scimax.agenda.configure
→ Select: "Add directory to agenda"
→ Select directory to add
Or manually in settings:
{
"scimax.agenda.include": [
"/home/user/org/work.org",
"/home/user/org/personal.org",
"/home/user/projects"
]
}
To disable journal or projects in agenda:
{
"scimax.agenda.includeJournal": false,
"scimax.agenda.includeProjects": false
}
✅ Exclude Patterns
Exclude files from agenda using glob patterns or absolute paths:
| Setting | Default |
|---|---|
| scimax.agenda.exclude | ["**/node_modules/**", "**/.git/**", "**/archive/**"] |
The exclude list supports:
Glob patterns (containing
*):**/archive/**Absolute paths:
~/org/scratch.org
{
"scimax.agenda.exclude": [
"**/node_modules/**",
"**/.git/**",
"**/archive/**",
"**/drafts/**",
"~/org/scratch.org"
]
}
Use Scimax: Exclude File from Agenda command to quickly exclude the current file.
✅ Default Time Span
Set the default number of days for agenda views:
| Setting | Default | Description |
|---|---|---|
| scimax.agenda.defaultSpan | 7 | Days to show in agenda |
{
"scimax.agenda.defaultSpan": 14
}
✅ Show Done Items
Include or exclude completed items:
| Setting | Default | Description |
|---|---|---|
| scimax.agenda.showDone | false | Show DONE items in agenda |
{
"scimax.agenda.showDone": true
}
✅ Show Habits
Control display of recurring habit tasks:
| Setting | Default | Description |
|---|---|---|
| scimax.agenda.showHabits | true | Show habit items in agenda |
✅ States
Define which TODO keywords to include:
| Setting | Default |
|---|---|
| scimax.agenda.todoStates | [TODO, NEXT, WAITING] |
| scimax.agenda.doneStates | [DONE, CANCELLED] |
{
"scimax.agenda.todoStates": [
"TODO",
"NEXT",
"IN-PROGRESS",
"WAITING",
"REVIEW"
],
"scimax.agenda.doneStates": [
"DONE",
"CANCELLED",
"REJECTED"
]
}
✅ Database Integration
The database-backed agenda provides additional capabilities.
✅ Database Agenda Features
The database agenda (scimax.db.agenda) offers:
Fast queries - Indexed data for instant results
Complex filtering - Search by property, tag, etc.
Semantic search - Find items by meaning
Hybrid views - Combine agenda with search
✅ Indexing for Agenda
Before using database agenda, index your files:
| Command | Description |
|---|---|
| [[cmd:scimax.db.reindex]] | Index all org files |
The database automatically tracks changes, but manual reindex ensures everything is current.
✅ Database Agenda Commands
| Command | Description |
|---|---|
| scimax.db.agenda | Time-based agenda view |
| scimax.db.deadlines | Upcoming deadlines |
| scimax.db.showTodos | All TODO items |
| scimax.db.searchByTag | Items with specific tag |
✅ Search Scope
Limit agenda queries to specific directories:
| Command | Description |
|---|---|
| [[cmd:scimax.db.setScope]] | Set search scope |
Options:
All files - Search entire database
Current directory - Only files in current directory
✅ Agenda Item Data
Database agenda items include:
interface AgendaItem {
type: 'deadline' | 'scheduled' | 'todo';
heading: HeadingRecord;
date?: string;
days_until?: number;
overdue?: boolean;
}
Properties:
type - Item category
heading - Full heading info (title, tags, priority, etc.)
date - Scheduled/deadline date
daysuntil - Days until/past date (negative = overdue)
overdue - Boolean flag for past deadlines
✅ Querying Agenda
Programmatic access to agenda data:
// Get agenda items
const items = await db.getAgenda({
before: '+2w', // Next 2 weeks
includeUnscheduled: true // Include TODOs without dates
});
// Filter deadlines
const deadlines = items.filter(item => item.type === 'deadline');
// Find overdue
const overdue = items.filter(item => item.overdue);
See Database Search for more on database queries.
✅ Agenda Workflows
Practical approaches to using the agenda effectively.
✅ Morning Planning
Start your day with the day agenda:
Review today's items
Mark priorities
Identify blockers
Clock in to first task
✅ Weekly Review
Every week:
Check for overdue items
Reschedule as needed
Add new scheduled items
Review WAITING tasks
✅ Deadline Management
Stay on top of deadlines:
Run [[cmd:scimax.agenda.deadlines]] or [[cmd:scimax.db.deadlines]]
Note items due soon
Start working on items with warnings
Address overdue items immediately
Update estimates for late items
✅ Context-Based Work
Use tags to filter by context:
; At office
Command: scimax.agenda.filterByTag
→ Select: "office"
Work on office-only tasks
; Have phone available
→ Select: "phone"
Make all phone calls
; At computer
→ Select: "computer"
Handle computer-required tasks
✅ Project Review
Review project status:
Filter agenda by project tag
Check all project items
Identify NEXT action
Update completed items
Add new tasks as needed
✅ Priority Triage
Focus on high-priority items:
Filter or group by priority
Work through all [#A] items
Move to [#B] items
Reschedule [#C] if needed
✅ Agenda Best Practices
✅ Keep Agenda Files Organized
Structure agenda files logically:
~/org/
├── work.org ; Work tasks
├── personal.org ; Personal tasks
├── projects/ ; Project-specific files
│ ├── project-a.org
│ └── project-b.org
└── archive/ ; Archived (excluded)
Configure agenda to scan ~org and exclude archive/.
✅ Use Meaningful Categories
Set CATEGORY properties for better grouping:
#+CATEGORY: Work
* TODO Project tasks
:PROPERTIES:
:CATEGORY: ProjectA
:END:
✅ Schedule Realistically
Don't over-schedule:
; Bad - too many items
* TODO 20 tasks scheduled for Monday
; Good - realistic daily load
* TODO 3-5 priority tasks per day
✅ Use Deadlines Sparingly
Only use deadlines for true hard deadlines:
; Good - actual deadline
* TODO Submit tax return
DEADLINE: <2026-04-15 Tue>
; Bad - arbitrary deadline
* TODO Read interesting article
DEADLINE: <2026-01-20 Mon>
; Use SCHEDULED instead
✅ Regular Cleanup
Weekly maintenance:
Archive completed items
Cancel obsolete tasks
Update dates on delayed items
Remove duplicate entries
✅ Leverage Repeaters
Use repeaters for recurring items:
; Meetings
* TODO Weekly standup
SCHEDULED: <2026-01-15 Wed 09:00 +1w>
; Habits
* TODO Morning exercise
SCHEDULED: <2026-01-15 Wed ++1d>
; Maintenance
* TODO Backup files
SCHEDULED: <2026-01-15 Wed .+7d>
✅ Balance Time Spans
Use different views for different purposes:
| View | Purpose | Frequency |
| ----------- | ---------------------------------- | ---------------- |
| Day | Immediate planning | Every morning |
| Week | Short-term planning | Daily review |
| Fortnight | Medium-term awareness | Weekly review |
| Month | Long-term planning | Monthly review |
✅ Practical Examples
✅ Example: Software Developer
; work.org
* TODO [#A] Fix production bug :urgent:bug:
DEADLINE: <2026-01-15 Wed>
Critical database connection issue.
* TODO [#A] Code review for PR #234 :review:
SCHEDULED: <2026-01-15 Wed 10:00>
Review authentication changes.
* TODO [#B] Implement user settings page :feature:
SCHEDULED: <2026-01-16 Thu>
DEADLINE: <2026-01-20 Mon>
:PROPERTIES:
:EFFORT: 6:00
:END:
* TODO Weekly team standup :meeting:
SCHEDULED: <2026-01-15 Wed 09:00 +1w>
* TODO Sprint planning :meeting:
SCHEDULED: <2026-01-22 Wed 14:00 +2w>
Agenda shows:
Today: Bug fix (overdue!), code review at 10am, standup at 9am
Tomorrow: Start user settings
Next Monday: Settings deadline
✅ Example: Project Manager
; projects.org
#+CATEGORY: Projects
* TODO [#A] Submit Q1 budget :finance:admin:
DEADLINE: <2026-01-31 Fri -7d>
:PROPERTIES:
:EFFORT: 4:00
:END:
* WAITING Client approval on timeline :client:blocked:
SCHEDULED: <2026-01-10 Fri>
Sent proposal on Jan 10, follow up if no response.
* TODO [#B] Update project roadmap :planning:
SCHEDULED: <2026-01-16 Thu>
Quarterly roadmap review and updates.
* TODO Monthly status meeting :meeting:
SCHEDULED: <2026-01-30 Thu 15:00 +1m>
With stakeholders.
* TODO Weekly team check-in :meeting:
SCHEDULED: <2026-01-17 Fri 10:00 +1w>
Agenda grouped by priority shows:
Priority A: Budget (due in 7 days with warning)
WAITING: Client approval (needs follow-up)
Priority B: Roadmap update
✅ Example: Academic/Researcher
; research.org
#+CATEGORY: Research
* TODO [#A] Submit conference paper :paper:deadline:
DEADLINE: <2026-02-15 Sun -14d>
ICML submission deadline.
:PROPERTIES:
:EFFORT: 40:00
:END:
* TODO Literature review :reading:
SCHEDULED: <2026-01-16 Thu>
:PROPERTIES:
:EFFORT: 3:00
:END:
Read papers on attention mechanisms.
* TODO Weekly advisor meeting :meeting:
SCHEDULED: <2026-01-17 Fri 14:00 +1w>
Prepare update slides.
* TODO Run experiments :lab:computer:
SCHEDULED: <2026-01-18 Sat>
:PROPERTIES:
:EFFORT: 8:00
:END:
Training runs for new model.
* TODO Grade assignments :teaching:
DEADLINE: <2026-01-20 Mon>
CS101 homework submissions.
Week view shows balanced schedule:
Ongoing: Paper writing (big effort)
Daily: Literature review, experiments
Weekly: Advisor meeting
Deadline: Grading due Monday
✅ Troubleshooting
✅ Agenda Shows No Items
Check agenda files configuration:
Verify TODO keywords:
Check time range:
Reindex database (for database agenda):
Check exclude patterns:
✅ Items Not Updating
Refresh agenda:
Reindex database:
Check file watcher:
Save file:
✅ Tree View Not Showing
Check view visibility:
Refresh view:
Check for errors:
✅ Slow Performance
Use database agenda:
Limit agenda files:
Exclude large directories:
Optimize file sizes:
✅ Date Display Issues
Check timestamp format:
Verify day of week:
Check repeaters:
✅ Quick Reference
✅ Main Agenda Commands
| Command | Description |
|---|---|
| [[cmd:scimax.agenda.menu]] | Show agenda menu |
| [[cmd:scimax.agenda.day]] | Today's agenda |
| [[cmd:scimax.agenda.week]] | 7-day agenda |
| [[cmd:scimax.agenda.fortnight]] | 14-day agenda |
| [[cmd:scimax.agenda.month]] | 30-day agenda |
| [[cmd:scimax.agenda.todoList]] | All TODO items |
| [[cmd:scimax.agenda.deadlines]] | Upcoming deadlines |
| [[cmd:scimax.agenda.scheduled]] | Scheduled items |
| [[cmd:scimax.agenda.filterByTag]] | Filter by tag |
| [[cmd:scimax.agenda.refresh]] | Refresh agenda |
| [[cmd:scimax.agenda.configure]] | Configure agenda files |
✅ Database Agenda Commands
| Command | Description |
|---|---|
| [[cmd:scimax.db.agenda]] | Database agenda view |
| [[cmd:scimax.db.deadlines]] | Database deadline view |
| [[cmd:scimax.db.showTodos]] | Database TODO list |
| [[cmd:scimax.db.searchByTag]] | Database tag search |
| [[cmd:scimax.db.setScope]] | Set search scope |
| [[cmd:scimax.db.reindex]] | Reindex all files |
✅ Tree View Commands
| Command | Description |
| ------------------------------------- | -------------------------------- |
| [[cmd:scimax.agenda.showAgenda]] | Show agenda in tree view |
| [[cmd:scimax.agenda.showTodos]] | Show TODOs in tree view |
| [[cmd:scimax.agenda.groupByDate]] | Group by date |
| [[cmd:scimax.agenda.groupByCategory]] | Group by category |
| [[cmd:scimax.agenda.groupByPriority]] | Group by priority |
| [[cmd:scimax.agenda.gotoItem]] | Go to item in file |
✅ Configuration Settings
| Setting | Default | Description |
|---|---|---|
| scimax.agenda.includeJournal | true | Include journal |
| scimax.agenda.includeWorkspace | true | Include workspace |
| scimax.agenda.includeProjects | true | Include scimax projects |
| scimax.agenda.include | [] (empty) | Additional paths |
| scimax.agenda.exclude | nodemodules | Patterns/paths to exclude |
| scimax.agenda.defaultSpan | 7 | Default days to show |
| scimax.agenda.showDone | false | Show DONE items |
| scimax.agenda.showHabits | true | Show habit items |
| scimax.agenda.todoStates | [TODO, ...] | TODO keyword list |
| scimax.agenda.doneStates | [DONE, ...] | DONE keyword list |
✅ Agenda Item Properties
| Property | Description |
|---|---|
| title | Headline text |
| todoState | TODO keyword (TODO, NEXT, etc.) |
| priority | Priority (A, B, C) |
| tags | Tag list |
| scheduled | Scheduled date |
| deadline | Deadline date |
| time | Time of day |
| daysUntil | Days until/past date |
| overdue | Boolean: past deadline |
| category | Category (from CATEGORY property) |
| file | Source file path |
| line | Line number in file |
✅ Item Type Icons
| Icon | Type | Description |
| ------ | --------------------- | ------------------------------------ |
| ⚠ | Overdue deadline | Past due date, needs attention |
| 🔔 | Deadline | Has deadline, not overdue |
| 📅 | Scheduled | Has SCHEDULED timestamp |
| ⚪ | TODO | Regular TODO item |
| ✓ | DONE | Completed item |
| ▶ | NEXT | Next action item |
| ⏸ | WAITING | Waiting/blocked item |
| ⏱ | Clocked | Has time tracking |
✅ Quick Workflow
Morning: [[cmd:scimax.agenda.day]] - See today's tasks
Planning: [[cmd:scimax.agenda.week]] - Plan upcoming work
Triage: [[cmd:scimax.agenda.deadlines]] - Handle urgent items
Context work: [[cmd:scimax.agenda.filterByTag]] - Focus by context
Review: [[cmd:scimax.agenda.todoList]] - Review all TODOs