Apple Reminders Management via MCP
When to Use This Skill
Invoke this skill when you need to:
- Create reminders for time-sensitive tasks or follow-ups
- Search existing reminders to check task status
- Update reminder priorities or due dates
- Organize reminders across different lists (Work, Personal, Projects)
- Mark reminders complete after task completion
- Integrate reminders with Folio context by default; use legacy Obsidian sync only when explicitly requested
- Set up recurring or time-based task tracking
Core Principles
- List Organization: Use appropriate reminder lists for different contexts (Work vs Personal)
- Priority Management: Set priorities (high=1, medium=5, low=9) for task importance
- Due Date Discipline: Set due dates for time-sensitive tasks, leave open for aspirational tasks
- Search First: Check existing reminders before creating duplicates
- Completion Tracking: Mark reminders complete to maintain clean lists
- Integration: Link reminders to Folio notes or other source records for full context; use Obsidian links only for legacy vault work
Available MCP Tools
Core Operations
- list_reminder_lists: Get all available reminder lists (start here)
- get_reminders: Get reminders from specific list or all lists (with optional filtering)
- search_reminders: Search reminders by name or body content
- create_reminder: Create new reminder with priority, due date, and notes
- update_reminder: Update existing reminder (priority, due date, completion status)
- delete_reminder: Delete reminder by ID
Reminder List Organization
Typical List Structure
Work Lists:
- "Work" - General work tasks
- "Example Company" - Business Project business tasks
- "Partner Project" - Partnership development tasks
- "Projects" - Active project tasks
Personal Lists:
- "Reminders" - Default personal list
- "Shopping" - Shopping and errands
- "Reading" - Articles and books to read
- "Someday" - Aspirational tasks
Pattern: Discover Available Lists
Use: mcp__reminders__list_reminder_lists
Result: Array of {id, name} for all available lists
When to use: Starting point before creating reminders, understanding organization
Creating Reminders
Pattern: Simple Task Reminder
Use: mcp__reminders__create_reminder
Parameters:
- name: "Follow up with Partner Contact on Partner Project partnership"
- listName: "Partner Project"
- priority: 1 (high priority)
- dueDate: "10/20/2025 09:00 AM"
Pattern: Task with Context
Use: mcp__reminders__create_reminder
Parameters:
- name: "Update email campaign messaging for Business Project"
- listName: "Example Company"
- body: "Update remaining 6 emails in drip sequence. Reference: Folio note or project record for the email campaign."
- priority: 1
- dueDate: "10/22/2025 02:00 PM"
Pattern: Recurring Task Placeholder
Note: MCP doesn't currently support recurring reminders via API
Workaround: Create individual instances with sequential due dates
Example - Weekly Review:
create_reminder(name: "Weekly Review", listName: "Work", dueDate: "10/20/2025 05:00 PM")
create_reminder(name: "Weekly Review", listName: "Work", dueDate: "10/27/2025 05:00 PM")
create_reminder(name: "Weekly Review", listName: "Work", dueDate: "11/03/2025 05:00 PM")
Searching and Filtering Reminders
Pattern: Search by Name or Content
Use: mcp__reminders__search_reminders
Parameters:
- searchTerm: "Partner Project"
Result: All reminders mentioning "Partner Project" in name or body
Pattern: Get Reminders from Specific List
Use: mcp__reminders__get_reminders
Parameters:
- listName: "Example Company"
- completed: false (only show incomplete)
Result: All incomplete reminders in Business Project list
Pattern: Find All Incomplete High Priority Tasks
Use: mcp__reminders__get_reminders
Parameters:
- completed: false
Then filter results where priority === 1 (high)
Updating Reminders
Pattern: Change Priority
# Step 1: Search for reminder
results = mcp__reminders__search_reminders(searchTerm: "market research")
# Step 2: Update priority
mcp__reminders__update_reminder(
reminderId: results[0].id,
priority: 1 # Escalate to high priority
)
Pattern: Reschedule Due Date
# Step 1: Find reminder
results = mcp__reminders__get_reminders(listName: "Partner Project", completed: false)
# Step 2: Update due date
mcp__reminders__update_reminder(
reminderId: results[0].id,
dueDate: "10/25/2025 10:00 AM" # Push out deadline
)
Pattern: Mark Complete
# Step 1: Search for completed task
results = mcp__reminders__search_reminders(searchTerm: "email campaign setup")
# Step 2: Mark complete
mcp__reminders__update_reminder(
reminderId: results[0].id,
completed: true
)
Pattern: Add Context to Existing Reminder
# Step 1: Find reminder
results = mcp__reminders__search_reminders(searchTerm: "partnership proposal")
# Step 2: Add body text with context
mcp__reminders__update_reminder(
reminderId: results[0].id,
body: "Draft partnership terms. Reference market research in Folio or the current project knowledge store."
)
Integration Workflows
Integration: Folio → Reminders
Goal: Create reminders from Folio notes, project records, or action items
Workflow:
1. Search Folio for relevant action items or project notes
2. Parse action items from note content
3. For each time-sensitive action:
mcp__reminders__create_reminder(
name: "[action from Folio/project context]",
listName: "[appropriate list]",
body: "Source: [Folio note/project record]",
priority: [based on task context],
dueDate: [if specified in note]
)
4. Update the source record when the workflow supports writeback
Integration: Reminders → Folio
Goal: Sync reminder completion back to Folio or project task tracking
Workflow:
1. Get completed reminders: mcp__reminders__get_reminders(completed: true)
2. Filter for reminders with "Source: [Folio note/project record]" in body
3. For each completed reminder:
- Extract the source reference from body
- Update the source record when writeback is available
- Mark task as complete with completion date
4. Archive or delete synced reminders: mcp__reminders__delete_reminder
Integration: Task Sync Workflow (syncing-task-completions skill)
Workflow: Two-agent sync pattern
@sync-scanner agent:
1. Get all incomplete reminders: mcp__reminders__get_reminders(completed: false)
2. Get all Folio/project action items
3. Cross-reference to find:
- Reminders without source entries (orphaned)
- Source TODOs without reminders (untracked)
4. Generate sync report
@sync-updater agent:
1. For orphaned reminders: create source action items
2. For untracked TODOs: create reminders
3. Update master task list with completion dates
4. Mark synced reminders complete
Integration: Time-Based Task Delegation
Goal: Create reminders for delegated sub-agent tasks
Workflow:
1. Coordinator Claude delegates task to sub-agent
2. Create reminder for follow-up:
mcp__reminders__create_reminder(
name: "Check @implementer progress on [task]",
listName: "Work",
body: "Delegated to @implementer at [time]. Expected completion: [estimate]",
priority: 5,
dueDate: "[estimated completion + 1 hour]"
)
3. When reminder triggers: check sub-agent output
4. Mark reminder complete when sub-agent finishes
Priority Management Guidelines
Priority Levels
-
High (1): Time-sensitive, blocking other work, high-impact
- Example: "Follow up with client before deadline"
- Example: "Fix production bug affecting users"
-
Medium (5): Important but not urgent, scheduled work
- Example: "Update email campaign messaging"
- Example: "Review market research findings"
-
Low (9): Nice-to-have, aspirational, low-priority
- Example: "Read article about new AI framework"
- Example: "Organize project files"
-
None (0): No specific priority, informational
- Example: "Remember to check MJ's draft later"
Pattern: Triage Existing Reminders
Workflow:
1. Get all incomplete reminders: mcp__reminders__get_reminders(completed: false)
2. For each reminder:
- Evaluate urgency and impact
- Update priority: mcp__reminders__update_reminder(reminderId, priority)
- Add or update due dates for time-sensitive items
3. Focus on high-priority items first
Due Date Best Practices
When to Set Due Dates
Set specific due dates for:
- Client follow-ups with deadlines
- Event-based tasks (meetings, presentations)
- Time-sensitive dependencies (blocking other work)
- Recurring reviews (weekly, monthly)
Leave due dates unset for:
- Aspirational learning tasks
- Exploratory research
- "Someday/Maybe" items
- Tasks with flexible timelines
Due Date Format
Format: "MM/DD/YYYY HH:MM AM/PM"
Examples:
- "10/20/2025 09:00 AM"
- "11/15/2025 02:30 PM"
- "12/01/2025 05:00 PM"
Common Use Case Workflows
Use Case: Client Follow-Up System
Scenario: Track follow-ups with Partner Project partnership
Step 1: Create initial reminder
mcp__reminders__create_reminder(
name: "Follow up with Partner Contact on partnership terms",
listName: "Partner Project",
body: "Discuss equity structure and timeline. Reference: Folio or project knowledge record for Partner Project.",
priority: 1,
dueDate: "10/22/2025 10:00 AM"
)
Step 2: After follow-up, create next reminder
mcp__reminders__create_reminder(
name: "Send partnership proposal to partner contact",
listName: "Partner Project",
body: "Based on discussion on 10/22. Include market research findings.",
priority: 1,
dueDate: "10/25/2025 09:00 AM"
)
Step 3: Mark previous reminder complete
mcp__reminders__update_reminder(reminderId: [id], completed: true)
Use Case: Project Milestone Tracking
Scenario: Track Business Project email campaign milestones
Step 1: Create milestone reminders
mcp__reminders__create_reminder(
name: "Complete email 2-3 messaging updates",
listName: "Example Company",
priority: 5,
dueDate: "10/23/2025 03:00 PM"
)
mcp__reminders__create_reminder(
name: "Complete email 4-7 messaging updates",
listName: "Example Company",
priority: 5,
dueDate: "10/25/2025 03:00 PM"
)
Step 2: As milestones complete, mark done
mcp__reminders__update_reminder(reminderId: [id], completed: true)
Step 3: Update Folio or the project task record with progress when writeback is available
Use Case: Daily Review System
Scenario: Morning review of priorities
Step 1: Get today's due reminders
results = mcp__reminders__get_reminders(completed: false)
Filter for dueDate === today
Step 2: Get all high-priority incomplete
Filter results for priority === 1
Step 3: Triage and reschedule if needed
For each reminder:
if still_valid:
keep or update due date
else:
mark complete or delete
Use Case: Research Task Management
Scenario: Track research tasks that don't have hard deadlines
Step 1: Create low-priority reminders
mcp__reminders__create_reminder(
name: "Research AlphaFold competitors for Partner Project market analysis",
listName: "Partner Project",
body: "Use Perplexity API skill. Save results to Folio or the current project knowledge store.",
priority: 9, # Low priority - do when time allows
# No due date - flexible timing
)
Step 2: When starting research, escalate priority
mcp__reminders__update_reminder(
reminderId: [id],
priority: 5, # Medium - actively working
dueDate: "10/24/2025 05:00 PM" # Set completion target
)
Step 3: Mark complete and link to Folio/project results
mcp__reminders__update_reminder(
reminderId: [id],
completed: true,
body: "Research completed. Results: Folio/project knowledge record for Competitive Landscape Synthesis."
)
Bulk Operations Patterns
Pattern: Weekly Cleanup
Workflow:
1. Get all completed reminders from last week
results = mcp__reminders__get_reminders(completed: true)
2. Review and archive
For each completed reminder:
if important_context:
Extract to Folio or project knowledge record
if no_longer_relevant:
mcp__reminders__delete_reminder(reminderId: [id])
3. Triage incomplete reminders
incomplete = mcp__reminders__get_reminders(completed: false)
For each:
Evaluate: still relevant? Update priority? Reschedule?
Pattern: List-Specific Review
Workflow: Review specific project list
Step 1: Get all reminders for project
reminders = mcp__reminders__get_reminders(listName: "Partner Project", completed: false)
Step 2: Sort by priority and due date
Sort results by: priority ASC, dueDate ASC
Step 3: Update or complete as needed
For each reminder:
Evaluate status and update accordingly
Error Handling and Edge Cases
Handle: Reminder Not Found
# Search returns no results
results = mcp__reminders__search_reminders(searchTerm: "obscure task")
if not results or len(results) == 0:
# Create new reminder instead
mcp__reminders__create_reminder(...)
Handle: Duplicate Prevention
# Before creating, search for existing
existing = mcp__reminders__search_reminders(searchTerm: "Follow up with partner")
if existing and len(existing) > 0:
# Update existing instead of creating duplicate
mcp__reminders__update_reminder(
reminderId: existing[0].id,
dueDate: "[new date]"
)
else:
# Create new
mcp__reminders__create_reminder(...)
Handle: List Doesn't Exist
# Before creating, verify list exists
lists = mcp__reminders__list_reminder_lists()
list_names = [l.name for l in lists]
if "ProjectName" not in list_names:
# Fall back to default list
listName = "Work"
else:
listName = "ProjectName"
mcp__reminders__create_reminder(listName: listName, ...)
Reminders Management Checklist
Before creating or updating reminders:
- [ ] Duplicate Check: Have I searched for existing reminders on this topic?
- [ ] List Selection: Am I using the appropriate list for this task context?
- [ ] Priority Setting: Have I set priority based on urgency and impact?
- [ ] Due Date Decision: Does this task need a specific due date, or is it flexible?
- [ ] Context Addition: Have I added body text with links to Folio, project records, or other resources?
- [ ] Integration Plan: Should this reminder be synced to Folio, Workboard, or other systems?
- [ ] Completion Tracking: Will I remember to mark this complete when done?
Common Patterns Summary
| Goal | Primary Tool | Parameters | Notes | |------|-------------|------------|-------| | Discover lists | list_reminder_lists | None | Start here | | Create task | create_reminder | name, listName, priority, dueDate, body | Always set priority | | Find reminders | search_reminders | searchTerm | Search name and body | | Get list tasks | get_reminders | listName, completed | Filter by list | | Change priority | update_reminder | reminderId, priority | 1=high, 5=med, 9=low | | Reschedule | update_reminder | reminderId, dueDate | Format: MM/DD/YYYY HH:MM AM/PM | | Mark complete | update_reminder | reminderId, completed: true | Always mark done | | Add context | update_reminder | reminderId, body | Link to Folio or project records | | Delete reminder | delete_reminder | reminderId | Use sparingly |
Integration with Other Skills
With coordinating-sub-agents
Create reminders for follow-up on delegated tasks
Track sub-agent progress with time-based reminders
Mark reminders complete when sub-agent delivers
With syncing-task-completions
Bi-directional sync between Reminders and Folio/project task records
Update master task lists with completion dates
Create reminders for untracked source TODOs
With processing-paia-tags
Create reminders for time-sensitive @paia actions
Link reminders back to source Folio notes or project records
Mark @paia complete when reminder is done
With obsidian-vault-intelligence
Use only for explicit legacy Obsidian vault work
Reference legacy Obsidian notes in reminder body text
Create reminders from legacy Obsidian action items
Update legacy Obsidian when reminders complete
Apple Reminders as Task Management Layer
Think of Apple Reminders as:
- Time-Based Task Tracking: Due dates and notifications for time-sensitive work
- Priority Queue: High/medium/low priority organization
- Cross-Device Sync: Tasks accessible on all Apple devices
- Integration Hub: Bridge between Folio/project context, agents, and daily workflow
- Completion Tracking: Clear record of what's done and when
Use it proactively for:
- Client follow-up tracking
- Project milestone reminders
- Weekly/monthly review triggers
- Time-sensitive task delegation
- Bi-directional sync with Folio/project task records when available