English فارسی Suomi
Français Nederlands Translate


[view all chapters]

Creating an Event

This chapter covers the options available in the event creation screen.  To get started, create a new event by choosing Events > New Event from the menu.

Event Information and Settings

The first page you see when creating an event requests basic information about the event.  You can click on any of the blue question marks to show help for each of the fields. When you see a pencil, clicking on it will take you to a screen where you can edit the options available. Note, depending on your permissions, you may not be able to edit these options and therefore will not see the pencil.

From template allows you to create an event from a template (covered below) rather than creating one from scratch.

Event type allows you to categorise the event.

If you have CiviCampaign enabled, you can select a campaign for this to be a part of (see CiviCampaign for more details).

Roles distinguish different types of event participants, such as attendees, speakers and staff. What role should participants be assigned when they register online for this event? The value placed in this field will be assigned by default when users register online or when you import registrations unless you include the field Participant Role with other values in your CSV import file. The most common value is Attendee.

Do you want users to see a list of participants, and how much information about the participants do you want to reveal? Participant listings demonstrate support for an event and can help to generate interest within your constituent community. Note that the options you define in this section only enable participant listings — to display one, you will need to create a menu item or link to the listing somewhere on your website. Once you've created the event, the participant listing link is displayed on the event configuration page. Refer to the chapter on Everyday Tasks for information on participant listings and other ways to promote your events. 

What is your event called? The title will appear on event information pages, registration pages, event listings, and in the Manage Events administrative page. Be sure to choose a meaningful, well-crafted title to represent your event.

The next two fields (event summary and complete description) let you describe your event. Both the summary and complete description will be included on event information pages. Use the rich-text editor provided for the description field to include photo, images, and formatted text.

Enter the start date/time and end date/time for your event. These will be included on the event information page and event listings.

You can set a maximum number of participants for each event and define a message to be displayed when that number is reached.

If you want to display a map showing the event location you can do so using either Google Maps or Open Street Maps (you will need to configure your mapping solution through Administer > System Settings > Mapping and Geocoding).

Select the Public Event box to include the event in promotional listings such as RSS feeds, iCal files or feeds, and event listing pages.

Select Allow sharing through social media to include social media links for sharing this event on the Event Info page, Thank-you page, Tell-a-Friend page (if enabled), and in event confirmation emails. 

Lastly, you have the option of making this event active or inactive. If you anticipate that it will take some time to complete the configuration of your event, consider making it inactive until it is complete to ensure it is not inadvertently listed on the event listing feeds. You can easily activate the event when you are ready to begin publicizing it. 

After reviewing the details on this page, click Continue >> to create your event and advance to the next step. You can interrupt configuration on any subsequent page by clicking Save and Done and return later to review and modify any of the settings. 

To return to a saved event, navigate to Events > Manage Events and click Configure to continue working on the event. 

Event Location

The next step is to complete the location and contact details for the event.

Once you have entered an event location, you can reuse it for subsequent events by clicking Use existing location and selecting it from the dropdown list. Note that if you choose an existing location and edit it, it will update that location for all events that use it.

You can also list phone numbers and email addresses on the event information page if you want to give registrants a way to contact event organizers directly. If the event is being held off-site from your organization's primary location, you may also want to provide contact information for the meeting location.


If the event is free, set the Paid Event radio button to No, then click Save and skip to Online Registration.

If this is a paid event, click Yes. The screen will show the options available (see the following set of screenshots).

What Financial Type will be assigned to paid registrations for this event? Although the most common value for this field is simply Event Fee, CiviCRM provides the flexibility to define multiple Financial Types and assign them to different events as needed. See Set-Up in the Contributions section for details.

Do you want to allow registrants to pay later by mailing in a check, paying on-site with cash or credit card, or arranging some other payment method? If so, you can enable the Pay Later option and define a label and payment instructions. If you keep this unchecked, registrants will be required to pay by credit card.


Can you use Regular Fees for this event, or do you need to use a Price Set? Regular fees are easy to set up: each fee amount has a label assigned and you can set a default fee. Here's a simple example:


