Find and consolidate publicly advertised events, optionally filtering by {date} and {city} independently. Preserve event names, performers, venues, times, source URLs, snippets, and evidence quality. Support multilingual searches, evening/night qualifiers, and exclusion terms, including searches for small or non-ticketed events.
Use Cases
Use when the caller asks what events, concerts, parties, shows, or nightlife activities are available. The caller may provide a date in natural language, a city, a country, an event category, a performer, a venue, a time qualifier such as evening/night, or terms to exclude. Search results are leads; verify important details on the linked event or venue page where possible.
Automation Flow
- Build direct Bing search URLs with URL-encoded terms; do not visit the Bing homepage or type into a search box. Include
{city}and{date}only when supplied, using the requested locale and English as appropriate. Run focused variants such as:https://www.bing.com/search?q={url-encoded-event-type}+events(add whichever location and date terms the caller supplied)https://www.bing.com/search?q={url-encoded-city}+{url-encoded-date}+eventshttps://www.bing.com/search?q=%22{url-encoded-date}%22+{url-encoded-city}+({event-type-1}+OR+{event-type-2})https://www.bing.com/search?q=%22{date-in-requested-locale}%22+{city-in-requested-locale}+{event-type}https://www.bing.com/search?q=%22{url-encoded-date}%22+{url-encoded-city}+DJ+party+Instagramhttps://www.bing.com/search?q=%22{url-encoded-date}%22+{url-encoded-city}+{venue-or-performer}+{evening-or-night-term}Omit variants requiring missing inputs. Add caller-supplied exclusions directly to the query, for example-{excluded-term}. For sparse nightlife results, combine available filters with a venue, performer, district, or event-type term. Usesetlang={language}andcc={country-code}when regional or language bias matters.
- On each loaded Bing results page, run this evaluator in the same browser call:
(() => {
const clean = s => (s || '').replace(/\s+/g, ' ').trim();
const query = new URL(location.href).searchParams.get('q') || '';
const locales = ['en', '{language}'].filter(l => {
try { return Intl.DateTimeFormat.supportedLocalesOf(l).length > 0; } catch { return false; }
});
const monthStems = [...new Set(locales.flatMap(loc => [...Array(12).keys()].map(m =>
new Intl.DateTimeFormat(loc, {month: 'long'}).format(new Date(Date.UTC(2020, m, 1))).slice(0, 4).toLowerCase()
)))];
const dateRe = new RegExp(`\\b(?:20\\d{2}[-/.]\\d{1,2}[-/.]\\d{1,2}|\\d{1,2}[-/.]\\d{1,2}[-/.]20\\d{2}|\\d{1,2}\\s+(?:${monthStems.join('|')})\\p{L}*\\s+20\\d{2})\\b`, 'giu');
const results = [...document.querySelectorAll('li.b_algo')].map((li, index) => {
const a = li.querySelector('h2 a');
const text = clean(li.innerText);
return {
rank: index + 1,
title: clean(a?.textContent),
url: a?.href || '',
snippet: clean(li.querySelector('.b_caption p, p')?.textContent),
dateMentions: text.match(dateRe) || []
};
}).filter(x => x.title || x.url || x.snippet);
return {query, sourceUrl: location.href, answerText: clean(document.querySelector('main')?.innerText).slice(0, 4000), results};
})()- Apply each supplied filter independently: if
{city}is supplied, check the location; if{date}is supplied, check the event date. Follow relevant event, venue, ticketing, or official source URLs directly and extract the visible event title, date, start time, venue, performer, price, and availability. Do not treat a search-result date as sufficient when the linked page provides a conflicting date. - If a result is an Instagram profile, use the existing Audit a Public Instagram Profile skill to inspect its public posts. For an individual post or reel, retain the visible source URL and evidence; treat profile biographies and older posts as leads rather than proof of an event.
- Normalize dates and times to the caller's timezone where known, distinguish evening events from all-day listings, and deduplicate by canonical URL, normalized event title, venue, and start date. Separate confirmed listings, probable listings supported only by snippets or social posts, recurring events, and stale or undated pages.
- Prefer official venue, organizer, ticketing, municipal, and performer sources. Preserve the exact source title, URL, date wording, and supporting snippet or page text for each material claim. If no reliable listing confirms a requested date, report the search leads and uncertainty rather than inferring that an event occurs.
Possible Friction Points
- Bing organic results are normally represented by
li.b_algo; titles are inh2, destination URLs inh2 a, and snippets commonly appear in.b_caption p. - Bing
main.innerTextcan include answer modules and unrelated context; use the structuredresultsarray for event candidates. - Date formatting varies materially by locale. The extractor builds its written-date pattern from English plus the caller's
{language}usingIntl.DateTimeFormat, matching on a four-character month stem so inflected forms such as Russianсентябряand Azerbaijanisentyabrare covered. An unsupported or unsupplied{language}falls back to English plus the numeric forms, which are locale-independent. Search both numeric and written forms. - Exact quoted dates improve precision, but event pages may use a different locale or year format; verify the linked source before treating a result as confirmed.
- Search-result exclusions such as
-{excluded-domain}, for example-iTicket, are useful optional modifiers when a ticketing domain overwhelms small or non-ticketed event results; default behavior remains unfiltered unless the caller requests an exclusion. - Search results may expose venue profiles, event aggregators, Instagram accounts, individual posts, reels, and recurring listings. A profile biography or old post is not proof that an event is scheduled for a requested date.
- Bing snippets and social captions may be stale, truncated, or generated from recurring-event pages. Record publication or posting dates when available and flag stale evidence.
- Do not guess opaque event, venue, or profile identifiers. Resolve the complete URL from Bing or the linked source before navigating.