Skip to main content

Summary

The Reminders MCP server enables AI assistants to create and manage reminders within conversations. Supports both one-time reminders (scheduled_at) and recurring reminders (cron expressions) with timezone awareness. Requires conversation API key for authentication.

Authentication

This server requires a conversation API key. The key is automatically provided when tools are called within an Agentic Loop.
Automatic in Agentic Loops: When using this server within an Agentic Loop, the conversation API key is provided automatically - no manual setup required.

Use Cases

One-Time Meeting Reminder

User: “Remind me about the team meeting tomorrow at 2pm” Tool Calls:
  1. create-reminder with message “Team meeting”, scheduled_at “2026-02-05T14:00:00”, timezone “America/New_York”
Result: Reminder created, will trigger tomorrow at 2pm EST

Daily Standup Reminder

User: “Remind me every weekday at 9am about standup” Tool Calls:
  1. create-reminder with message “Daily standup”, cron_expression “0 9 * * 1-5”, timezone “America/Los_Angeles”
Result: Recurring reminder created, triggers Monday-Friday at 9am PST

Managing Reminders

User: “What reminders do I have coming up?” Tool Calls:
  1. list-reminders with status “active” → Shows all active reminders
  2. User: “Cancel the one about standup”
  3. delete-reminder with reminder_id from the standup reminder
Result: List of active reminders displayed, standup reminder deleted

Available Tools

create-reminder

Create a new reminder for the conversation. Returns: Confirmation with reminder details including ID, message, schedule, and next run time.
Either/Or Requirement: You must provide either scheduled_at (one-time) or cron_expression (recurring), but not both.
One-Time Reminder Example:
Recurring Reminder Example:
Cron Expression Format:
Common Cron Patterns:
  • 0 9 * * * - Every day at 9:00 AM
  • 0 9 * * 1-5 - Every weekday at 9:00 AM
  • 0 */2 * * * - Every 2 hours
  • 30 8 * * 1 - Every Monday at 8:30 AM
  • 0 0 1 * * - First day of every month at midnight

list-reminders

List all reminders for the conversation. Returns: Table of reminders ordered by next run time (upcoming first) with ID, message, type, next run time, and status. Example:
Status Filters:
  • active - Currently enabled reminders
  • paused - Temporarily disabled reminders
  • completed - One-time reminders that have triggered
  • failed - Reminders that encountered errors

get-reminder

Get full details of a specific reminder by its ID. Returns: Complete reminder information including schedule, timezone, and run history. Example:
Reminder Not Found: If the reminder_id doesn’t exist for this conversation, an error is returned.

update-reminder

Update an existing reminder’s message, schedule, timezone, or status. Returns: Confirmation with updated reminder details.
Partial Updates: You only need to provide the fields you want to change. Other fields remain unchanged.
Example - Pause a Reminder:
Example - Change Schedule:
Valid Status Transitions:
  • activepaused (temporarily disable)
  • pausedactive (re-enable)
Cannot Update Completed or Failed: Only active and paused reminders can be updated. Completed or failed reminders must be deleted and recreated.

delete-reminder

Permanently delete a reminder by its ID. Returns: Confirmation with deleted reminder’s ID and message. Example:
Permanent Action: Deletion cannot be undone. The reminder is permanently removed from the database.

Common Workflows

Creating a Quick Reminder

1

Parse User Request

Extract message, time, and timezone from user’s natural language request
2

Create One-Time Reminder

Use create-reminder with scheduled_at in ISO 8601 format
3

Confirm

Show confirmation with formatted reminder details

Setting Up Recurring Reminders

1

Determine Pattern

Convert user’s request to cron expression (e.g., “every weekday” → “0 9 * * 1-5”)
2

Create Recurring Reminder

Use create-reminder with cron_expression
3

Verify Next Run

Confirm the next run time matches user’s expectation

Managing Reminders

1

List Reminders

Use list-reminders to show all active reminders
2

User Selects Action

User identifies which reminder to modify or delete
3

Update or Delete

Use update-reminder to modify or delete-reminder to remove

Timezone Best Practices

Validating Timezones

Before creating reminders, validate the user’s timezone:
1

Ask for Timezone

“What timezone are you in?”
2

Search Timezones

Use Time Utilities timezones tool to find valid identifiers
3

Confirm

Show the user their timezone with current time using now tool
4

Create Reminder

Use validated timezone identifier with create-reminder

Common Timezone Identifiers

Daylight Saving Time: IANA timezone identifiers automatically handle DST transitions. Times remain consistent from the user’s perspective.

Tips & Best Practices

  • Always specify timezone when creating reminders to avoid confusion (defaults to UTC if not specified)
  • Use ISO 8601 format for scheduled_at (e.g., “2026-02-05T14:00:00”)
  • Test cron expressions before creating - incorrect patterns may not trigger as expected
  • Pause instead of delete if the user might want to re-enable the reminder later
  • List reminders before updating or deleting to confirm you’re acting on the right one
  • Consider user’s intent - “tomorrow at 2pm” should use their local timezone, not UTC

Cron Expression Tips

  • Use online tools to validate cron expressions before creating reminders
  • Common mistake: 0 9 1-5 * * (days 1-5 of month) vs 0 9 * * 1-5 (Mon-Fri)
  • Be explicit: 0 9 * * 1,2,3,4,5 is clearer than 0 9 * * 1-5 for some users
  • Test thoroughly: Create a test reminder with short intervals to verify the pattern works

Reminder Lifecycle

1

Created

Reminder is created with create-reminder and status is active
2

Pending

Reminder awaits its next_run_at timestamp
3

Triggered

At the scheduled time, a synthetic message is sent to the conversation
4

One-Time: Completed

One-time reminders move to completed status after triggering
5

Recurring: Next Run Calculated

Recurring reminders calculate the next next_run_at based on cron expression
6

Failed (if error)

If the reminder cannot be delivered, status changes to failed

API Reference

View the complete API specification for Reminders MCP server endpoints