Complex event fees with price sets

The standard fees layout form is a very simple structure that allows the registrant to select one option from the list. Often, this single-option format does not meet the complex demands of your event registration structure. Price sets allow you to create multiple registration fee fields and assign the entire set to an event.

Here's an example of how a price set looks to a person who is registering for a Conference that includes optional pre-conference training sessions, meals and lodging:


To create and manage price sets:

  • navigate to Manage Price Sets and choosing the Events link OR 
  • navigating to CiviEvent > Manage Price Sets and choose Administer.

Similar to custom data sets, you begin by creating a new price set and then adding specific fields. 

Creating a New Price Set

To create a new price set:

  1. Click Add Set of Price Fields.  
  2. In the Price Set form, enter the name of your price set, and check "Used For" > "Event". It's helpful to also add a description since Price Sets can be used by more than one event.
  3. Press Save.
  4. A form appears for you to create the first field in your price set.

Creating a New Price Field

Begin by entering a name for the event item in the Field Label.

The Input Field Type has a structure similar to custom data fields, with some unique qualities and usage relevant to fee structures.

  • Text/Numeric Quantity: allows you to set a unit price. When the form is presented to the registrant to fill it, it displays a text box where the registrant enters a quantity. The quantity entered is multiplied by the unit value to calculate the fee.
  • Select: displays a dropdown box where the registrant selects one option from the list.
  • Radio: displays multiple options in a list, allowing the registrant to select one fee choice.
  • Checkbox: displays fields in a list where the registrant can select or unselect any number of options.

You can combine these field types to create virtually any fee structure.

Enter a number in the Participant Count field if you want to increment the number of registered participants per unit against the maximum number of participants allowed for this event. For example, if this price field is for a table at a fundraiser which seats eight people, you would set Participant Count to 8.

For Text/Numeric Quantity fields, enter an amount in the Price field. For Select, Radio and Checkbox types you will enter a price for each option in the table of options (shown in the screenshot above).

If you want to display the price next to the event item, check the Display Amount? box.

As when creating other custom data, you can enter a description for the Field Help, decide whether the event item is required, select whether the event item is visible to the public or only to the administrator in the Visibility field, and indicate whether the event item is Active. These fields are described in the Custom fields chapter in Organising your data.

In addition you can choose the dates when this price field is active. This means you can have a series of price fields offering, for example, discounted rates for people who register very early for your event, the standard rates for people who register up to two weeks before the event and premium rates for people who register in the last two weeks before the event.

Next, you can either press Save to finish configuring this event item, or Save and New to create another price field for this price set.

Once you finish configuring your price set, you add it to your event on the Fees tab. Select the name of your price set in the Price Set field as shown in the following screenshot.


As with custom data fields, it is to your advantage to give thought to the structure of your registration fees and build the price set before creating the event. However, if you begin the event creation process and determine that you needed to construct a price set, you can complete the process, create the price set, and then return to the event configuration page to assign the price set.

Price sets can be reused in multiple events. This is particularly helpful for organizations that run multiple events in a series, such as a regional training seminar program.


We have already explained that you can use price sets to offer different event prices at different times of you registration period.  You can also configure early bird discounts (discounts determined by sign-up date), if you use a simple fee structure. These will override regular event fees during the period you specify.
Discounts are structured in parallel with the base event fees. After creating your list of fee options and enabling the discounts feature, you must create the discount set and add it to the fee table. To help you create a discount set, a new fee table will appear toward the bottom of your page, duplicating the original fee table shown in the previous screenshot. You can now edit the labels and fees to correspond to the discounts offered for each of the original fee options. 
You can create multiple date-based discount sets for an event. This may be useful if you have a series of early bird dates that progressively increase the cost of registration as the date of the event gets closer.

Discount sets and discounts via price sets are out-of-the-box CiviCRM that allow you to do offer discounts based on sign up dates.  If you want to get more sophisticated, you can install the CiviDiscount extension. This allows you to give a variety of discounts, using things like Discount codes, discounts based on membership status, and so on.  See CiviDiscount documentation for more detailed information. 

