One of the activities of our organization is providing workshops etc. to the public. In order to facilitate all processes involved I have setup a coupe of events in CiviCRM. Each event represents a certain course, training or workshop. Next I have added participants (contacts) to those events with the role of Attendee. The event/workshop also requires one or more trainers so I added trainers (contacts) with the role of Trainer to the event/workshop. A requirement is that we have an overview/summary of each event showing who is involved in a certain event/workshop (e.g. who is/are the trainer(s), people taking care of logistics, participants, etc).

We would like to track the training time spent for each trainer and also to be able to generate a report listing e.g. the training name, date, training time spent and also the total training time for each trainer per (selectable) period (e.g. from/to date). What would be the best way to record the training times for each trainer? Could or should this be done in the event itself (e.g. custom fields) or should we add activities to each assigned trainer and aggregate activity durations? Any other solutions to accomplish this?

Many thanks in advance for your kind attention.

3 Answers 3


I would recommend you to create custom field associated along with participant record - where you can also specify the Event type

Once you have created the custom field as per your requirement then try to create a new profile for the participant custom fields

Then you can add the created profile against Event

Also while creating the custom field make it searchable so you can view the column in the report

enter image description here

I guess this helps !!!

  • Many thanks for your answer. I am not sure if I understand you correctly. Sorry, but I am still pretty new to CiviCRM and haven't grasped full understanding of how all functionality works and links together.
    – TonV
    Commented May 14, 2016 at 8:10
  • What I think you are telling me is following: 1. Create custom field set Administer -> Customize Data and Screens -> Custom Fields -> Add Set of Custom Fields Associate custom fields with Participant record: Used For: Participants Participants (Event Name) Participants (Event Type) Participants (Role) I am not sure wich option to select and what the difference of those 4 options is.
    – TonV
    Commented May 14, 2016 at 8:11
  • 2. Create a new profile for custom fields from step 1 above I do not understand how I could create a profile from the newly created Custom Filed Set in step 1 3. Add created profile to Event Wouldn't know where and how to do so. I guess it should be done on the Info and Settings tab of the Event, right? However, I don't see such a possibility on that screen. When we implement the above, how would we be able to list the total time spent for each trainer on trainings in a certain time period? I really value your sharing of information. Many thanks in advance.
    – TonV
    Commented May 14, 2016 at 8:11
  • Hi @TonV - did you manage to find the way or do you need step by step process for the same ? Commented May 17, 2016 at 8:24
  • Hi @Ramesh - Haven't figured it out yet. Some extra pointers would definitely help. Thank you!
    – TonV
    Commented May 17, 2016 at 9:17

Take a look at CiviVolunteer which has options for recording time involvement. It may not suit your needs but worth understanding what it offers.


I would create custom Activities for both the trainer and participants, for example, Training- Making Sock Puppets, with the Trainer as Assigned for the Activity and the participant as With (i.e., the 'target' of the Activity). Then, every Participant in the training Event who actually attends and completes the training can be updated via Actions as having completed the Activity - depending on the person's Event role (trainer or participant).

UPDATE - There is a way to aggregate Activities - via Grouping and Sorting in Reports - using the Extended Activities report, installed using Eileen's excellent Extended Reports extension at https://github.com/eileenmcnaughton/nz.co.fuzion.extendedreport . The extension has been recently updated.

  • I think the data structure is the most ideal - but I'm not sure how you'd meet the requested reporting requirements for this with out-of-the-box Civi. I don't think you can aggregate the time spent per event if the time is stored in activities. Commented May 14, 2016 at 2:38
  • As far as I understand it would be possible to aggregate time spent stored in activities (Duration) using the Case Time Spent Report. So it would be possible to generate totals for training hours per trainer. I am not sure if it is possible to do so for Events
    – TonV
    Commented May 14, 2016 at 8:15
  • Jon you're right about Civi out of the box not doing aggregates for Activities. I do an Activity report weekly for membership signups as an Activity which I create by exporting to Excel to sort and do counts. Adding a Pivot Table type report template for Activities built into Civi would be a big plus for me. Commented May 15, 2016 at 0:56
  • See my update in the answer above. Duration (time) is a field in an Activity. However, there is not (yet) an option in Extended Activities reports to Group or Sort by Duration. Commented May 23, 2016 at 19:55

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.