Some History

This app was inspired by my brother in-law Rodger who works in the airline catering industry. He needed an electronic method of repeatedly time stamping a list of events or actions to both ensure that all things were catered for (pun intended), and to look at where improvements could be made in the cycle.

It is essentially a maintenance schedule checklist with task timing. It is not a standard "ToDo List" with pop up reminders and so forth - there are a plethora of such apps on the various app stores.

You can get a trial version for android on the downloads page. The trial is fully functional with the exception that sending results off of the mobile device is limited by a counter.

The intent was to sell the app to the company that Roger works for, and failing that to sell it through mobile app stores. For various reasons direct sale didn't happen, and because my location (South Africa) is not licensed by google to publish appsĀ for sale, it has mostly run out of steam. If you find any use for the app and have some $$$ to spend, please contact me.

For the technically minded the app is developed under a cross platform IDE called MoSync. This is a toolset similar to Xamarin which allows for a write once compile anywhere philosophy. It is no longer in development, however it is still available on the web, it allows me to write mobile apps in C, and (unlike Xamarin) it is free. As a consequence, EventRecord should work on an IOS device as well as Android (I have code in the app to cater for differences in the platforms), however I have neither an Apple Mac needed to compile for IOS, nor an apple device to test it on.

Below is the verbatim help documentation for the app.

EventRecord EventRecord Help


EventRecorder is an productivity management tool most useful where a list of tasks are done repetitively and where it is necessary to record or log the time each task takes.



What does it do

It is intended to record the occurrence time on a series of sequential events.

You are able to create a template list of events. You can then start an instance or run of this event list and record the time when each event starts and completes. Once all events in an instance are complete, you can export the recorded times in Excel compatible .csv format for offline analysis.

Many different templates may be created to record differing sets of events.

Many instances of a particular event list can be created, and they may be in progress simultaneously.


Preferences and setup

You should probably go here at least before you start running instances of an event list.

The most important bit here is the ability to prefix or suffix your event instance name with a date and or a time. This can save you the effort of inventing a new name for each instance of an event run - so for example, if Date suffix is turned on then each time you call an instance "Party", the instance will become Party_2017-02-14 when run on the 14th of February.

You will most likely wish to export your run results. To save you re-typing the email address(s) that you want to send results to, you may capture a default set of email address. If more than one address is desired, separate each address with a comma.

If you are lost with where to start, there is a switch that will create some example event lists for you to play with.

You can clear all run instance history. Has everything been exported?

There is also the option to completely clear all definitions, as well as active and history run instances. Please be VERY sure you want to do this!


Creating an event template

Select Definitions(Definitions) on the top bar of the application. Here you may edit an existing event template, or create a Add(new) one.

Each template must have a unique name. When Add is touched you will be prompted for the event list name. Once the name is confirmed, select your new list and edit it to add events to your list with Add.


Again each individual event in a list should have a unique name. In an event detail, the sequence and the event name are required.


You may capture a budget or "Estimated duration" for this event. This duration is in seconds, and represents how long the event is expected to take. It has no impact on the app, however it will be exported as a data item on completed run instance lists.

Most events will likely take the current time as the starting / finishing time during an instance run. However you may wish to manually enter a start / stop time for the event, and here you should check "Allow manual times".

To facilitate events that are not strictly sequential, you may define which event should be considered as the "Prior Event" to this one. The default is the event in the list before this event, however you may set the prior event to any event higher in the list. So you could set Get to party as the prior event to Leave the party which will allow you to leave the party without having drinks or talking to people.

You may define whether the event is allowed to start before the prior event is started or finished. This allows you to record things that may not happen sequentially. So for example:
You may decide that Talk to people is not dependant on Have drinks, but is dependant on Get to party. So the "Prior Event" for Talk to people should be Get to party and "Require prior event stopped" should be checked (you have to be at the party before you can talk to people).
Alternatively you could leave the prior event of Talk to people as unset (i.e. Have drinks), and check "Require prior event started" to force getting a drink before talking to anyone.

Checking "Auto stop prior event on start" will automatically set the stop time on the prior event when this event is started. Note that setting this causes "Require prior event stopped" to be ignored.

Checking "Force Stop ALL prior events on start" will automatically close any and all prior events in the list. In other words each prior event that has started but not stopped will be stopped at this events start time. Note that setting this causes "Require prior event stopped" to be ignored.

When setting up a list you may want to insert items in the middle of the event list. If however you have captured run sequences of 1, 2, 3 and etc. you don't have space to insert a sequence between 1 and 2. Here you should use the Reorder icon. This will change the list so that sequences start at 10 and increment by 10 for each event. Now you can add a sequence 5 between the first and second events.


Running an instance of an event

This is the default view for the application. If is not displayed select Setup(Instances) on the top bar of the application.

Any active or unfinished event instances that are being recorded will be listed. To start a new event instance use Add. To continue timing an active event instance touch an already highlighted event instance.

When Add is touched you will be prompted to capture the new event instance name and to select the event list template that this is an instance of. If you have checked any of the Setupsetup options to prefix / suffix the instance name with the current date and or time, this will be visible in a derived instance name shown as you type.

You can now start timing the events in the instance by touching it twice.

Events that are not yet started are shown as NotStarted. An event is started by touching it twice. If the event is defined as a manual time you will be prompted to enter a start date and time (defaulted to now). If this not a manual event, the start time will be automatically set at now. Once the event is started it will be displayed as Running.

If a started or running event is selected again, its stop time will be set, and the event will be shown as Complete. Again, if the event is defined as manual time you will be prompted to enter a completeion date and time, otherwise the completion time will be set to now.

A completed Complete event can be re-edited to alter the start time and stop time. Here the time must be manually entered nonwithstanding the settings in the event list definition. Note that no attempt is made to adjust following events in the list when a time is altered. It is thus possible that your instance run doesn't make sense at all in that you could leave the party before you got to the party!

Setting the stop time on the last event in a list will "complete" the instance, and it will move from active Active instances to History history. Note that if the requirements of previous event start and stop are fulfilled, you are able to finalise or complete an instance even though there are unstarted events in the list. This allows you to (for example) leave the party before you have started talking to people.


Using the results

The History history view shows all complete event instances.

Unlike the rest of the app, this interface allows selection of more than one item in the list.

A history instance can be viewed with . You can also Send export the selected run or delete selected runs.

Exported data is written as a .csv text file that should be usable in any spread sheet application. Columns sent are the event name, its sequence, a start data and time, a stop date and time, the duration (in seconds) of the event, and the allowed (or budget) time for the event.

The application will try to use email to send run results. If your device doesn't have email capability, you could try blue tooth transfers or the like, but your mileage may not be great. Email is the intended export mechanism.