Build a dated event or venue comparison from public listings. Keep ticket availability, venue visitor information, and private venue-booking availability separate; an event calendar does not establish that a venue can be hired.
Setup
Set CRAWLORA_API_KEY to your key from crawlora.net.
Run the bundled scripts/crawlora.sh from this skill directory or by absolute
path. It sends x-api-key to https://api.crawlora.net/api/v1; keep the key in
the environment. Read reference/endpoints.md for
event/city/category discovery, event details, and venue lookups.
Resolve, filter, and compare
- Establish destination, date range, interests, party age/access requirements,
and budget. Search
/ticketmaster/search-events(q, zero-basedpage,sort=dateorrelevance) or/ticketweb/search(q, one-basedpage). Filter returned dates locally where an endpoint has no date-range parameter. - For city/category browsing, use
/ticketmaster/discover-citiesor/ticketmaster/discover-categories, then the returnedcityslug/country orcategory_idin their matching event feeds. Discovery destination groupings can include surrounding municipalities; inspect actual venue locations. - Retrieve
/ticketmaster/event?id=...or/ticketweb/event?id=...for a selected event. Read the nested event object, exact status, timing, venue, age restrictions, and source URL. IDs are provider-specific. Deduplicate cross-provider events by verified performer, venue, date/time, and event type; preserve distinct performances, ticket offers, and VIP/parking add-ons. - Preserve local time and timezone. TicketWeb search times have no UTC offset;
detail can provide an offset and venue zone. Do not append
Zto a local time. Keep TBD/TBA times unknown and distinguish doors, show start, and on-sale time. - Resolve venue details and upcoming events with
/ticketmaster/venue,/ticketmaster/venue-events, or/ticketweb/venue. Artist/team attraction IDs are not venue IDs. Verify street address and public accessibility/visitor information; missing capacity or access details are unknown, not negative findings. - For TicketWeb prices, compare
sections[].prices[].totaland currency, keeping base price, fees, tier restrictions, and sale status. Do not add fees again tototalor compare one provider's base price with another's fee-inclusive total. Ticketmaster prices, when absent, remain unknown; do not invent a price range. - Recheck shortlisted events close to delivery when current availability matters. Preserve canceled/postponed/rescheduled status and collection time. A successful data response does not reserve seats or lock prices.
scripts/crawlora.sh /ticketweb/search q=comedy page=1
scripts/crawlora.sh /ticketmaster/search-events q=jazz sort=date page=0
Deliverable and bounds
Return a table/calendar with event and provider IDs, canonical links, venue/address, local start time and zone, status, applicable age/access information, dated ticket price scope, availability, and fit rationale. Group venue comparisons separately from individual event offers. Create calendar entries or buy tickets only if asked.
- TicketWeb
has_tickets=falsewith empty sections is ambiguous: free/RSVP, sold out, or access-code-gated can share this state. Cross-check explicit search availability (in_stock,sold_out,unknown) without guessing a cause. - Ticketmaster event
410means concluded/permanently removed;404means unknown. TicketWeb invalid IDs can surface as503; recheck the discovered ID before retrying. - Ticketmaster event-feed pages are 0–49; TicketWeb search pages are 1–50.
Stop at no progress, source end, or the requested date/sample bound. Back off
on
429, retry transient5xxonce, stop on401/403, and check applicationcode.