Aller directement à la fin des métadonnées
Aller au début des métadonnées
Draft Specification

This is a draft specification. We are actively soliciting community feedback prior to finalizing the specifications on or around December 7. Please review this document carefully and post feedback and questions as comments on this page. This document reflects feedback and suggestions from many folks in the CiviCRM and Drupal communities. We'd like to especially acknowledge Jeff Porter of The Foundation for Prader-Willi Research, and Dan Robinson of CivicActions for their extensive contributions.

Phase 1 Scope / Assumptions

CiviEvent Phase 1 will support the following functionality:

  • Implement core Event and Participant classes (see schema below).
  • Event "wizard" to create events and online event information and registration pages.
  • Events can be "public" or "private".
  • Upcoming "public" events can be published as an iCal formatted feed.
  • Online event registration forms for both free and paid events.
  • Events can be copied (however, automatically recurring events will not be supported in phase 1).
  • Define one or multiple fee levels with "labels" for paid events (e.g. "Student Admission", "Tier One Seating", etc.).
  • Event location mapping.
  • Define and track participant statuses (e.g. Registered, Attended, No-show, Cancelled).
  • Define and assign participant roles (e.g. Attendee, Volunteer, Host, Speaker, etc.).
  • Define custom fields to extend the core Event and Participant classes. Custom fields are available for import, export, online and offline Event Registration.
  • Event registration pages can be extended with "Profiles" to collect participant roles, custom event and participant info or other contact info.
  • Customizable email confirmation for online registrations (with optional cc: or bcc: to host).
  • Option to enforce maximum number of participants - with a customized message to be presented when event is full.
  • Dashboard to display current event registration status to end-users.
  • Basic Event participant Search/Listings (search and list contacts by event, registration status, participation status and role).
  • Batch update grid to update participant statuses (e.g. record attendance or no-show, add notes, etc.).
  • Import and Export Participant records.
  • Record an Activity History record for event registration, cancellation (and participation, if tracked). This data is then available in the consolidated contact "view". (Activity History display includes drill-down to Event details.)
  • APIs to create, update or delete Events and Participants.
  • Event creation and modification is limited to users with "administer CiviCRM" and "access CiviEvent" permissions.
  • Access control for private event registration pages. (tentatively included)

The following features are NOT part of phase 1:

  • Event creation moderation/approval and delegation of event management for specific event(s) to specific individuals.
  • Moderation/approval of public event participants.
  • Multi-session / nested events (e.g. conferences where user signs up for specific sessions).
  • Built-in bulk communications, including broadcast emails to invitee lists, invite to response tracking, sending event updates to participants, etc. However, sites that have CiviMail installed and running will be able to use CiviMail broadcast email, open-tracking and forwarding tools to send invites and communicate with registered participants.
  • Automatically recurring events. However a "Copy Event" action will be provided.
  • Public Event Finder (search) form. However, APIs will be available to construct search forms and event locations can inlcude postal codes and geocode data (lat and long).
  • Specific screens for Volunteer Management. However, a "Volunteer" role will be defined and custom fields can be defined to collect / store additional volunteer-related info.
  • Event revenue / expense tracking or reporting. We are thinking this functionality belongs at a "Campaign" or "Project" level - implementation TBD.

You can post your organizations Phase 2 requirements here.

Menu / User Interface Elements

Phase 1 UI will include an Event Information page, Online Event Registration form and processing sequence, a CiviEvent Menu with component dashboard, participant Search, and wizard to Import event participants, and administration interfaces to create events and configure online event information and registration pages.

Event Administration

These functions are accessed via a new set of icons in a CiviEvent section of the CiviCRM Admin control panel.

Manage Events

This page lists all current and upcoming events (where End Date is greater than or equal to current date + 1 month) sorted by Start Date DESCENDING. Page includes a link to ">> Show Past Events" - which requeries and displays all Events. (Selector-style paging is provided when number of events exceeds "rows per page").

  • Place link to create new events above the listings table: >> New Event
  • Listing columns:
    • Event (title), Location (city, state), Public?, Dates (start/end), Enabled, Actions
  • Actions = Edit, View, Copy, Disable, Delete.

New Event Wizard / Edit Event

