Use this file to discover all available pages before exploring further.
AgenticPal uses advanced natural language processing to understand your requests and execute the appropriate actions. You don’t need to memorize commands—just describe what you want in plain English.
# Absolute dates"Add a meeting on March 15th at 2pm""Schedule dentist appointment on 3/20/2026 at 10am"# Relative dates"Create an event tomorrow at 9am""Add a meeting next Tuesday at 2pm""Schedule a call in 2 hours"# Contextual times"Book lunch tomorrow at noon""Set up a meeting this afternoon""Add a morning standup every day"# Duration"Schedule a 30-minute meeting with John""Block 2 hours for deep work tomorrow""Add a quick 15-minute sync"
# Simple queries"Show me my recent emails""What's in my inbox?""List my unread messages"# Sender-based"Find emails from Sarah""Show messages from my boss""List emails from john@example.com"# Subject-based"Search for emails about the project""Find messages with 'invoice' in the subject""Show me budget-related emails"# Time-based"Show emails from this week""List messages from yesterday""Find emails after March 1st"# Combined filters"Show unread emails from Sarah with attachments""Find important messages from last week"
# Create"Create a task: buy groceries""Add a todo: finish report""Remind me to call the dentist"# With due dates"Add task 'Submit proposal' due Friday""Create a todo: review PR, due tomorrow""Remind me to pay rent on the 1st"# Complete"Mark 'buy groceries' as done""I finished the report""Check off the dentist task"# Update"Change my task title to 'Buy groceries and supplies'""Update the due date to next week""Add notes to the project task"
PLAN_ACTIONS_SYSTEM_PROMPT = """You are an AI assistant that helps users manage their calendar, email, and tasks.Current date: {current_date}Current time: {current_time}You have access to three meta-tools:1. discover_tools - Find tools by category/action2. get_tool_schema - Get detailed schema for a tool3. invoke_tool - Execute a tool with parametersUse these meta-tools to fulfill the user's request."""
SYNTHESIZE_RESPONSE_PROMPT = """You are summarizing the results of tool executions for the user.Provide a natural, helpful response that:- Confirms what was done- Presents results clearly- Explains any errors- Suggests next steps if appropriateFormat lists and data nicely for readability."""
# From agent stateconversation_history = state.get("conversation_history", [])# Recent messages (last 5) are included in promptsfor msg in conversation_history[-5:]: if msg.get("role") == "user": messages.append(HumanMessage(content=msg["content"])) elif msg.get("role") == "assistant": messages.append(AIMessage(content=msg["content"]))
This enables multi-turn conversations where the agent remembers previous interactions.
The LLM extracts structured parameters from natural language:
# User: "Add a meeting with John next Tuesday at 2pm for 1 hour"# Extracted parameters:{ "tool_name": "add_calendar_event", "parameters": { "title": "Meeting with John", "start_time": "2026-03-10T14:00:00", "end_time": "2026-03-10T15:00:00", "attendees": ["john@example.com"], # If email known "timezone": "UTC" }}
Pydantic schemas ensure type safety and validation.
When the agent encounters ambiguity or errors, it asks clarifying questions:
User: "Add a meeting with John"Agent: "I'd be happy to schedule that. When would you like to meet with John?"User: "Tomorrow at 2pm"Agent: "Meeting with John scheduled for March 9th at 2:00 PM."