Is there any extension or any other way to use regular contacts as event locations? This has been asked on several occasions in the forum, and the response has been "well, at least you can re-use event locations."

We have a membership organization of local businesses, and a monthly meeting that rotates among the board members' offices. So, being able to look up a member's office and select it as the venue would be far easier than re-entering the data. Moreover, the event location fields are limited— email address but no website?— whereas the contact records have custom fields for things like parking, security, and public transit information associated with the location.

By tying an eveny to a venue rather than a location, I wonder if it might be easier to record hosting an event as an activity for the organization as well.

Since event locations are stored in the civicrm.address table already (though they are inaccessible from any other part of the system), I wonder how difficult it would be to refactor events to use contact addresses. But leaving that aside, is there at least a workaround? I suppose we could use a contact reference custom field, but that would require a good deal of customization to display more than the contact name, I would think.

  • Did anything come from this? Feb 13, 2017 at 4:17

2 Answers 2


It would require a change to the core function CRM_Event_BAO_Event::getLocationEvent(). Right now, it only pulls addresses that are tied to existing events. Theoretically, the schema supports addresses that are tied to contacts also being tied to events, but there's no way to set the contact ID on an event address or vice-versa.

In one sense, it would be nice to have an extension or core feature that is an address manager for merging addresses. (In civicrm.org, there got to be two locations for the trainings we have at AGH Strategies: one on Colorado Avenue and one on Colorado Ave. NW. There's no way to merge them with each other, let alone with the record for the actual company.) Alternatively, it would be nice to have a third option besides "Create new location" and "Use existing location"--a "use contact's location" option would be basically what you need.

However, it does introduce one potential question: what if the contact moves? If the AGH Strategies office moves to 14th Street, let's say, we'd edit our contact record at civicrm.org and the same address ID would now read 14th St. NW. If those event records were tied to our address rather than a separate one, they'd suddenly say that trainings from last year were held on 14th Street rather than Colorado Avenue. Now, the location of past events isn't usually a concern, but it might be one for some folks, maybe to demonstrate all the places they've had events or to research areas that are underserved. Tying event locations to contacts would, at the very least, introduce this problem.


It would be a simple extension to write, and would likely make a small group of users quite happy.

Just fyi, it's currently possible to add a custom field to addresses, so you could create a contact reference field limited to the contacts who host as a custom address field. It would appear on the event location form if you do. Then you will likely want to write jQuery so that when a contact is selected in that field on the Manage Event Location tab the values in its work address fields get copied into the event location fields. The use of the event location fields would be the same as before. However, you would need to suppress that contact reference field from appearing anywhere else. It's a bit quick and dirty. A more elegant approach would be to use jQuery to insert a contact reference field just into that form, with same copying done on select of a contact.

In case this helps, we have made it so you can use the supplementary address 1 and 2 fields on event location, and have values displayed in the event location option list. In our case this meant that different conference room for monthly lunches in the same hotel could be selected. In yours, you might be able to use those fields to display info like parking instructions, etc.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.