Today
Plan today's work using this repo's workflow. Use when the user asks for /today or phrases like "plan my day", "today's plan", "set my priorities", or "start my day".
MCP get_skill({ skillId: "today-af6c4cba" })Use this skill with your agent
Create a free account and connect via MCP
# Today Planning
Act like a personal assistant. Ask clarifying questions when anything is unclear. Always get confirmation before writing files.
**Flexible date support:** This workflow can plan for today OR a specific future date (e.g., "plan tomorrow", "plan for Thursday"). Adjust the target date accordingly while following the same workflow.
## Configuration
### VIP Contacts (customize these!)
**VIP Contacts (attendees)** - meetings with these people require advance preparation:
- manager@company.com (Manager)
- skip-manager@company.com (Skip manager)
- executive@company.com (Leadership)
**VIP Organizers** - meetings FROM these organizers require prep:
- team-rob-calendar@company.com (Team RoB Calendar)
### Calendar Access
Choose ONE of these methods (configure in "Calendar Setup" section below):
1. **iCal URL** (recommended) - No auth needed, read-only
2. **WorkIQ MCP** - If you have it configured, can also search Teams
### Timezone
Default: Pacific Standard Time. Change if needed.
### Folder Paths
- Daily notes: `work/daily/`
- Goals: `work/goals/`
- Reflections: `work/reflections/`
- Backlog: `work/backlog/BACKLOG.md`
- Meeting preferences: `work/context/meeting-preferences.md`
## Calendar Setup
### Option 1: iCal URL (Recommended)
Get your Outlook calendar's iCal URL:
1. Go to Outlook on the web → Settings → Calendar → Shared calendars
2. Under "Publish a calendar", select your calendar and "Can view all details"
3. Click "Publish" and copy the ICS link
4. Set it below:
**Your iCal URL:**
```
https://outlook.office365.com/owa/calendar/YOUR_CALENDAR_ID/YOUR_SECRET/calendar.ics
```
To fetch and parse the calendar (cross-platform — works on Windows, macOS, Linux):
```python
import re
import os
import tempfile
import urllib.request
from datetime import date
ical_url = 'YOUR_ICAL_URL'
ical_path = os.path.join(tempfile.gettempdir(), 'calendar.ics')
urllib.request.urlretrieve(ical_url, ical_path)
```
### Option 2: WorkIQ MCP
If WorkIQ is configured, query calendar directly:
```
Ask WorkIQ: "What meetings do I have on [date]? Include meeting titles, times, organizers, and attendees."
```
## Workflow
1) Read yesterday's daily note in `work/daily/` (account for weekends or time off).
2) Read the current quarter goals in `work/goals/` (most relevant goals file).
3) Read the most recent reflection in `work/reflections/` (by date in filename).
4) **Check for VIP meetings (next business day):**
- Read VIP list from configuration above
- Determine next business day (if Friday/weekend → Monday, else → tomorrow)
- Fetch that day's calendar via iCal or WorkIQ
- **For EACH meeting, check BOTH (do not skip!):**
1. Check organizer against VIP organizer emails
2. Check attendees against VIP contact emails
- If either match found, alert prominently: "⚠️ VIP MEETING: [name] with [VIP] on [date] at [time] - prepare!"
- Ask if user wants to add prep tasks to today's TODOs
5) **Check calendar for conflicts:**
- Fetch calendar via iCal URL or WorkIQ
- **CRITICAL: ALL times must be displayed in user's local timezone**
- Filter out: cancelled, all-day events
- Detect overlapping meetings (any two events where one starts before the other ends)
- Group conflicts by time slot for cleaner presentation
- **CRITICAL: Use markdown file for conflict decisions, NOT AskUserQuestion tool**
- Create `work/daily/YYYY-MM-DD-triage.md` with checkbox format
- User prefers batch decision-making in a single file over multiple dialog prompts
- Open file in VS Code: `code <filepath>`
- Wait for user to edit and confirm
- Note: iCal is read-only. For declining meetings, user must do so manually in Outlook after reviewing the triage file.
6) Read `work/backlog/BACKLOG.md` and triage every item:
- Pull into today's TODOs (tag `[pulled]`).
- Delegate (ask who, tag `[delegated:Name]`).
- Someday (tag `[someday:YYYY-MM-DD]`; if the user says "someday" without a date, default to the same day next month).
- If a `[someday:YYYY-MM-DD]` item is due or past due, surface it again for triage.
- Check for TODOs captured via hotkey (format: `- [ ] <text> (captured YYYY-MM-DD)` at end of file). Triage these too.
7) (Optional) Read mobile backlog from Apple Notes:
```bash
osascript -e 'tell application "Notes" to get body of note "Work Todo Backlog"'
```
Include any items from this note in the triage process alongside the repo backlog.
8) (Optional) **Search Teams for tagged commitments** (requires WorkIQ):
- Use WorkIQ to search for messages containing custom tags like `#your-todo`
- Query: "Search all my Teams chats and messages for #your-todo from the past week"
- **IMPORTANT: Only include messages where user is the sender**
- Surface any new items found and include in triage alongside backlog items
- **Always include the Teams message link** for context
- Format: `- [ ] [commitment text] ([link to message](url))`
9) **Generate triage markdown file** (`work/daily/YYYY-MM-DD-triage.md`):
Create a markdown file for user to review and make decisions. Structure:
```markdown
# Day Triage: YYYY-MM-DD
## Overview
- Day of week, date
- Count of meetings, conflicts, backlog items
- Key highlights (VIP meetings, overdue items, etc.)
## VIP Alerts (Tomorrow)
⚠️ List any VIP meetings for next business day with prep recommendations
## Calendar Conflicts
For each conflict slot, show:
### Slot N: HH:MM-HH:MM
| Keep | Meeting | Time | Organizer | Attendees | Notes |
|------|---------|------|-----------|-----------|-------|
| [ ] | Meeting name | start-end | email | count | VIP/1:1/etc |
**Recommendation:** [suggested keep] because [reason]
**Your choice:** ___
**Action needed:** Decline [meeting names] in Outlook
## Backlog Triage
### Overdue / Due Today
- [ ] Item — Action: [pull/someday:date/delegate:name] ___
### New Items
- [ ] Item — Action: ___
### Carried Over
- [ ] Item — Action: ___
## Proposed TODOs
Based on your goals and patterns, here's a suggested TODO list:
- [ ] ...
```
- Open the file in VS Code: `code work/daily/YYYY-MM-DD-triage.md`
- Tell user: "I've created your triage file. Please review, mark your choices, and say 'ready' when done."
10) **Wait for user to edit and confirm** ("ready" or similar)
11) **Process decisions from triage file:**
- Parse the triage markdown file
- For calendar conflicts:
- List meetings user needs to decline manually in Outlook
- Remind user to decline the meetings they didn't mark as "keep"
- For backlog items:
- Update `work/backlog/BACKLOG.md` with appropriate tags
- Update `work/context/meeting-preferences.md` with any new patterns learned
12) **Create today's daily note** (`work/daily/YYYY-MM-DD-notes.md`):
- `# Notes for YYYY-MM-DD`
- `## TODOs:` (bulleted list from confirmed triage)
- `## Notes:` (freeform)
- `## Links:` (important links)
## iCal Parsing Reference
To parse the iCal file for a specific date (cross-platform — works on Windows, macOS, Linux):
```python
import re
import os
import tempfile
import urllib.request
from datetime import date
# Fetch calendar to a cross-platform temp path
ical_url = 'YOUR_ICAL_URL'
ical_path = os.path.join(tempfile.gettempdir(), 'calendar.ics')
urllib.request.urlretrieve(ical_url, ical_path)
# Parse events for today (or pass a specific date as a string: 'YYYYMMDD')
target_date = date.today().strftime('%Y%m%d')
with open(ical_path, 'r', encoding='utf-8') as f:
content = f.read()
events_raw = content.split('BEGIN:VEVENT')
for event in events_raw[1:]:
if 'STATUS:CANCELLED' in event:
continue
summary = ''
dtstart = ''
organizer = ''
for line in event.split('\n'):
if line.startswith('SUMMARY:'):
summary = line.replace('SUMMARY:', '').strip()
if line.startswith('DTSTART'):
dtstart = line
if line.startswith('ORGANIZER'):
organizer = line
if target_date in dtstart:
# Extract time and display
match = re.search(r'T(\d{2})(\d{2})', dtstart)
if match:
hour, minute = int(match.group(1)), int(match.group(2))
print(f"{hour:02d}:{minute:02d} - {summary}")
```
## Sources of Truth
- `work/daily/README.md` - Daily note format
- `work/goals/README.md` - Goals format
- `work/reflections/README.md` - Reflection format
- `work/backlog/README.md` - Backlog tags
- `work/backlog/BACKLOG.md` - Active backlog
- `work/context/meeting-preferences.md` - Learned patterns for conflict resolution
- Calendar: iCal URL or WorkIQRelated Skills
More skills in Personal Productivity
Academic Cv Builder
Format CVs for academic positions with publications, grants, and teaching
Act Informed: First understand together with the human, then do
Interactive, input-tool powered, task refinement workflow: interrogates scope, deliverables, constraints before carrying out the task; Requires the Joyride extension.
Add Multiple Attendees to a Calendar Event
Add a list of attendees to an existing Google Calendar event and send notifications.
AgentMail — Agent-Owned Email Inboxes
Give the agent its own dedicated email inbox via AgentMail. Send, receive, and manage email autonomously using agent-owned email addresses (e.g. hermes-agent@agentmail.to).
Agent Mail Automation via Rube MCP
Automate Agent Mail tasks via Rube MCP (Composio). Always search tools first for current schemas.
Airtable
Airtable REST API via curl. Records CRUD, filters, upserts.
Explore Other Categories
Skills from other categories with shared topics
Atlassian
Manage Jira issues and Confluence wiki pages in Atlassian Cloud. Use when: (1) searching/creating/updating Jira issues with JQL, (2) searching/reading/creating Confluence pages with CQL, (3) managing Jira workflows, transitions, and comments, (4) browsing Confluence spaces and page hierarchies. Supports OAuth 2.1 via MCP server (recommended) or API token authentication (fallback).
Azure DevOps
Manage Azure DevOps projects, work items, repos, PRs, pipelines, wikis, test plans, security alerts, variable groups, environments/approvals, branch policies, and attachments. Use when user asks to: manage sprints, create/update work items, list repos, create PRs, run pipelines, search code, manage wiki pages, check security alerts, manage variable groups, approve deployments, or configure branch policies. Covers 13 domains with 99 tools via REST API.
Create a Google Slides Presentation
Create a new Google Slides presentation and add initial slides.