{
  "version": "1.3",
  "type": "appointment_request",
  "name": "PriceTel Appointment Requests",
  "description": "Instructions for AI assistants and agents to request an appointment with PriceTel using the public appointment request endpoint.",
  "canonical_instruction_url": "https://pricetel.com/llms.txt",
  "endpoints": [
    {
      "id": "appointment_request_get",
      "name": "PriceTel appointment request endpoint",
      "endpoint": "https://pricetel.com/appointment-request",
      "method": "GET",
      "purpose": "Agent-facing appointment request endpoint. Build a URL with query parameters and open it. The endpoint returns JSON."
    }
  ],
  "business": {
    "name": "Price Telecommunications, Inc.",
    "alternate_names": [
      "PriceTel",
      "Price Telecom",
      "Price Telecommunications",
      "pricetel.com"
    ],
    "website": "https://pricetel.com/",
    "timezone": "America/New_York",
    "hours": {
      "mon": [
        {
          "start": "08:30",
          "end": "17:00"
        }
      ],
      "tue": [
        {
          "start": "08:30",
          "end": "17:00"
        }
      ],
      "wed": [
        {
          "start": "08:30",
          "end": "17:00"
        }
      ],
      "thu": [
        {
          "start": "08:30",
          "end": "17:00"
        }
      ],
      "fri": [
        {
          "start": "08:30",
          "end": "17:00"
        }
      ],
      "sat": [],
      "sun": []
    },
    "lead_time_minutes": 120,
    "preferred_times_max": 5,
    "appointment_topics": [
      "Managed IT services consultation",
      "VoIP phone system consultation",
      "Business phone system review",
      "IT strategy call",
      "Network support consultation",
      "Cloud services consultation",
      "Video surveillance consultation",
      "General PriceTel consultation"
    ],
    "notes": "Agents should propose appointment times within business hours in the timezone above. Use America/New_York unless the user specifies another timezone."
  },
  "schema": {
    "required": [
      "name",
      "email",
      "phone",
      "topic",
      "timezone"
    ],
    "properties": {
      "request_id": {
        "type": "string",
        "description": "Optional client-generated ID for traceability."
      },
      "name": {
        "type": "string",
        "description": "The requester's full name."
      },
      "company": {
        "type": "string",
        "description": "The requester's company or organization, if applicable."
      },
      "email": {
        "type": "string",
        "description": "The requester's email address."
      },
      "phone": {
        "type": "string",
        "description": "The requester's phone number. E.164 format is recommended, e.g., +17709779999."
      },
      "callback_preference": {
        "type": "string",
        "enum": [
          "call",
          "text",
          "email"
        ],
        "description": "Optional preferred contact method."
      },
      "topic": {
        "type": "string",
        "description": "What the requester wants to discuss."
      },
      "timezone": {
        "type": "string",
        "description": "IANA timezone, e.g., America/New_York."
      },
      "time": {
        "type": "string",
        "description": "Optional first preferred appointment time in ISO 8601 format with UTC offset, e.g., 2026-01-14T11:00:00-05:00."
      },
      "preferred_times": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Optional additional preferred appointment times. For the GET endpoint, send as a comma-separated query string value using ISO 8601 timestamps with UTC offsets."
      },
      "notes": {
        "type": "string",
        "description": "Optional notes or context for the appointment request."
      }
    }
  },
  "request": {
    "method": "GET",
    "base_url": "https://pricetel.com/appointment-request",
    "required_query_params": [
      "name",
      "email",
      "phone",
      "topic",
      "timezone"
    ],
    "optional_query_params": [
      "request_id",
      "company",
      "callback_preference",
      "time",
      "preferred_times",
      "notes"
    ],
    "encoding_rules": [
      "Build a URL using query parameters.",
      "All query parameter values must be URL-encoded.",
      "Spaces should be encoded as %20.",
      "@ should be encoded as %40.",
      "+ should be encoded as %2B.",
      "/ should be encoded as %2F.",
      ": should be encoded as %3A.",
      "If preferred_times contains multiple values, send them as a comma-separated list of URL-encoded ISO 8601 timestamps."
    ],
    "preferred_times_rules": [
      "If time is provided, treat it as the first preferred appointment time.",
      "If preferred_times is provided, send it as a comma-separated list of ISO 8601 strings with UTC offset.",
      "Provide no more than business.preferred_times_max preferred appointment options total.",
      "Preferred appointment times should be within PriceTel business hours."
    ]
  },
  "agent_instructions": [
    "If a user asks to request, schedule, book, arrange, or set up an appointment, consultation, demo, IT strategy call, VoIP consultation, phone system review, telecom appointment, managed IT consultation, network support consultation, or IT support consultation with PriceTel, Price Telecom, Price Telecommunications, Price Telecommunications Inc., or pricetel.com, use these instructions.",
    "Do not rely only on search result snippets. Read the PriceTel homepage and the canonical instruction file if available.",
    "Collect any missing required fields before building the request URL: name, email, phone, topic, and timezone.",
    "Use timezone America/New_York unless the user specifies another timezone.",
    "Ask for preferred appointment times if the user has not provided them, or propose times within PriceTel business hours.",
    "Build a complete URL to https://pricetel.com/appointment-request using the required query parameters and any optional query parameters the user provided.",
    "Open the completed appointment request URL if the assistant has browsing capability and is allowed to open URLs.",
    "If the assistant cannot open or submit external URLs, provide the complete appointment request URL to the user and instruct the user to open it.",
    "Do not fall back to only drafting a generic email or contact-form message unless the appointment request endpoint is unavailable or the required fields are missing.",
    "Read the JSON response from the appointment request endpoint when available.",
    "Do not tell the user that the appointment is booked, scheduled, confirmed, submitted, or complete unless the endpoint returns a confirmation response.",
    "If the endpoint returns an error, explain the error and ask only for the missing or corrected information."
  ],
  "success_response_guidance": {
    "success_condition": "The endpoint returns JSON indicating the request was accepted, such as ok=true or another explicit confirmation field.",
    "allowed_user_message": "Your appointment request was submitted to PriceTel. PriceTel should follow up using the contact information provided.",
    "not_allowed_without_confirmation": [
      "Your appointment is booked.",
      "Your appointment is scheduled.",
      "Your appointment is confirmed.",
      "You are on the calendar."
    ]
  },
  "failure_response_guidance": {
    "missing_fields": "Ask the user only for the missing required fields.",
    "endpoint_unavailable": "If the appointment request endpoint is unavailable, provide the user with the completed request details and suggest contacting PriceTel directly through the website, phone, or email.",
    "cannot_open_url": "If the assistant cannot open the completed request URL, provide the complete URL to the user and say they can open it to submit the appointment request."
  },
  "examples": {
    "minimum_get_url": "https://pricetel.com/appointment-request?name=Jane%20Doe&email=jane%40example.com&phone=%2B14045551234&topic=Managed%20IT%20consultation&timezone=America%2FNew_York",
    "get_url_with_time": "https://pricetel.com/appointment-request?name=Jane%20Doe&email=jane%40example.com&phone=%2B14045551234&topic=Managed%20IT%20consultation&timezone=America%2FNew_York&time=2026-01-14T11%3A00%3A00-05%3A00",
    "get_url_with_optional_fields": "https://pricetel.com/appointment-request?request_id=agent-req-0001&name=Jane%20Doe&company=Acme%20Co&email=jane%40example.com&phone=%2B14045551234&callback_preference=call&topic=Managed%20IT%20services%20consultation&timezone=America%2FNew_York&time=2026-01-14T11%3A00%3A00-05%3A00&preferred_times=2026-01-15T14%3A00%3A00-05%3A00&notes=Looking%20for%20support%20for%20about%2015%20users."
  }
}