🧪 Skills
Mac Reminder Bridge
Manage macOS Reminders.app from Docker via HTTP bridge. Use when user says: set/add/create a reminder, remind me to X, cancel/delete a reminder, mark reminde...
v2.1.2
Description
name: mac-reminder-bridge description: "Manage macOS Reminders.app from Docker via HTTP bridge. Use when user says: set/add/create a reminder, remind me to X, cancel/delete a reminder, mark reminder done/complete, update/edit a reminder, show/list my reminders. Requires listener.py running on Mac at port 5000." metadata: { "openclaw": { "emoji": "🔔", "requires": { "bins": ["curl"] } } }
Skill: Mac Reminder Bridge
Control macOS Reminders.app from inside Docker via HTTP.
Base URL: http://host.docker.internal:5000
When to use
| User intent | Endpoint |
|---|---|
| "Remind me to / Set a reminder / Add a reminder" | POST /add_reminder |
| "Cancel / Delete my reminder to ..." | POST /delete_reminder |
| "Done with / Mark ... as complete" | POST /complete_reminder |
| "Unmark / reopen reminder ..." | POST /complete_reminder with completed:false |
| "Update / Change / Edit my reminder ..." | POST /update_reminder |
| "What are my reminders / Show reminders" | GET /list_reminders |
| "What lists do I have" | GET /list_lists |
POST /add_reminder
{
"task": "Buy groceries",
"list": "Shopping",
"due": "2025-12-31 09:00",
"remind_at": "2025-12-31 08:50",
"notes": "Get milk and eggs",
"priority": "high"
}
taskrequired; all others optionaldue/remind_atformat:YYYY-MM-DD HH:MMpriority:none|low|medium|highlist: leave empty to use the default list
POST /update_reminder
{
"task": "Buy groceries",
"fuzzy": false,
"new_task": "Buy organic groceries",
"new_due": "2025-12-31 10:00",
"new_notes": "Also get juice",
"new_priority": "medium"
}
taskidentifies which reminder to update- Set
new_dueto""to clear the due date - Only include the fields you want to change
POST /delete_reminder
{ "task": "Buy groceries", "fuzzy": false, "list": "" }
fuzzy: true→ match by "contains" (useful when unsure of exact wording)list: leave empty to search ALL lists
POST /complete_reminder
{ "task": "Buy groceries", "completed": true, "fuzzy": false }
completed: false→ un-check / reopen the reminder
GET /list_reminders
GET /list_reminders
GET /list_reminders?list=Shopping
GET /list_reminders?completed=true
GET /list_reminders?completed=all
Returns structured JSON with task, due, notes, priority, completed, list.
GET /list_lists
Returns all lists with pending/total counts and the default list name.
GET /health
Check if listener is running and has Reminders permission.
Agent step-by-step
Adding a reminder
- Extract:
task(required),due,remind_at,notes,priority,list - POST
/add_reminder - Confirm: "✅ Reminder set:
" + due date if applicable
Deleting a reminder
- Extract task name; use
fuzzy: trueif unsure of exact wording - POST
/delete_reminder - Check
count: if 0, say "⚠️ No reminder found matching ''"
Updating a reminder
- Extract current name and what to change
- POST
/update_reminderwith only the changed fields - Confirm what was changed
Listing reminders
- GET
/list_reminders(add?list=Xif user specifies a list) - Format results clearly, grouping by list if multiple lists present
Health check before important ops
curl http://host.docker.internal:5000/health
Auth header (if BRIDGE_SECRET is set)
X-Bridge-Secret: <secret>
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!