[
  {
    "name": "gmail_read_emails",
    "description": "Reads emails from the user's Gmail account based on specified criteria. Use this for proactive knowledge integration from email communications.",
    "parameters": {
      "type": "object",
      "properties": {
        "subject": {
          "type": "string",
          "description": "The subject line or keywords in the subject of the emails to read."
        },
        "sender": {
          "type": "string",
          "description": "The sender's email address."
        },
        "label": {
          "type": "string",
          "description": "A Gmail label (e.g., 'inbox', 'sent', 'important', 'unread')."
        },
        "keywords": {
          "type": "string",
          "description": "General keywords to search within email content."
        },
        "maxResults": {
          "type": "integer",
          "description": "Maximum number of emails to retrieve (e.g., 5). It defaults to a system-defined maximum if not specified."
        }
      }
    }
  },
  {
    "name": "drive_search_files",
    "description": "Searches for files in the user's Google Drive based on keywords, file type, or folder. Use this for retrieving Capsule data or other relevant documents for knowledge integration.",
    "parameters": {
      "type": "object",
      "properties": {
        "keywords": {
          "type": "string",
          "description": "Keywords to search for within file names or content."
        },
        "fileType": {
          "type": "string",
          "description": "Specific file type (e.g., 'document', 'spreadsheet', 'presentation', 'pdf')."
        },
        "folderName": {
          "type": "string",
          "description": "Name of a specific folder to search within."
        },
        "maxResults": {
          "type": "integer",
          "description": "Maximum number of files to retrieve (e.g., 5). It defaults to a system-defined maximum if not specified."
        }
      }
    }
  },
  {
    "name": "calendar_get_events",
    "description": "Retrieves events from the user's Google Calendar for a specified time range or keywords. Use this for integrating scheduling information or upcoming tasks.",
    "parameters": {
      "type": "object",
      "properties": {
        "timeMin": {
          "type": "string",
          "format": "date-time",
          "description": "Start date/time for events (ISO 8601 format, e.g., '2025-07-25T09:00:00-07:00')."
        },
        "timeMax": {
          "type": "string",
          "format": "date-time",
          "description": "End date/time for events (ISO 8601 format)."
        },
        "keywords": {
          "type": "string",
          "description": "Keywords to search within event summaries or descriptions."
        },
        "maxResults": {
          "type": "integer",
          "description": "Maximum number of events to retrieve (e.g., 5). It defaults to a system-defined maximum if not specified."
        }
      }
    }
  },
  {
    "name": "contacts_search",
    "description": "Searches the user's Google Contacts for individuals based on name or email. Useful for identifying contacts relevant to a task or communication.",
    "parameters": {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "description": "Name or email to search for in contacts."
        },
        "maxResults": {
          "type": "integer",
          "description": "Maximum number of contacts to retrieve (e.g., 5). It defaults to a system-defined maximum if not specified."
        }
      }
    }
  },
  {
    "name": "photos_search_media",
    "description": "Searches the user's Google Photos library for media based on keywords or date ranges. Use for integrating visual context into AI analysis or tasks.",
    "parameters": {
      "type": "object",
      "properties": {
        "keywords": {
          "type": "string",
          "description": "Keywords to search within photo descriptions or tags."
        },
        "startDate": {
          "type": "string",
          "format": "date",
          "description": "Start date for media search (YYYY-MM-DD)."
        },
        "endDate": {
          "type": "string",
          "format": "date",
          "description": "End date for media search (YYYY-MM-DD)."
        },
        "maxResults": {
          "type": "integer",
          "description": "Maximum number of media items to retrieve (e.g., 5). It defaults to a system-defined maximum if not specified."
        }
      }
    }
  }
]