Personal

Other Apps

About

CaLister


Inspect your calendar events

This application will help you to easily retrieve certain events from your calendar. The most important use case is when you want to retrieve events in a time range eventually with a specific name. E.g. all events for a certain project of the last month to create an invoice. In that case you would once define a profile with the appropriate search parameters like the calendar(s) the time range Last Month and eventually some string parameter to limit the result set. Now you can simply select that profile by its name and run the Search.

If you are working per hour then the easiest way is to use ReCal for accounting. This works perfectly when you're working on any Mac.

I18N

This version is localized for English and German language along with imperial and metric units. This help, however, is just written in English and I will not translate this to German - unless a kind soul will pay for it, which is unlikely to happen.

Beta

Compared to the previous version, this beta release offers a couple of new features:

Except for printing, the new functions have been tested very thoroughly. So you can use this version worry-free. Printing itself is a very complex matter. I ran quite a couple of tests, but of course I can not do that on a professional basis. So this part comes as-is. I appreciate any bug reports you can send me.

The Use Case

For the following description we assume the calendar entries in a specific week as shown below:

GUI Element Description

To quickly find out the description of a certain area just click into the screen shot below.

Filter Date All Day Events Calendar Selection Total Events Different Result

Calendar Selection

When CaLister is launched it will check all calendars available on your machine. As can be seen, the calenders are group like in Calendar.app and you can select the single calendars or a whole group. When running a search, only the selected calenders will be looked at.

Filter

Description and Location of events can be filtered using any string you specify. The filter matches to any sub-string of an event. For example if you specify ‘project’ as filter then all ‘Project A’, ‘Project Meeting’ and ‘First project’ events will match.

Both filters create a dissection. That means if you filter by description ‘project’ and location ‘home’ you will get only those events which you titled 'project' and located at 'home'.

When you click the magnification glass inside any filter box you will find the options shown right. The Ignore Case option is checked by default (refer to Profiles). If you had unchecked this with the previous search then only ‘First project’ would have matched (since the others have an upper case P in Project). The 'Match Whole String' will list only those events that match completely the entered string (respecting spaces as well).

 

