mCalendar

by László Vajda

mCalendar is a “context-independent” FileMaker calendar / date picker using only global variables.

This version (v3_mFM) requires FileMaker 13.

Main features

  • it can be implemented in different language environments
  • multi-user
  • customizable to show weeks starting on Sunday or Monday
  • simple setting regulates whether the selection shown is just the day or the week of the date selected.
  • separate layout for selecting settings, or
  • public “setter” and “getter” scripts to get/set a date and to get/set settings.
  • easy to choose month selection (editable popover with language-neutral scripting) speeds up navigation.
  • webdirect and iOS ready

Settings

 

mCalendar settings

Settings can be changed on the fly, no restart or reload is required. Every user can have their own settings, but on first load the default (week starts on Monday, the selection applies to the day) is restored. This can be changed by saving the settings in a field using the ‘Get User Settings’ script and loading it with mCalendar using the ‘Set User Settings’ script when the calendar loads.

The Date Selection

 

mCalendar - date selected

The selection is always a day, regardless of whether only a single day is shown or the whole week. When a day is selected, the month shown always follows. The Back button takes the selection back one step. Look closer and (in the private part of the scripts) you will find the first step to extend this to multiple Back-s.

The ‘Date Selected’ defaults to ‘Today’ when mCalendar loads. Although the ‘Date Selected’ is not modifiable on the layout, the ‘Get Date Selected’ public script will return it for further use, while the ‘Set Date Selected’ public script provides the option to set and show any date in this FileMaker calendar.

Quick Navigation

 

mCalendar - select month

The popover is easy to modify to any cultural environment that uses the Gregorian calendar – the scripting relies on month numbers, not names.

Behind the Scenes

mCalendar uses a set of private calendar scripts and custom-function-to-script converted supporting scripts. A layout theme with a few styles contol the basic look, and conditional formatting is used for some extra features. To make the customization easier the background colour for selection is a separate object that can be easily accessed and changed by (temporarily) moving any “day-box” a few points out of its place. This FileMaker calendar does not use any plug-ins, custom functions, a web viewer, JavaScript or any other third party technologies.

Global variables can be accessed (seen and modified) using FileMaker Pro Advanced in Data Viewer. To avoid accidental modifications, every global variable mCalendar relies upon has an “mCalendar_” prefix in its name.


mCalendar, a FileMaker calendar template is released under the terms of the MIT Open Source License.


 

Do you prefer a calendar based on (global) fields rather than variables? Do you want to use custom functions rather than scripts? Have you created a less boring and not-so-generic interface? Please let me know.

 

7 responses to “mCalendar”

  1. Leo Di Croce says:

    Thank you for sharing this László!

    The UI is simple and intuitive, yet complete with all the features I could ever want.

    And your installation instructions are easy to follow.

    Nicely done.

  2. Doug Gardner says:

    Very nice, László. Lots of great uses, especially on the Mac side where popping up a window doesn’t pop all your windows out of the application frame. Two thoughts: 1. Why not use a pop-over for the Settings section (I see that you had an example of this on the pasteboard). 2. I know it would be a lot more work, but imagine if the entire thing were in a pop-over. You could put a little Descartes on your relationship graph…

    • László Vajda says:

      Thank you for the feedback and the questions.
      1) why not use a pop-over for the setting? why not? – it is there and the developer using mCalendar can decide whether to make it part of a general settings section, have it as a pop-over or hide the Settings/set it for all users.
      2) It is not that much more work to have it in a pop-over, at least I do not see any obstacles to copy/paste the calendar into a pop-over. (One of the reasons I did not go with the Settings in a pop-over was to allow the whole calendar being used in a pop-over.) Since there is no field involved, no Descartes is needed in the relationship graph either.

  3. Sam Hall says:

    Hey László,

    Awesome module, I am looking at extending the functionality to allow for date range selections, I am going to use a $$mCalendar_endDateSelected variable and adjust the conditional formatting from a match on the date selected to being within the range.

    Just thought I would let you know how useful this module has been to us,

    Sam Hall

    • László Vajda says:

      Hi Sam.

      thank you for the kind words.

      A start and end date global variable can be used to set a date range, the question is, how do you plan to extend, append, constrain or modify in any other way a range already set. I would rather suggest keeping a list of dates selected in a variable (with the additional option to select non-continuous ranges).

  4. Ernie says:

    Am new to FileMaker and am interested in this calendar “add-on”, but can’t figure out the script to make it work on one of my date fields. Any help available? Don’t like the “rolodex” style picker in IOS devices.

  5. Andrew Mallison says:

    László,
    This is a great calendar.
    Easy to add to an existing system. No extra tables. Works with Webdirect.
    It just needs the UI updated.
    Thanks so much.

Leave a Reply

Your email address will not be published. Required fields are marked *