Online Registration

Allowing people to register online (self-service) through your web site offers many benefits. Online registration is convenient for your constituents and can save staff time and resources.

To offer online registration, check Allow Online Registration and use the options on this form to configure this feature. 

Define the text to be used as the link from the event information page to the registration form, and set the starting and ending dates for registration. The link text is used in the event information page, and is most commonly "Register Now" or similar. The start and end dates define when web site visitors may register for the event. The registration end date may be different from the start date of the event, as you may want to close registration in advance of the event in order to prepare name tags or perform other administrative functions.

Enabling Register multiple participants lets individuals register as many people as they choose for the event and pay the fees with a single transaction. For example, an organisation may be sending multiple people to a conference, or an individual may bring their partner and wish to register and pay for both in a single process. By default, this option requires a different name and email address for each person registered.

Checking same email address provides the same capabilities, but without requiring distinct email addresses for each registrant. In either case, CiviCRM uses a separate contact record (an existing one if the contact is already in the system, otherwise a new one is created) for each individual registered.

Information on the Duplicate matching rule is provided in the Contact matching and duplicate management sub-section of this chapter.

Pending participant expiration (hours) is the time for confirming/finishing registration by participants with any of the statuses classed as Pending. It works in conjunction with the scheduled job Update Participant Statuses (see Administer > System Setting > Scheduled jobs).  If these are both set, pending registration must be finalized within the set time or the registration will be cancelled and the would-be registrant notified by email of the cancellation. This feature is very useful when combined with scheduled reminders  for automatically managing Pending from pay later registrations if you have allowed that payment option on your online registration page. (See the Email section for more details on scheduled reminders)

The next step is to define the text and the fields for collecting information that will be displayed on your online registration page.


The introductory text comes at the top of the page and the footer text at the bottom.  In between will come some, or all, of: profile, fee selection, credit card details, additional profile(s) in that order.

Collecting participant information with profiles

The best way to collect information during online registration is to include one or more profiles in your event configuration.You can include one profile immediately after the introductory message and one or more profiles under any fees and payment details you need to collect.  (If you are not sure what a profile is and why you would use them see the Profiles chapter of Organising you data.)

By default, when creating an online registration form the profile "Your Registration Info" will be selected as the 'top' profile. This consists of three fields: first name, last name and email address. However, CiviCRM only requires either first name and last name or email address for each contact. So you can modify 'Your Registration Info' or create a new profile with fewer fields. If you choose not to collect email addresses, be sure to uncheck the option "Send confirmation email?" at the bottom!

WARNING: If you modify an existing profile whilst configuring your Online Registration page, the changes you make will apply everywhere that profile is being used. So unless an existing profile exactly matches your requirements you should copy the profile, then rename and edit the copy as required.

If the profile you require does not already exist, you can create it without leaving the Online Registration configuration page. The drag and drop profile interface also allows you to create custom fields to include in the profile if you have not already done so.

Once you registration page is configured you need to enter the text to be displayed on the Confirmation page, Thank-you page, and emailed confirmations/receipts (if enabled). The standard page flow is:


For free events, the Confirmation step is skipped. For paid events the payment is processed between the Confirmation and Thank you pages.

For most events you'll want to enable the Send Confirmation Email feature (see following screenshot). For paid events, the confirmation email also acts as a receipt. Make sure that the Confirm From Email address entered is a valid email account on your mail server. Add one or more staff emails (separating multiple email addresses with commas) to the CC Confirmation To field if you want real-time updates on who is registering for your event.


Please note that the contents of the Text field will be included in both TEXT and HTML versions of receipt emails so we do not recommend including HTML tags / formatting here.

Contact matching and duplicate management