For a more advanced search you can use 'Insert Pattern', which allows for arbitrary characters. 'No or any number of chars' will match exactly as it says. So, if you enter a pattern like it will match 'cats', 'cows', 'cassandra' or simply 'cs'. The 'Single Char' pattern in contrast would only match 'cassandra'. Finally a pattern with 'One to many consecutive digits' like would match 'a1995b' but not 'a19b' (since there needs to be at least one additional digit between 'a19' and 'b'.

Date

The Date box allows to filter a date range. The drop-down allows a quick access to commonly used date ranges, also by using keyboard shortcuts:

   

Individual date range will just place the focus to the start date (makes more sense when using keyboard shortcuts). All other menu entries will set start and end date to whatever one would expect. The open ended ones are limited to 1/1/2000 for start and current date plus two years for the end (since recurring events would else overflow the result list). Anyhow, you can modify start and end at your wish.

   

Additionally it is possible to filter for certain week days. By -clicking the single weekdays you can select individual ranges.

All Day Events

The drop down below the date selection specifies what to do with all-day-events. It is possible to

Result Window

The results are simply listed in a fixed tabular format. The Date and Time column show the date/time when the appropriate event starts. (End Date) is only filled where it is different to Begin Date. End Time is the next minute after the event ends. Duration is the calculated event duration and displayed in hh:mm format. Event and Location simply hold the value of the according event property.

Additionally to above shown columns you can configure the following to appear.

Further you can double click a single row in the result window. This will open Calendar.app and its view of the respective event. Note that Apple made it overly complicated to highlight the event in Calendar. app, so it is only shown in the currently set view.

Summaries

In the bottom line below the search results you will find a number of summaries:

With version 4.0 of CaLister you can also show summaries for events and locations per search (see Profiles):

.

The results in the summaries are always ordered descending to their total lengths.

Copy/Paste

Copy/paste into other applications like numbers works like all selections. Click and shift- or -click the desired entries or use -A to select all entries. Now you can use -C -V to copy/paste the entries into any other application. Alternatively you can use --C to copy all entries at once. The single columns are separated with a TAB char.

A couple of entries pasted into Numbers could look like this:

You can configure which columns shall be included in a copy operation. In this example the from- and to-date result in the single columns A and B instead of having 5 separate columns. If the Alarms column is included it will contain the number of alarms set for the event instead of the check-mark displayed in the result list.

You can copy the event summaries with -E and the location summaries with -L. Both will copy the rows/columns as displayed.

Export

While copy paste is an easy way to transfer search results to spreadsheets, a CSV export can alternatively be used for this. Further a CSV export can be used for other programs as input (e.g. to create invoices). You can configure folder, filename (with patterns) and format in the Profiles. An export can be issued from the File/Export menu for either the current selection or the whole table.

Profiles

One of the great strengths of CaLister is the ability to store so-called profiles that define a whole reusable search. The profiles are named with an arbitrary but unique string. The profile named with an empty string is loaded by default when CaLister is launched. Profiles are defined via CaLister/Settings or -, and can be selected later from the Profile menu. Starting from V4 of CaLister the profile has been split into six tabs:

Search Criteria

Filter, time range and calenders can be set like in the main window Only if you specify Individual date range you can not enter the individual dates since that would not make much sense. Instead you will be asked to enter the dates when the profile is loaded in the main window.

For a even more advanced search than the above mentioned patterns you can Enable Regular Expressions. If you don't know what that is you should not turn this option on (you may refer to RegEx101). Once this option is turned on you will find an additional flag in the magnification glass option list of search fields that allow you to interpret the entered text as regex.

 

 

Display

With the View tab you can define which calendar columns shall appear in the main window You can add single columns by selecting them from the drop down below the table. To remove a column use the button. Rearrange the order simply via drag and drop of the shown column names. Most of the available columns are self-explanatory. The (End Date) (with the brackets) will make the date only show if it is different to the start date and else left blank. The Notes (compressed) will show the notes of the event on a single line with line breaks removed and eventually truncated. When using Notes the notes will eventually stretch over multiple lines, though also being clipped to the width of the column.

 

With Minutes Format you can switch between decimal and hours:minutes format for the displayed duration values.

The selection Hours Format allows to switch between 3 formats for the "larger" time part.

  • Days(d)+Hours will calculate the number of full days (24 hours) and the remaining hours. So if e.g. 25 hours are to be displayed you will see 1d 1 for one day and one hour. Note that the displayed minutes format always depends on the chosen value above.
  • Hours will just display the hours as they are summed up (that is 25 in the above example).
  • Pers.-Days(pd)+Hrs. will additionally show a field to enter the time (hours and minutes) which defines a person day (usually that would be something like 8 hours). So for above example with a setting of 8 hours per person day you would see 3pd 1 (since 3*8+1 = 25).

The lower two check boxes control whether any of the event/location summaries will be shown for a search.

Copy

This tab allows to configure which calendar columns shall be included in a copy operation.

Similarly to the previously described tab you can add, remove and re-arrange columns you want to have copied. Although most of the column names are self-explanatory here is a list of the possible choices:

  • Begin Day Name of weekday when the event starts
  • Begin Weekday Number of weekday when the event starts
  • Begin Date/Time Compound date and time when the event starts. Date and time are formated accordong to the user's locale.
  • Begin Date Date when the event starts.
  • Begin Time Time when the event starts.
  • End... Ditto for the end of the event.
  • (End Date) Blank if same as Start Date, els the according date.
  • Duration Duration of the event in the format as displayed in the result list.
  • Duration (seconds) Duration of the event in seconds.
  • Event Title of the event.
  • Location Location of the event.
  • Alarm Count Number of alarms set for the event.
  • Calendar Name of the calender in which the event was found.
  • Notes The full notes including line breaks.
  • Notes (compressed) The full notes with line breaks replaced by blank.

 

 

 

 

 

 

 

All columns are separated with a tab character which will usually allow to paste them in applications like Numbers so they appear in separate columns.

Sort

The Sort tab allows to define sorting criteria to be applied to search results. Per default the results are sorted ascending by begin time. To add new sort criteria simply select them from the drop down shown right and they will be added to the list which will open from the Add Column popup button.

.

If you want a different sorting order you can add from the Add Column, drag them to the right postition or remove them with the button. Ascending or descending is defined in the Sorting column.

Export

In order to export search results to CSV files you can use this profile tab. Similarly to the tabs explained above, you can add single columns to be exported with the list to the left. The export will contain the columns in the order as the appear in this list.

To ease naming of the export file, the Export File Name Schema input box takes plain text plus a number of patterns that can be added with the plus symbol. Once you issue a File/Export/... the pattern will be expanded and set as default in the save dialog which points to the Export to folder. Note that the input box is rather narrow and when using the pattern tokens it might be necessary to scroll with the cursor to see the whole file name pattern.

Finally, in the Export Format box you can change parameters for the export format. Character encoding is preset to UTF-8 but for legacy/interoperatibility you can change that to be Mac-OS Roman or Windows CP1252. Further the separator can be changed from comma to semi-colon or tab.

 

 

 

 

 

Print

CaLister will use a default layout that likely fits most use cases. However, it is easy to adapt layouts for the individual needs and you can have an arbitrary number of different reports (see below).

To create a layout you need to press the Layout in the Print tab. It is advisable to run a search before starting the layout since the search results will be used to create a live preview. Else some random text will be created for the preview.

Profile Naming

The lower part of the settings menu contains a text field for the profile name, a Remove and a Save button. Once you made your settings you can type an arbitrary string in the text field and click Save. This will silently overwrite any existing profile with that name. Further it will add an entry to the Profiles menu and amend the App title. Once saved, the filter criteria in the main window are replaced with those in the according profile. To modify an existing profile you can use the drop down of the text field which will offer the already defined profiles to load them. Once selected, the criteria are directly applied to the main window. Further the profile name is appended to the App title. Finally to remove a profile you select the desired name from the drop down. When clicking Remove, the profile is removed from the Profiles menu.

In order to duplicate (and then modify) any exiting profile, just select the existing one from the drop down and save it with the new name. You now can safely make changes to the new profile.

Printing Support

The layout window will open from the Print tab of the Profiles and allow to define an individual page layout. The idea behind the layout is to let the user set just a few parameters and CaLister do the rest. Each calendar entry is printed in a block of one to four lines where you can place the single columns in a way that you prefer. The paper format is chosen (mainly to use either landscape or portrait), font can be set for headings, text and notes and header/footer can also be set with some general parameters.

Preview

The preview pane on left side shows a life preview of the print layout. It takes the data from the current search. If no search has been run you will see some random text. The orange colored frame indicates the print border inside which the search results will be printed. You can modify these bounds by entering the measure directly in the input fields attached to the borders. For non-metric locale the values are interpreted as inch, else these are centimeters.

This box is the main configuration of the layout. Basically you will drag the single search result columns in, out and around the box where they can be arranged in a simple grid. The two screen shots below demonstrate the effect of a space being placed between two columns:

As can be seen, the insert position is being highlighted during dragging a column icon. Dropping one icon over another on will cause the underlying to be removed. Dragging an icon outside the Print Columns box will also remove it from the layout. Positionining a new icon top or bottom of an existing icon will add a new print line, but only a maximum of 4 lines per event is supported.

Following are the print columns you can define:

Start time, End time, Duration, Event, Location,

Alarms, Calendar and Notes, Space.

Each column in a row can be edited by clicking the symbol representing its contents. This opens a pop-up menu with various layout options for each of the buttons. The contents of the Print Title box will be shown in the title box of each print page for the according column. The text is set to some default when the column is defined initially but can be changed to any text. Right below, there can be show different options depending on the column. The Begin Date/Time has tick marks for Weekday, Date and Time to be displayed in the column. The End Date/Time has a Compressed option which will suppress the date if it's the same as the begin date. Other columns will not show any options in this place.

The Format box below allows to define a frame, the final width, truncating and adjustment of the column. The two rows Head Frame and Cell Frame are used to turn on and off frame lines for the header and the cells itself. Both head and cell can be set individually, but by clicking the bracket button right to them both will be linked (symbolized by a chain shown in the button and the cell line being greyed out).

The Width box has two tabs: Fixed and Auto. When setting the width to fixed (inches in US and centimeters where locale uses metric units), the column will appear in exactly that size. Eventually the text in the cell will be trunctated or wrapped, depending on what has been set (see below). However, the auto-mode should be preferred. It will determine the maximum size for each column and add flexible space so the page gets filled. The slider in the auto-box determines the weight of a column: the more right, the higher it is. This weight is respected when doing the calculation for the flexible space each auto-column will take. Usually you can leave it to the default values.

The adjustment per column can be set to left, center and right. Per default all columns appear with left adjustment.

Whether a single column is trunctated or wrapped (when the column width is too narrow) can be controlled with the Wrap switch. In the left position text cells will be trunctated and to the right the will be wrapped. The latter is done per word. If a column is set too narrow it might result in unpleasant layouts.

Head and Bottom Lines

There are 6 buttons to define header and footer text left, center and right. Once you click any of them a pop-up will open where you can enter any text to appear at the appropriate position on the print page. You can mix plain text with a number of patterns that can be inserted with the plus symbol inside the input box. The patterns will be replaced with what their name says at time of printing. For the expample to the right the text Page 1 of 2 and Page 2 of 2 would be rendered for the two pages of an assumed search result. Since this was defined for the top left of the page, these texts will appear top left of any print page.

The fonts being used in the printout belong to four groups: column title, text, notes and header/footer. The first is used generally for the column header text. The single events are printed using the text font, except for the notes which use the notes font. It is assumed that notes text is larger than all other column text and thus might appear in a different (generally smaller) font. Also headline and foot line have a separate font (being even smaller).

Once you click one of the font buttons the standard font window will open and you can set an arbitrary font. The same font will also be rendered for the button title. So if you choose a very large font size the according title might get truncated.

Last but not least you can set the paper size and orientation per profile. Clicking the button inside the Paper Format box will open the default paper format settings. Note that the bounds will be set to 1/2" (non-metric) or 1cm (metric) once the paper format is changed regardless of what you choose inside the standard dialog.

Missing Features

Once I wrote this app for my personal use. And ever since I got a lot of feedback so I added a number of features. In case that your use case has still more requirements just drop me a line and I'll see what can be done. You may write in either German or English.

E-Mail Thomas Kilian

Release Notes

V 4.0 - 2016-07-01

V 3.2 - 2013-05-01

V 3.1 - 2013-03-29

V 3.0 - 2012-11-12

V 2.0 - 2012-05-22

V 1.0 - 2012-05-06