New events are created using a wizard with the steps (screens) shown below. Existing Events are edited by accessing each of the screens from an "Edit Event" menu (this page is a listing of links to each screen - using the same format as the existing "Configure Contribution Page". The steps / screens for creating and editing an event are listed below.

Event Information and Settings

Contains the following fields (refer to schema below for properties and required vs. optional rules)

  • Title
  • Event Summary
  • Full Description
  • Public?
  • Start Date / Time (with date-picker)
  • End Date / Time (with date-picker)
  • Max Number of Participants
    • (if set) Event Full Text

Event Location

  • Location Name
  • Address Block
  • Contact Email
  • Contact Phone # 1
  • Contact Phone # 2

Event Fees

Contains the following fields (refer to schema above for properties and required vs. optional rules)

  • Paid Event (yes / no)
  • If yes, select Contribution Type
  • If yes, provide matrix to set fee labels, amounts, and default (same as for Contribution Page >> Amounts)

Online Registration

  • Allow Online Registration?
    If enabled:
  • Registration Link Text (text for link to Event Registration form / processing sequence - default is "Register Now")
  • Registration Screen:
    • Registration Intro
    • Registration Footer
    • Custom Fields (group 1) - select a profile to collect contact and participant info.
    • Custom Fields (group 2) - select a second profile to collect contact and participant info.
      NOTE: If this is a fee-based event AND the configured payment service requires collection of billing information - then the second profile is rendered BELOW the billing information block.
  • Confirmation Screen:
    • Title
    • Intro Text (large textarea - 6 rows)
    • Footer Text
  • Send Confirmation Email? (radio yes/no). If yes:
    • Text (small textarea - 2 rows)
    • CC Confirmation To
    • BCC Confirmation To

Copy Event Action

If the user selects Copy (row-level action) from Manage Events, they are taken to a "task" screen which prompts for "Title for Copied Event". Default is existing Event Title. If the click "Continue" - insert a complete copy of the civicrm_event record and the following related records: civicrm_event_page (if one exists for source object), civicrm_custom_option records, uf_join records.

Event Type, Participant Status, and Participant Role

CiviEvent will include a set of default event types (Conference, Dinner, Concert, Tournament), participant statuses (Registered, Cancelled, Attended, No-show), as well as a set of default participant roles (Attendee, Host, Volunteer, Speaker). These control panel items will provide listings and add / edit screens to for the status and role values. Note that the 'Registered' and 'Cancelled' values for participant status will be reserved (can not be modified) - as they are used by the online registration processing logic.

Online Event Registration

Registration Screens

Online event registration will follow a similar flow to online contributions. The primary difference is that users can optionally be directed to a "built-in" Event Information screen prior to the Registration form.

1. Event Information

This is a read-only screen which includes the event title, location (with conditional map block), description, start and end dates and any custom fields (label + value) defined for the event. Depending on the event settings (civicrm_event.is_online_register = TRUE) - a prominent link to the actual Event Registration page is included. If maximum number of participants is set and has been met - then the Event Full message will be displayed below the title. NOTE: This page is available to display event information regardless of whether Online Registration is enabled or not for an event.

2. Event Registration (input form)

Includes title, registration intro message, radio button group to select fee level (if applicable), profile 1 (if applicable), billing block (if applicable), profile 2, and footer message.

3. Confirm Registration

User reviews their registration info (and billing information if applicable).

4. Registration Completed / Thank-you

Displays confirmation title and text as well as registration info (and payment info if applicable).

Registration Processing

Execute the following steps for each SUCCESSFULLY completed online registration:

  • If we have a contact handle (e.g. registration by logged in user), update contact fields as applicable
  • If we don't have a contact handle, check for matching contact record (based on configured duplicate match rules)
    • Insert new contact if no match
    • Else update existing contact
  • Insert Participant record. Set role_id = the participant_role option_value where is_default is true. Set status_id = 1 (s/b reserved id for "Registered")
  • Insert Contribution record if this is a paid event
  • Insert Activity History record
    • entity_table = civicrm_contact
    • entity_id = contact_id
    • activity_type = 'Event Registration'
    • module = CiviEvent
    • callback = (function to display Participant details)
    • activity_id = PK of new Participant record
    • activity_date = current date/time
    • activity_summary = "$event.title - $event.start_date ($participant.role if assigned)"
      EXAMPLES: "Holiday Concert - Dec 12, 2006 (Volunteer)"
  • Generate and send confirmation email (if enabled for this Event). For paid events, this email includes contribution receipt data as generated for "regular" contributions (e.g. Amount, Trxn ID, etc.)

CiviEvent Menu Items

  • CiviEvent Dashboard (default page for the CiviEvent menu)
  • Find Participants
  • Import Participants
  • CiviEvent Administration (CiviEvent section of CiviCRM Administration control panel)
    • Manage Events
    • Participant Status
    • Participant Roles

Find Participants

The CiviEvent search component is available as a separate search form from this menu AND integrated into Advanced Search. Users can search on the following criteria:

  • Contact Name (partial or full)
  • Event Name (using inline auto-complete via dojo ComboBox widget)
  • Event Date : From / To
  • Participant Status: (multi-select checkbox group)

Results (listings) are sortable by each column and include:

  • Name (link to Contact Summary)
  • Event (link to display of "Event Information" page - see below)
  • Fee Level
  • Event Date(s) (Start date/time + line break + End date/time)
  • Participant Status (Status + line break + (Participant Record Last Modified Date))

The following tasks (bulk operations) are supported for search results:

  • Create Smart Group
  • Export
  • Batch Update via Profile
  • Cancel Registration
  • Print

Individual row-level actions are: View, Edit, Cancel, Delete (depending on permissions)

Export Participants

For phase 1 we will have a 'standard' export which will output the following data:

  • Event data: Event ID, Event Name, Event Start, Event End
  • Contact data: Contact ID, Contact name fields (first, middle, last), Primary Location fields (address, email phone)
  • Participant data: all core and custom Participant fields

Batch Update via Profile

Profiles which contain only Participant fields (core and custom) will be available for batch update via a grid form. The functionality is analogous to the Batch Update for Contributions implemented in v1.6 - with the following modifications:

  • Contact Name AND Event Name are presented as read-only data in columns 1 and 2 of the grid.

Import Participants

  • Phase 1 import supports import of Participant data for existing contact records only. Core and custom participant fields are mapped (same flow as current Contact Import Wizard).
  • Import REQUIRES that incoming rows include either the CiviCRM contact_id (primary key) of the participant or email address / name values to match on.

Add / Edit / View Event Registration

New event registrations (civicrm_participant records) can be created manually (offline) for a selected contact from a Contact Summary >> Events tab. Existing event registrations can also be viewed and/or edited (cancelled or modified) depending on permissions.

  • The add/edit screen presents a form for each core Participant field plus any defined custom fields for Participants. Event selection drop-down should display Event Title and Start Date as recurring events may have the same title. By default, only current/future active events are displayed - but there should be a link to "Select Past Events". Since custom fields are linked dynamically by participant role, the Participant Role field should be placed second in the form (immediately after selecting the "Event") with an onchange event to load the applicable custom fields.
  • When an event registration is added or a participant status is modified (e.g. Cancelled, Attended, etc.), a corresponding Activity History record should be inserted (see online registration example below).

CiviEvent Access Control

For Phase 1, we will add the following access control permissions which can be assigned to Roles as needed:

  • access CiviEvent (global access to CiviEvent menus)
  • edit event participants (CRUD access to Participant records)
  • view event participants (read-only access to participant records, includes search and export)

Contact access permissions will intersect with these permissions. So, if user A only has permission to'view contacts in New York Members' group - and they are granted 'view event participants' - they would only see event registrations for contacts in the NY Members group.

Users with access CiviEvent AND administer CiviCRM permissions will be able to Manage Events (CRUD access to Event and related records)

Classes and Schema

Event (civicrm_event)

We will store the following properties for each Event. Note that Location info for an Event is stored in a joined civicrm_location record (and associated address, phone, email records).

  • id : int(10) unsigned NOT NULL auto_increment COMMENT 'Event ID',
  • domain_id : int(10) unsigned NOT NULL default '0' COMMENT 'Event belongs to which Domain?',
  • title : varchar(255) default NULL COMMENT 'Event Title (e.g. Fall Fundraiser Dinner)',
  • summary : text COMMENT 'Brief summary of event. Text and html allowed. Displayed on Event Registration form and can be used on other CMS pages which need an event summary.',
  • description : text COMMENT 'Full description of event. Text and html allowed. Displayed on built-in Event Information screens.',
  • event_type_id : int(10) unsigned NOT NULL default 0 COMMENT 'Event Type ID. Implicit FK to civicrm_option_value where option_group = event_type.',
  • is_public : tinyint(4) NOT NULL default '1' COMMENT 'Public events will be included in the iCal feeds. Access to private event information may be limited using ACLs.',
  • start_date : datetime NOT NULL COMMENT 'Date and time that event starts.',
  • end_date : datetime COMMENT 'Date and time that event ends. May be NULL if no defined end date/time',
  • is_online_registration : tinyint(4) default '1' COMMENT 'If true, include registration link on Event Info page.',
  • registration_link_text : varchar(255) default 'Register Now' COMMENT 'Text for link to Event Registration form whiich is displayed on Event Information screen when is_online_registration is true.',
  • max_participants : int(10) unsigned default NULL COMMENT 'Maximum number of registered participants to allow. After max is reached, a custom Event Full message is displayed. If NULL, allow unlimited number of participants.',
  • event_full_text : text COMMENT 'Message to display on Event Information page and INSTEAD OF Event Registration form if maximum participants are signed up. Can include email address / info about getting on a waiting list, etc. Text and html allowed.',
  • is_monetary : tinyint(4) default '0' COMMENT 'Is this a PAID event? If true, one or more fee amounts must be set and a Payment Processor must be configured for Online Event Registration.',
  • contribution_type_id : int(10) unsigned NOT NULL default '0' COMMENT 'Contribution type assigned to paid event registrations for this event. Required if is_monetary is true.',
  • is_map : tinyint(4) default '0' COMMENT 'Include a map block on the Event Information page when geocode info is available and a mapping provider has been specified?',
  • is_active : tinyint(4) default '0' COMMENT 'Is this Event enabled or disabled / cancelled?',

Online Event Registration (civicrm_event_page)

This class stores properties related to the Online Registration process. For now, there will be a 1 : 1 relationship between Event and Event Page. The Event Page record is only created if online registration is enabled for an event. NOTE: During implementation we may determine that the existing ContributionPage object should be used to store this data as much of it is analogous.

  • id : int(10) unsigned NOT NULL auto_increment COMMENT 'Event Page ID',
  • event_id : int(10) unsigned NOT NULL COMMENT 'Event which this page belongs to.',
  • intro_text : text COMMENT 'Introductory message for Event Registration page. Text and html allowed. Displayed at the top of Event Registration form.',
  • footer_text : text COMMENT 'Footer message for Event Registration page. Text and html allowed. Displayed at the bottom of Event Registration form.',
  • confirm_title varchar(255) default NULL COMMENT 'Title for Confirmation page.',
  • confirm_text : text COMMENT 'Introductory message for Event Registration page. Text and html allowed. Displayed at the top of Event Registration form.',
  • confirm_footer_text : text COMMENT 'Footer message for Event Registration page. Text and html allowed. Displayed at the bottom of Event Registration form.',
  • is_email_confirm : tinyint(4) default '1' COMMENT 'If true, confirmation is automatically emailed to contact on successful registration.',
  • confirm_email_text : text COMMENT 'text to include above standard event info on confirmation email. emails are text-only, so do not allow html for now',
  • confirm_from_name : varchar(255) COMMENT 'FROM email name used for confirmation emails.',
  • confirm_from_email : varchar(255) COMMENT 'FROM email address used for confirmation emails.',
  • cc_confirm : varchar(255) COMMENT 'comma-separated list of email addresses to cc each time a confirmation is sent',
  • bcc_confirm : varchar(255) COMMENT 'comma-separated list of email addresses to bcc each time a confirmation is sent',

Event Locations (civicrm_location...)

Location info for an Event is stored in a joined civicrm_location record (and associated address, phone, email records). Constraints and usage:

  • The UI will support ONE location per event (is_primary is TRUE)
  • The UI will support ONE address, ONE email address and TWO phone numbers for the event location.
  • A reserved location_type_id ('Event') will be automatically assigned to Event locations.
  • Users may optionally populate a Location Name (location_name) while entering the Event location info (e.g. 'Civic Auditorium', 'Grouse Hall', etc.).

Participants (civicrm_participant)

Each contact registered for an event is represented by a Participant record.

  • id : int(10) unsigned NOT NULL auto_increment COMMENT 'Participant Id',
  • contact_id : int(10) unsigned NOT NULL default '0' COMMENT 'FK to Contact ID',
  • event_id : int(10) unsigned NOT NULL default '0' COMMENT 'FK to Event ID',
  • status_id : int(10) unsigned NOT NULL default '1' COMMENT 'Participant status ID. Implicit FK to civicrm_option_value where option_group = participant_status. Default of 1 should map to status = Registered.',
  • role_id : int(10) unsigned NULL default NULL COMMENT 'Participant role ID. Implicit FK to civicrm_option_value where option_group = participant_role.',
  • register_date : datetime default NULL COMMENT 'When did contact register for event?',
  • source : varchar(128) default NULL COMMENT 'Source of this event registration.',
  • event_level : varchar(255) default NULL COMMENT 'Populate with the label (text) associated with a fee level for paid events with multiple levels. Note that we store the label value rather than an FK as the label stored in custom_option may change, but we don't want that to change the label in place at time of this registration.',

Fee Levels (civicrm_custom_option)

Fee levels for paid events are stored as civicrm_custom_option records with entity_table = civicrm_event_page (this is the same storage mechanism as we use for contribution pages).

Participant Statuses (civicrm_option_group / civicrm_option_value)

Statuses will be stored in the existing option_group / option_value tables. Option group = participant_status. Default statuses are loaded by civicrm_data. Registered and Cancelled statuses are "reserved".

Participant Roles (civicrm_option_group / civicrm_option_value)

Roles will be stored in the existing option_group / option_value tables. Option group = participant_role. Default roles are loaded by civicrm_data.

Participant Payments (civicrm_participant_payment)

A participant payment record is generated for each online paid registration. This record links the participant record to a contribution record.

  • id : int(10) unsigned NOT NULL auto_increment COMMENT 'Participant Payment Id',
  • participant_id : int(10) unsigned NOT NULL COMMENT 'Participant Id (FK)',
  • payment_entity_table : varchar(128) NOT NULL COMMENT 'Table being referenced for payment entity (expected usage is civicrm_contribution).',
  • payment_entity_id : int(10) unsigned NOT NULL COMMENT 'FK to table with payment record (e.g.',

Participant Notes (civicrm_note)

Participant records may be linked to one or more notes - stored in the existing civicrm_note table (entity_table = 'civicrm_participant').

Logging for Event and Participant Creation and Modification (civicrm_log) (tentative)

Extend current logging logic to insert a log entry when an Event is created or modified AND when a Participant is created or modified. This will give us the ability to keep track of who made changes to Event info, and track changes in Participant status (e.g. Jane Doe registered on 12/15 and cancelled on 12/22). NOTE: If this is implemented, AND we use the 'data' column to encode data modification(s), then it might make sense to eliminate the register_date column in civicrm_participant.

Profiles for Event Registration Pages

Profiles are linked to Event Registration pages using the existing civicrm_uf_join table (this is the same mechanism currently used to link profiles to Online Contribution pages).

Custom Data Enhancements

Custom Data Groups will now be able to 'extend' Event or Participant (in addition to existing options to extend Contact, Individual....Location...). For Participant, a custom data group can be linked dynamically based on Participant Role (e.g. you can extend " — Any --" participant role, or user can select a Participant role to extend, e.g. "Volunteer" or "Speaker" role. For Event, a custom data group can be linked dynamically based on Event Type (e.g. you can extend "- Any --" event, or you can extend a specific type of event, e.g. "Concert").


  • Online events are "attended" by people in different time-zones. What additional support is needed for time-zones?
  • Aucun
  1. Nov 27, 2006

    Thom K dit :

    Is it possible to have automatic calendar feeds of events?  Maybe this is what iCal does with VEVENT?

    For example, if you have a national group using CiviEvent and then a bunch of local groups under the national group also using CiviEvent, can there be a sort of RSS equivalent feed of events from the local to the national calendar.  The purpose of this would be so that people finding the national page can locate events near them from a central place.

    1. Nov 28, 2006

      Thom... Each instance of CiviCRM w/ CiviEvent will publish an iCal formatted feed with public event information. So if the national site is configured with a module / tool that can subscribe to multiple iCal feeds and aggregate them - that should take care of this requirement. If you have or can research info on such tools - please post that info back here.

  2. Nov 27, 2006

    Thom K dit :

    Additional Event Fields for Discussion

    Event_Type - A field that has defineable categories like meeting, rally, house party, precinct walking, volunteer opportunity (where everyone is a volunteer like going to a soup kitchen), concert, movie, you get the picture.

    Directions - As someone who rides public transportation, it would be great if organizers were prodded to add directions.  It's great when they say what bus or train stops are close to the event location.  Major roads from the north/south and east/west is also helpful for auto owners.  Parking locations.

     Accessability - Is it accessable for the physically disabled.  Is there sign language interpretation. 

     Language - Will the event be in Spanish, English, or other language. Is interpretation available.

    1. Nov 28, 2006

      We'll add the Event_Type property - and add support for defining Custom Fields for Events based on the Event_Type. This means you can define custom fields used for "Concerts" vs. custom fields used for "House Parties".

      I'm not sure what functionality you would want relative to specifying Event Type - but hopefully this moves in that direction.

      With regard to the other fields, these can be defined in your installation as custom fields for Event, OR this information can be added in the Event Description - which allows HTML formatting. We think this provides needed flexibility for both defining and displaying the Event information.

  3. Nov 27, 2006

    john edstrom dit :

    It would help if attachments were allowed.  E.g. PDFs of schedules, presentation abstracts, list of things to bring or material to read before coming.  Etc.

    Maybe I'm misinterpreting something, but I think it would be a mistake to exclude moderation/approval of participants in phase one.  If participant roles include Attendee, Host, Speaker, etc., there has to be some way to enforce that only the host  has the Host role and only invited speakers have the Speaker role.

    1. Nov 28, 2006

      John... You will be able to define custom fields of type "file" for Events - and these can then be populated with attachments which will be rendered as links when the event is displayed. Of course you could also embed links to these files in the Event Description.

      With regard to roles and moderation...The way we are looking at this is that Role selection will NOT be exposed automatically in the online registration form (although folks can choose to include it by putting it in a Profile). Online registrants will be automatically assigned to a configurable "default" role (set to "Attendee" - but can be changed by via admin UI). Since "special" roles like HOST and SPEAKER aren't assigned to lots of folks, we felt that this could happen in the "back office". So an authorized person would access those special particpants and set or update their roles.

  4. Dec 02, 2006

    Wish List: Civicrm 1.7

    Is there any way to configure repetitive events. We are using civicrm in our Alumni community Herer are some feature wishlist:

    1. Repetitive events: configure such events

    2. Repetitiv events :Use the Profile -> Birthday of members to create a Birthday event, again repetative with an option to remind other members via an email. Display either to the group or to the Public.

    3. Profile form at : Our list of groups is large and growing. Would like to see a drop down list of groups.

    4.  Same as above but an option to choose a drop down instead of a multiple choice box/buttons  as in Alumni Profile->Alumni Type and Alumni Profile->House

    5. Groups: we have organic groups and civicrm groups -> better  functionility or convergence of the two so that I do not need to have both in myprofile form

    6. Most webhosting companies offer unlimited email addresses.Create a lifetime email address based on profile at the time of "creating a new account" In our context (say) this is basically a forwarding mechanism to my real email address which cannot be viewed by others if they wish to contact me or withinmyprofile.

  5. Dec 03, 2006

    CiviEvent (CiviCRM 1.7) Request/Ideas

    1 - Event ticket ideas.
    1a - Discount for early purchase
    1b - Max tik count for each type of ticket(max for single purchase/per person, and avail for all at event-like inventory)
    1c - Diff levels of tickets (Ex. Seminar / Seminar +Lunch or maybe seat types Front row/reserved/general/standing room)
    1d - Allow single registration to reserve/purchase multiple tickets (Ex purchaser +1) If possible allow the single registration to also include their guests names (needed for admission control in case they don't all arrive together)
    1e - Seat assignment (probably for later round of CiviEvent)
    1f - Maybe allow an added donation field along with ticket purchase, Just in case they'd like to give more than the required amount for the event.
    1g - participant approval for restricted (invite only) events - For later version of CiviEvent
    1h - preference for returning participants - For later version of CiviEvent

    2 - Duplicate(CC or BCC) conf e-mail(listed feature and we need it) Just want to make sure that it is configurable for each event and not a single global. We do multiple events in conjunction with other organizations and need to keep them up to date with registration.

    3 - Would love repeating events but the 'Copy Event' function will keep us happy for starters. I know we can't have everything in round one or it would take for ever to get done (sourire)

    4 - for participant statuses I'd like to add the status 'Expressed interest' They may want to attend but have not confirmed/paid yet. Even better(maybe round 2) we could have configurable 'participant statuses'

    5 - CiviEvent will include a set of default event types - by phrasing, implication is that we can create more reusable event type. Will the custom fields be just for a single event or will the custom fields be attached to the general event type?

    I know some of the things mentioned can't happen in round one, but I wanted to express interest in the feature just in case, and for long term planning.

  6. Dec 07, 2006

    Before selecting Joomla I researched 192 applications and did a feature audit. It is quite long so you may want to delete this but here are the features that are commenly found in commercial Event tools:


    Resources and Assignments


    view availability in programs

    create recurring events

    Provide meal options

    Approve an Event

    Create complex events with multiple tracks, activities, times, locations, prerequisite sessions, choose only one activity from a list, mutually exclusive

    create a group of events

    Reuse past event data to generate an new event

    process cancellations

    Conditional branching, allow users different registration paths depending specific information

    identify and eliminate duplicate bookings

    validate participation information like email

    Participant can change their registration online

    Define the capacity of an event and stop registering when cap is reached

    On-line registration forms automatically generated

    Allow participants to register online for sub-activities within an event

    Allow participants to register online for activity tracks within an event

    Verify registering participant against an invitee list

    Sell additional product and services through the registration

    group registration

    sold out and waitlist


    collect expressions of interest

    allow individuals to schedule a time slot with an individual or an event

    allow individuals to choose from several rooms

    Automatically assign people to specific appointments

    Track meetings between individuals

    create an online form

    Birthday/anniversary report

    print membership cards

    member search

    approval process for membership

    multiple clubs or organizations managed by one central group

    individual and group memberships

    Track member profile

    Manage subgroups within a club

    Multiple membership levels

    password protect or public member directory

    log communication with club subsidiaries

    Members only area for web site, customized by member profile

    Create an online member directory with photos and or logos

    Custom requirements for membership

    Club registration with multiple levels of approval (i.e., president, advisors, staff, administrator)

    Email lists to communicate with club members

    levels of membership

    User polls

    Survey analysis tools

    multiple types of questions

    branching logic for surveys

    Send surveys prior to an event to gather participant information

    Import an email list to send surveys to

    Send participants a survey after an event and report the survey response data

    automatically Assign participants to specific housing accommodation units based on criteria like gender

    Track participant progress through certification or educational processes

    Create certification and education programs

    Create class schedules

    Create syllabi

    Create exams and provide automatic test scoring

    equipment checkout follow-up

    Accept volunteers

    assign them to a program

    Track their experiences

    follow-up on their satisfaction

    Communication with them

    Photo gallery

    Comprehensive correspondence to speakers, chairpersons, reviewers and authors 

    Review process management 

    Detailed lists including program, audio visual and room setup 

    Abstract submission via the internet 

    Speakers checklist 

    Stores biographical details of a speaker in HTML format 

    Preview publication for layout, should look nice

    select and notify authors

    Submit to judges without revealing authors

    Manage revision process

    Allow for online editing

    Manage multiple authors

    Stores multiple authors for one paper 

    Product catalog

    Shopping cart

    Customer info (order history, personalized portal)

    Online market place

    Online store

    Inventory management and order fulfillment

    Schedule resources to be available

    schedule room setups

    Schedule rooms

    location management

    floor plans for exhibits

    online booths

    Exhibition can be run in booth or space mode 

    Booth details are stored, including its dimension, sides and fascia name 

    Sophisticated appointment scheduling system 

    Exhibition stand inventory management system 

    Comprehensive exhibitor checklist 

    Work flow manager

    lead track manager

    Travel manager

    Manage FAQ

    Subscription and publication management

    Help desk/feedback functionality

    Place restrictions on which seating or other aspects of the set up

    create floor plans for rooms

    create Seating assignments for participants

    table tents

    automatically create name badges

    modify look and feel of name badges

    edit individual name badges before printing

    Print name badges for participants

    email reminders to team members of specific to do tasks

    Reuse data that automatically adjusts due dates by new date of the event

    assign tasks to specific volunteers

    Provide reminders

    Customer menu generation

    grocery list

    create certificates

    Track speaker requirements and audio visual needs for sessions

    Task lists

    Track event content providers like djs or speakers

    activity plan

    task schedules

    Manage staff and their responsibilities relative to an event

    Create materials list

    Risk management program

    accept volunteer registration


    event tools for working with vendors

    online contests

    Create brochures

    manage campaigns and advertising

    Email marketing segmented by participant profile

    Allow participants to send invitations to their friends

    Email marketing

    Email marketing that includes link to calendar

    till software

    Send a bill to a participant

    Print online receipts

    credit card refunds can be processed on-line

    use multiple merchant accounts

    Multiple levels of discounts

    Give discounts though promotional codes or other means

    Collect credit card payments online for an event using service provider's merchant account

    Collect credit card payments online for an event using our merchant account

    Variable pricing based on event packages or groups/collections

    Variable pricing for events based based on time (early-bird) or category (guest, spouse)

    manage cash receipts


    powerful filters

    Create custom reports

    Select reports from templates

    View reports as html in a browser

    download reports for view in excel

    Create graphs and charts from data

    Set goals and measure activities against goals

    create reports across organizations/division score cards

    Track participants between events

    Dashboard reporting environment for quick reporting of key metrics

    track payments from participants

    Track payment to suppliers

    create audit trails

    create invoices, receipts

    Budgeting reports: anticipated and actual

    Detailed financial reports

    html emails automatically convert to plain text when required

    opt out options for all email communication

    mail merge

    mailing labels

    alert participants to similar events 

    Copy email information to event coordinator

    Import email lists

    Email communication look and feel can be customized with logos etc.

    Email communication with specific participants, tracking communication

    Email communication with all participants in an event

    Email communication with groups of participants, tracking communication

    Email confirmations with event specific messages

    log communication


    Can up load files and "add to my calendar" through the calendar

    calendar can filter on category and sub categories

    an embed calendar anywhere in my web site

    can load calendar in preset filter

    Can generate an online calendar of all events: daily, monthly, yearly or list view

    Discussion boards

    duplicate record checking

    Collect data and demographics about an individual and keep and use it between event

    Ability to track notes on an individual

    manage participant follow-up

    Create participant records for groups

    Participant can update their information online

    Create participant records for individuals

    Create and manage detailed profiles for participant names, contact info and customer fields, track all interaction with a participant

    Create an online participant directory of contact information

    Track participant attendance and no shows on past events

    Create/manage groups

    Call center/feedback tool/

    View events participant has attended

    format for print, should look nice

    Archive and reuse

    Allow for online editing


    Manage revisions

    Be connected to the planning process

    Levels of approval


    spell checking

    Article/news page

    Version rollback on content managed pages

    Can embed registration pages within a frame on our website

    Content manager for other pages, unrelated to the event

    Able to customize look and feel to match our organizations style guide

    Informational web pages about the event

    Easy to use for non technical people

    Ability to search events by attribute or keyword

    Able to handle multiple organizations serving the same populations, sharing participant data, but separate event management permissions

    Read only views for non administrators to see aspects of an event or program but not make changes

    use our web domain

    Do you work with any third party applications to provide additional features

    pda integration

    Online client and admin pages

    share information between all modules

    Track/log/audit changes to the system and revert to historical views

    Integration with Crystal Reports

    ADA compliant pages

    one click integration with MS Word and Excel

    Be able to archive data for future reference

    allow power users to input html to customize forms and pages

    simple wizard like interface

    Associate a category with an event for filtering

    Associate a status with an event for filtering

    enter off line data

    Can use our logins

    Import and export data from other systems about participants

    interface with existing data

    Can host on our surveys

    Security management

    Manage the database

    Hosted service so that there are no technology requirements other than an internet browser

    Automatic imports of participant data

    Integrated with Outlook/exchange

    Internal messaging system

    Price per transaction

    Yearly costs

    Cost up front

    Charge for credit card transactions

    location of the company

    service contract model and availability

    Number of years in business

    Number of clients

    Client references

    Size of clients

    Currently provide this as a feature

    Currently provide a work around for this feature

    Will be providing this feature in the next 2 months

    Provides that feature through a third party add on

    Can provide this feature at the request of the client as part of the natural upgrade cycle

    Can provide this feature at the request of the client for an additional charge

    This is a worthless feature for us

    This is an interesting feature we might pursue

    This feature would be useful for what we do

    This feature is critical to what we do

    All features use server/browser technology for clients and administration

    Must register applicants for events

    Must have multiple levels/siblings for administration with access controls

    Must be able to provide reports at various administrative levels

    Appointment manager - match people to people or events based on schedule and criteria

    Provide a free trial period

    Robust participant profile tracking events attended and all communication

    Create online forms to collect data

    Club/group/association manager


    Customize look and feel of web pages

    Event planning tools - Budgets, to-do lists, activity plan

    Email communication with participants

    Email blasting

    Online payment

    Thorough on-line help

    Intuitive interface designed for non technical people

    Historical archiving of events and data for future retrieval

    Ability to use historical data to create new events

    ability to record Assessment metrics 

    1. Dec 26, 2006

      I realized after I posted above that I had included a lot of cells that were actually notes to myself. I appologize. I don't dare post a different version because it will be so long. Let me know if you have any questions.

  7. Jan 06, 2007

    CA dit :

    Okay... I think I got to this a good bit late, but if you're still soliciting feedback, it would be great if events could be nested / hierarchized. Basically, we have courses which consist of 5 classes. It would be great if people could register for the CERT Class - Fall 2007 and also be registered into all of its children cousres (Personal Prep, SAR, Triage, Ext-Care, HazMat, Fire Supp., etc). I think that might be a little complicated for phase 1, but perhaps later on (sourire)?

    1. Jan 07, 2007

      Cole - We are open to adding support for nested/multi-session/complex events in a subsequent phase (but you're correct in thinking it's out of scope for phase 1). We've started a wiki page to collect requirements for the next phase. You can help ensure that your requirements are met by posting a detailed description of how you want hierarchical events to work (the above is a bit high-level for implementation (sourire) ).

  8. Oct 20, 2007

    Joe K. dit :

    Why is the registrant able to edit their email on the online registration page?  Any edit here affects the registrants global profile.  I don't think a registrant should be able to make profile changes from an online registration form.  Am I missing something here? 

    1. Oct 22, 2007

      Joe - Can you post this question to the community forum so we can discuss and hear other's opinions:


Creative Commons License
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-Share Alike 3.0 United States Licence.