Можно действительно получать события, используя поиск по местоположению
Для этого вам понадобятся координаты долготы и широты местоположения, которое вы хотите найти, и access_token с разрешением user_events (думаю, вы также можете использовать публичный поиск)
Вот пример FQL, как вы можете получить все события поблизости от местоположения. (поиск по вашим событиям и событиям ваших друзей):
$lat = "40";
$long = "30";
// using offset gives us a "square" on the map from where to search the events
$offset = 0.4;
$events = 'SELECT pic_big, name, venue, location, start_time, eid FROM event WHERE eid IN (SELECT eid FROM event_member WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND start_time > '. $created_time .' OR uid = me()) AND start_time > '. $created_time .' AND venue.longitude < \''. ($long+$offset) .'\' AND venue.latitude < \''. ($lat+$offset) .'\' AND venue.longitude > \''. ($long-$offset) .'\' AND venue.latitude > \''. ($lat-$offset) .'\' ORDER BY start_time ASC '. $limit;
Сам трюк лежит в месте использования. Долгота и место использования широты. Чтобы получать события из города, просто получите координаты города и настройте смещение в соответствии с вашими потребностями.
Если вы не знаете, как использовать FQL, посмотрите Facebook PHP SDK