create_time_reminder
Schedule time-based reminders using system time to track tasks and activities. Set reminders with specific times and messages for improved task management and follow-up.
Instructions
Create a time-based reminder using system time for scheduling
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Reminder message | |
| relatedTaskId | No | ID of related task or activity | |
| reminderTime | Yes | Time for the reminder (ISO 8601 format with explicit timezone offset, e.g., '2025-09-11T14:00:00+08:00' for local time or '2025-09-11T14:00:00+00:00' for UTC) |
Implementation Reference
- src/chronos_protocol/server.py:550-580 (handler)Core handler function in TimeServer class that executes the tool logic: generates unique ID, validates ISO 8601 reminder time, creates Reminder object, persists to database, and returns the reminder.def create_time_reminder( self, reminder_time: str, message: str, related_task_id: Optional[str] = None ) -> Reminder: """Create a time-based reminder""" reminder_id = self.id_generator.generate_id() created_time = datetime.now(ZoneInfo('UTC')).isoformat(timespec="seconds") # Validate reminder time format try: # Handle both 'Z' suffix and existing timezone info if reminder_time.endswith('Z'): parsed_time = datetime.fromisoformat(reminder_time.replace('Z', '+00:00')) else: parsed_time = datetime.fromisoformat(reminder_time) except ValueError: raise ValueError("Invalid reminder time format. Expected ISO 8601 format") reminder = Reminder( reminderId=reminder_id, reminderTime=reminder_time, message=message, relatedTaskId=related_task_id, status="pending", createdTime=created_time ) self.db.add_reminder(reminder) return reminder
- Pydantic model defining the structure of a Reminder, used for output validation and serialization.class Reminder(BaseModel): reminderId: str reminderTime: str message: str relatedTaskId: Optional[str] = None status: str # "pending", "completed" createdTime: str
- src/chronos_protocol/server.py:811-832 (registration)MCP tool registration in list_tools(): defines name, description, and input schema.Tool( name=TimeTools.CREATE_TIME_REMINDER.value, description="Create a time-based reminder using system time for scheduling", inputSchema={ "type": "object", "properties": { "reminderTime": { "type": "string", "description": "Time for the reminder (ISO 8601 format with explicit timezone offset, e.g., '2025-09-11T14:00:00+08:00' for local time or '2025-09-11T14:00:00+00:00' for UTC)", }, "message": { "type": "string", "description": "Reminder message", }, "relatedTaskId": { "type": "string", "description": "ID of related task or activity", }, }, "required": ["reminderTime", "message"], }, ),
- src/chronos_protocol/server.py:927-936 (registration)Dispatch logic in _execute_tool() that validates arguments and invokes the handler for create_time_reminder.case TimeTools.CREATE_TIME_REMINDER.value: if not all(k in arguments for k in ["reminderTime", "message"]): raise ValueError("Missing required arguments: reminderTime and message") result = time_server.create_time_reminder( arguments["reminderTime"], arguments["message"], arguments.get("relatedTaskId"), )
- src/chronos_protocol/server.py:84-85 (helper)Enum value defining the tool name constant.CREATE_TIME_REMINDER = "create_time_reminder" CHECK_TIME_REMINDERS = "check_time_reminders"