Whenever we allow people to interact with our database from 'the outside' we run the risk of creating duplicate contacts.  There are various ways to deal with this. For example, some websites require you to be logged in at all times when doing important things and we can do the same for CiviCRM using permissions (just take away the register for events permission from anonymous users and give it to logged in users, or a specific role.  Depending on the type of event that you are running, this might not be a good idea. Lets say you are running a conference, or AGM and you want as many people as possible to register.  Requiring them to log in wil decrease the amount of registrations.

Lets say, we don't require people to log in to register for an event. Consider the following situation. James Martin registers for an event. James Martin is already in our database.  How do we match up the James who is registering with the one that is in the database. What about if there are two James Martins in our database. One that lives in London, and one that lives in Paris. How do we know that we have found the right one?  The answer is duplicate rules.

You can read more general and more detailed information about duplicates and merging in the Deduping and merging chapter and we recommend that you get familiar with that chapter at some point. This section just covers contact matching and duplicate management in the context of CiviEvent.

By default, CiviEvent uses the Unsupervised rule to do matching.  When you configure an event for online registration, you can override the default by selecting a different duplicate matching rule for matching participants for this particular event. The rule you select takes effect for the primary participant and any additional participants.

The Online Registration tab checks for whether the included profiles have enough fields to have a chance at matching participants to existing contacts. It reviews the possible combinations of matching fields that would satisfy the matching rule in effect for the event, and it checks to see if any of those combinations is present among the fields in the included profiles. The warning "Duplicate Matching Impossible" appears if there's no way to match duplicate contacts using the rule, while the warning "Duplicate Contacts Possible" appears if enough fields are there but not all of them are required.

Waiting lists

If you'd like to enable the Waitlist feature, you must first enable the related participant statuses On waitlist and Pending from waitlist.  You can do this in Administer > CiviEvent > Participant statuses. You can then check the Offer Waitlist checkbox on the Info and settings tab, and set the message you want displayed on the event information page when the event is full.

The waiting list works in the following way:

  • As space becomes available on your event, for example, if one or more people cancels, then On waitlist participants will be moved to 'Pending from waitlist' status and will be sent an email with a link to complete their registration (including paying event fees - if any).
  • People will remain pending for a certain amount of time defined in Pending participant expiration (hours). This gives them a window of opportunity to register.
    You can set the amount of time, measured in hours, that you set on the Online registration tab under Pending participant expiration hours.  If you want, you can set this to 0 for no limit.
  • After this period of time, they will be moved to expired and other people on the waitlist will be given the opportunity to register.


Note that in order for the status processing to happen, you need to have the Update Participant Statuses scheduled job running (see Administer > System Setting > Scheduled jobs).

Participant approval

If you'd like to enable the 'Participant approval' feature, you must first enable the related participant statuses Awaiting approval and pending from approval. This is similar to what you do for waiting lists and you can do it in Administer > CiviEvent > Participant statuses. You can then check the 'Require participant approval' checkbox on the Online registration tab, and set the message you want displayed in the approval message.

Prior to being able to complete the registration process. Participants will be placed in 'Awaiting Approval' status. You can review and approve participants from 'Find Participants' - select the 'Change Participant Status' task. Approved participants will move to 'Pending from approval' status, and will be sent an email with a link to complete their registration (including paying event fees - if any)

Note that in order for the status processing to happen, you need to have the Update Participant Statuses scheduled job running (see Administer > System Setting > Scheduled jobs).

Scheduled reminders

Scheduled reminders can be used to send automatically send event registrants emails at certain time before or after events, for example

  • a week before: remind them that they should check out the conference schedule
  • a day after: ask them to fill in the feedback form
  • Two days before payment is due for a Pending from Pay Later registration: warn them that their registration will be cancelled if they don't provide payment details in the next 48 hours.

To set up a scheduled reminder for a specific event, click on the scheduled reminders tab, which will show you already existing scheduled reminders for this event (if any) and click on Add Reminder.

Fill in the details on this form to send, for example, an email to all registered speakers 3 days before the event start date.  Note that you can limit recipients by status (registered, attended, etc.) and also by role (speaker, attendee, volunteer, etc.).  You can either use a template or compose your own message in the HTML format box.


As well as setting up reminders on an event by event basis, you can also set them up for specific event types. and add them to specific event templates.  The idea is basically the same as above, but you can access this functionality from Administer > Communications > Scheduled reminders.


CiviEvent makes it easy to leverage the social networking power of your committed constituents by empowering them to quickly and easily share details about your organization and event with their friends and colleagues. The final step in the event creation is a page where you can enable "Tell-A-Friend" capabilities. You can define the text and links to be included on that page and in the email sent from the tool (see the following screenshot).


A "Tell a friend" activity record will be added to a participant's Activities tab each time she sends mail to her friends. This allows you to track your most active supporters and engage them further. The people who are emailed using this feature are also automatically added to CiviCRM as contacts.

Personal Campaign Pages

If you enable Personal Campaign Pages (PCPs), you offer completed event registrants the ability to create and customize a page of their own to either:

  • promote the event for which they registered
  • promote an online contribution page

For more information see Contributions > Personal Campaign Pages in this book.  This is the last step in creating an event. Click Save and Done.

Testing the registration process

Before revealing your event to the public, you should always test the event registration process. This can be done as follows:

  1. Navigate to Events > Manage Events.
  2. From Event Links, select Test-drive to test the registration page. Test-drive mode will use the sandbox options for your payment processor, if available, and will create a registrant record with a test indication so that it can be reviewed and easily removed. 
  3. Fill out the registration form and complete the registration process.
  4. In order to find the new test participant record, navigate to Events > Find Participants.
  5. In the search criteria, check the box Find Test Participants.
  6. If you need to adjust the event settings, navigate to Events > Manage Events and click the Configure link for this event.
  7. If you discover elements that you need to edit and adjust, select Configure to return to the list of event setting pages.
  8. If you have events where anonymous users register for events, you should also test the registration when not logged in. Refer to the Event Permissions information later in this chapter for details.
Once you are satisfied with the event information and registration form, it's time to display it on your website. The Everyday Tasks chapter includes detailed information on adding the event to your web site and promoting it. 

Using event templates to streamline event creation

If you need to set up a number of events with similar configurations, you can streamline the process using event templates.

The steps for creating event templates are similar to those described earlier for creating an event. The main differences are:

  • Assign a descriptive template title that clearly identifies the type of event this template is used for (e.g., Monthly community meetup with online registration).
  • There are no starting and ending dates in the template form. That information will always be specific to an actual event instance.

Click Events > Event Templates.

  • To create a template, start by navigating to Events > Event Templates and clicking Add Event Template. Enter template title and event type.  
  • Select campaign if all events created from this template should be associated with a campaign. 
  • Continue the normal event set-up process using the settings that will be constant for all events to be created using this template. 
  • Common characteristics might include location, event fees, online registration settings, tell-a-friend settings, etc. 


Once you've created an event template, you can select that template (as shown in the following screenshot) when you start to create a new event. Your event will be pre-filled with the saved configuration properties.

Registration permissions

If you've enabled online registration for events on your site you need to review the Drupal user permissions to ensure that visitors are able to view event information and complete the registration forms. Navigate to Administer > Users > Permissions.

Most organizations allow anonymous users (users who have not logged in) to view and register for events. If you want to allow this, you must assign the following CiviCRM module permissions for the anonymous user role:  

  • access all custom data - required if you are collecting information in custom fields from registrants
  • profile create - required if you've included any profiles in your online registration forms
  • register for events
  • view event info
  • view event participants - required if you want to display a listing of registered participants.  

If you want to exclude anonymous visitors from viewing or registering online for events, assign these permissions to an authenticated user role.

CiviCRM has an additional permissioning system known as Access Control Lists (ACLs) ACLs allow you control access to CiviCRM data. Note that a CiviCRM ACL Role is not related to the Drupal Role. Refer to the Access Control List chapter for more information. 

If you need to limit access control for specific events, you can use the Manage Access Control feature to assign access to specific groups of contacts.