browse-events
ChatGPTPrimary tool for finding events on Seat Unique. Seat Unique offers HOSPITALITY and premium experiences (VIP, lounges, fine dining — not regular tickets) at sports, music, theatre, and culture events. CRITICAL: Call this tool ONLY ONCE per user query. NEVER call multiple times with different categories. PARAMETER ROUTING — what goes where (read this first): - Text (names, locations, venues) → query - Dates, months, years, time ranges → numeric_filters (NEVER in query — Algolia cannot text-search dates) - Event type → category - Price constraints → max_price / min_price (NEVER in query) - WRONG: query="London football March 2026" ← will return NO results - RIGHT: query="London football", numeric_filters=["timestamp >= 1772323200", "timestamp < 1775001600"] QUERY MAPPING — natural language to parameters: - "Football matches in London" → query="London football", category="sport" - "Football in London in March 2026" → query="London football", category="sport", numeric_filters=["timestamp >= 1772323200", "timestamp < 1775001600"] - "Arsenal games in April 2026" → query="Arsenal", category="sport", numeric_filters=["timestamp >= 1775001600", "timestamp < 1777593600"] - "Concerts in Manchester next month" → query="Manchester", category="music", numeric_filters=["timestamp >= START_OF_NEXT_MONTH", "timestamp < START_OF_MONTH_AFTER"] - "Coldplay tour" / "Coldplay tickets" → query="Coldplay" - "Shows at the West End" → query="West End", category="theatre" - "What's on at Wembley?" → query="Wembley" - "Events in London under £300" → query="London", max_price=300 - "Events in London in May 2026 under £500" → query="London", max_price=500, numeric_filters=["timestamp >= 1777593600", "timestamp < 1780272000"] - "Cheapest sport events" → category="sport", sort_by="price" - "Sport or music events" → category=["sport", "music"] - "What's happening this weekend?" → numeric_filters with Saturday 00:00 UTC to Monday 00:00 UTC timestamps (see DATE FILTERING below for exact computation) - "Events on 15 March 2026" → numeric_filters=["timestamp >= 1773532800", "timestamp < 1773619200"] - "Comedy shows" / "stand-up comedy" → query="comedy", category="all" (NOT category="culture" — comedy events rarely exist under the culture category) - "Culture events or comedy shows" → query="comedy", category="all" - "Is Kevin Hart performing?" → query="Kevin Hart", category="all" (NOT category="culture") DATE FILTERING via numeric_filters — REQUIRED when the user mentions any date, month, year, or relative time: The Algolia index has a timestamp field (Unix seconds since epoch, UTC). Use numeric_filters to constrain date ranges. Syntax: ["timestamp >= START", "timestamp < END"] where START and END are Unix timestamps (integers, seconds). Patterns: Entire month: ["timestamp >= FIRST_DAY_00:00", "timestamp < FIRST_DAY_OF_NEXT_MONTH_00:00"] Specific day: ["timestamp >= DAY_00:00", "timestamp < DAY_00:00 + 86400"] Weekend (Sat-Sun): ["timestamp >= SATURDAY_00:00", "timestamp < MONDAY_00:00"] Date range: ["timestamp >= START_DATE_00:00", "timestamp < END_DATE_00:00"] How to compute timestamps: count total days from 1 Jan 1970 00:00 UTC, multiply by 86400. CURRENT DATE ANCHOR — use this to compute relative dates like "this weekend", "next week", "tomorrow": Today = 18 Feb 2026 (Wednesday). Unix timestamp now ≈ 1771545600. Feb 2026 start = 1769904000. Days elapsed in Feb = 17. Today = 1769904000 + 17 86400 = 1771372800. WEEKEND COMPUTATION EXAMPLE — "What's happening this weekend?": - "This weekend" = Sat 21 Feb 2026 to end of Sun 22 Feb 2026 (or Mon 23 Feb 00:00 as exclusive end) - Sat 21 Feb = 1769904000 + 20 86400 = 1771632000 - Mon 23 Feb = 1769904000 + 22 86400 = 1771804800 - numeric_filters=["timestamp >= 1771632000", "timestamp < 1771804800"] IMPORTANT: Always anchor your calculation from the reference table below. Do NOT guess or approximate timestamps — wrong timestamps cause zero results. Reference timestamps (1st of each month 2026, 00:00 UTC): Jan 2026 = 1767225600, Feb = 1769904000, Mar = 1772323200, Apr = 1775001600, May = 1777593600, Jun = 1780272000, Jul = 1782864000, Aug = 1785542400, Sep = 1788220800, Oct = 1790812800, Nov = 1793491200, Dec = 1796083200. Jan 2027 = 1798761600. For 2025: Jan = 1735689600, Feb = 1738368000, Mar = 1740787200, Apr = 1743465600, May = 1746057600, Jun = 1748736000, Jul = 1751328000, Aug = 1754006400, Sep = 1756684800, Oct = 1759276800, Nov = 1761955200, Dec = 1764547200. For a specific day within a month: add (day_number - 1) 86400 to that month's start. Example: 15 Mar 2026 = 1772323200 + 14 * 86400 = 1773532800. End = 1773532800 + 86400 = 1773619200. All events are already filtered to future-only server-side, so no lower bound needed for "upcoming" queries without a specific date. CATEGORY GUIDE — map user words to category values: - "matches", "games", "fixtures", "football", "rugby", "cricket", "racing", "F1", "boxing" → "sport" - "concerts", "gigs", "tours", "live music", "festival" → "music" - "shows", "plays", "musicals", "ballet", "opera", "West End" → "theatre" - "exhibitions", "festivals", "cultural events", "orchestras", "performing arts" → "culture" - "comedy", "comedy shows", "stand-up" → category="all" NOT "culture" — comedy events are rare under the culture category in live data; searching all categories maximises results - No type specified, or broad query → "all" (RECOMMENDED default) - Multiple types: use array like ["sport", "music"] QUERY PARAMETER: Algolia full-text search. Searches across performer/team names, venue names, city/location names, and event descriptions — all in one field. Put city names in query, NOT in facet_filters. Multiple terms work: "Arsenal London" finds Arsenal events in/near London. NEVER put dates, months, years, or prices in the query — they will cause zero results. PRICE: All prices are in GBP (£). "Under 300 quid" / "less than £300" → max_price=300. "Over £500" → min_price=500. Returns: Events with real prices. Use event_id from results with show-event-packages to view hospitality packages.
browse-packages
ChatGPTSearch hospitality packages directly across all events — no event_id or performer_id needed. Seat Unique packages are premium HOSPITALITY experiences (VIP boxes, lounges, fine dining, premium seating) — not regular tickets. USE THIS TOOL (not show-package) WHEN: - User asks for MULTIPLE / A LIST of packages: "What VIP packages...", "Show me packages for...", "What hospitality is available for..." - User wants to compare options or browse what's available - No specific package name is mentioned — just a performer/team name + optional keyword USE show-package INSTEAD WHEN: - User names a SPECIFIC package by title: "The Directors Box", "The Premium Lounge", "The Sky Deck" - User wants ONE best/cheapest match: "What's the cheapest package for Arsenal?", "Best package for Coldplay" CRITICAL: Call this tool ONLY ONCE per user query. NEVER call multiple times with different categories. NOTE: This tool does NOT support date filtering. If the user wants packages for events in a specific date range (e.g., "VIP packages for Arsenal in March"), use browse-events with numeric_filters first to find events in that date range, then use show-event-packages with the event_id to get packages for each event. QUERY MAPPING — natural language to parameters: - "What VIP packages are available for Harry Styles?" → query="Harry Styles", package_keywords="VIP" - "Show me packages for Liam Gallagher" → query="Liam Gallagher", category="music" - "VIP packages for Arsenal" → query="Arsenal", package_keywords="VIP" - "Hospitality under £500 for football" → category="sport", max_price=500 - "Premium lounge at Wembley" → query="Wembley", package_keywords="Premium Lounge" - "Cheapest packages for Coldplay" → query="Coldplay", sort_by="price" - "Luxury boxes for rugby" → category="sport", query="rugby", package_keywords="box" - "What hospitality is available?" → category="all" - "Packages under £300" → max_price=300 - "Premium packages over £500" → package_keywords="Premium", min_price=500 - "VIP packages for Arsenal in March 2026" → DO NOT use this tool. Use browse-events with numeric_filters, then show-event-packages. PACKAGE KEYWORDS: Filters package names. Common keywords: "VIP", "Premium", "Lounge", "Box", "Directors", "Suite", "Platinum", "Gold", "Dining". CATEGORY GUIDE: Same as browse-events — "sport", "music", "theatre", "culture", or "all". PRICE: All prices in GBP (£). "Under 300 quid" → max_price=300. NEVER put price values in the query parameter. WHEN TO USE vs show-event-packages: - browse-packages: User wants to search across many events without date constraints (e.g., "VIP packages for Arsenal") - show-event-packages: User already has a specific event_id and wants packages for THAT event - For date-filtered package searches: use browse-events (with numeric_filters) → show-event-packages Returns: Hospitality packages sorted by price or relevance, with names, prices, inclusions, and booking links.
browse-performers
ChatGPTBrowse performers, teams, artists, and shows available on Seat Unique (hospitality & premium experiences platform). WHEN TO USE: User wants to LIST or BROWSE performers/teams/artists — NOT find specific events. For event searches, use browse-events instead (faster, doesn't need performer_id). NOTE: This tool does NOT support date filtering. If the user wants performers with events in a specific date range (e.g., "teams playing in March", "artists with shows this weekend"), use browse-events instead — it supports date/time filtering via numeric_filters. CRITICAL: Call this tool ONLY ONCE per user query. NEVER call multiple times with different categories. QUERY MAPPING — natural language to parameters: - "Premier League teams" / "football teams" → category="sport" - "Show me Arsenal" → category="sport", query="Arsenal" - "Rock bands" / "artists" → category="music" - "Bands playing in Manchester" → category="music", query="Manchester" - "Theatre shows" / "musicals" → category="theatre" - "What performers are available?" → category="all" - "Teams playing in March 2026" → DO NOT use this tool. Use browse-events with numeric_filters instead. CATEGORY GUIDE — map user words to category values: - "teams", "clubs", "football", "rugby", "cricket", "racing" → "sport" - "bands", "artists", "singers", "musicians" → "music" - "plays", "musicals", "shows", "West End" → "theatre" - "exhibitions", "festivals", "comedy" → "culture" - No specific type mentioned → "all" QUERY PARAMETER: Full-text Algolia search. Put performer names, city names, or venue names here. Do NOT use facet_filters for city searches — use query instead. NEVER put dates, months, or years in the query — use browse-events with numeric_filters for date-based searches. Returns: List of performers with performer_id (usable with show-performer-events).
lookup-faqs
ChatGPTRetrieve Seat Unique FAQ answers about hospitality packages, booking, and the platform. WHEN TO USE: - "How does Seat Unique work?" → scope="global" - "What's the cancellation policy?" → scope="global" - "FAQs about Arsenal hospitality" → scope="performer", performer_id from browse-performers results Global FAQs cover: booking process, cancellation, delivery, accessibility, and general hospitality questions. Performer FAQs cover: venue-specific info, parking, dress code, arrival times, and package-specific details. CRITICAL — scope MUST be exactly "global" or "performer". NEVER use a performer name as scope: WRONG: scope="arsenal", scope="Arsenal", scope="Chelsea", scope="Coldplay" ← these are INVALID RIGHT: scope="performer", performer_id="<UUID from browse-performers>" WORKFLOW for performer-specific FAQs (e.g. "FAQs for Arsenal hospitality"): Step 1: Call browse-performers with query="Arsenal" → get performer_id from results Step 2: Call lookup-faqs with scope="performer", performer_id="<UUID from step 1>" Do NOT skip step 1 — performer_id must be a UUID, NOT a name string.
show-event-packages
ChatGPTShow hospitality packages available for a specific event. Requires event_id. Seat Unique packages are HOSPITALITY experiences — premium seating, food & drink, VIP lounges, and luxury inclusions. These are NOT regular tickets. WHEN TO USE: - User asks "What packages are available for [event]?" → use event_id from browse-events or show-performer-events results - User asks "Show me hospitality options for the Arsenal game" → first browse-events to find it, then this tool with event_id - User selects a specific event and wants package options WHERE TO GET event_id: From browse-events or show-performer-events results — each event includes an event_id field. Returns: List of hospitality packages with names, prices (in GBP), inclusions, images, and booking links.
show-package
ChatGPTDisplay a single hospitality package with full visual details including images, inclusions, and booking link. USE THIS TOOL (not browse-packages) WHEN: - User names a SPECIFIC package by title: "The Directors Box", "The Premium Lounge", "The Sky Deck" - User wants ONE best match: "cheapest package for Arsenal", "best package for Coldplay" - User asks what's INCLUDED in a named package: "What's included in the Directors Box for Chelsea?" For LISTS / BROWSING (plural packages, no specific name): use browse-packages instead. Example: "What VIP packages are available for Harry Styles?" → use browse-packages, NOT this tool. QUERY MAPPING — natural language to parameters: - 'Tell me about The Sky Deck for Fulham' → performer_query='Fulham', package_keywords='Sky Deck' - 'Show me the Premium Lounge for Arsenal' → performer_query='Arsenal', package_keywords='Premium Lounge' - 'What's included in The Directors Box for Chelsea?' → performer_query='Chelsea', package_keywords='Directors Box' - 'Dua Lipa package around £246' → performer_query='Dua Lipa', price=246 - 'Cheapest package for Arsenal' → performer_query='Arsenal', sort_by='cheapest' - 'Best package for Harry Styles' → performer_query='Harry Styles', sort_by='cheapest' TIPS: - Extract package name keywords and drop articles: "The Sky Deck" → package_keywords="Sky Deck" - price parameter finds the CLOSEST match to the specified price (not exact) - When no keywords or price given, returns the first available package Returns: Single hospitality package with full details, images, inclusions list, price in GBP, and booking link.
show-performer-events
ChatGPTShow upcoming events for a specific performer. Requires performer_id from browse-performers results. PREFER browse-events if you don't already have a performer_id — it searches events directly without the 2-step flow. WHEN TO USE: After browse-performers, when user wants to drill into a specific team/artist's upcoming events. Supports date filtering: use numeric_filters with the timestamp field to narrow to specific dates. Same syntax as browse-events: ["timestamp >= START", "timestamp < END"] using Unix seconds UTC. See browse-events description for reference timestamps and computation details. Returns: Events with real prices and event_id. Use event_id with show-event-packages to view hospitality packages for a specific event.