A FlexTime customer recently asked me if there was any way to set up a routine such that each activity in the routine would take a random period of time. His interest was in having FlexTime remind him at irregular intervals to stay focused on the task at hand. Unfortunately, the short answer is “no.” FlexTime currently relies on having a specific time set for each of the activities in a routine. But as is so often the case, the long answer is “yes, sort of. kind of.”
This is another instance where the presence of a robust AppleScript implementation allows me to offer at least a passable solution to the customer. By writing a script that configures a new document with a random arrangement of activities, and then runs it, it approximates the desired experience of being able to have a single document that runs differently each time it is run.
FlexRandomTimes is a standalone applet that can simply be double-clicked to start playing a routine with random timings. You can place it in your dock or Finder sidebar for easy access. It can also be opened and edited with Script Editor to suit your particular needs. All of the “easy to change” settings are near the top of the script. For instance, if you want more than 20 randomized activities, just change the setting of “kMyNumberOfRandomActivities” to suit your needs. Likewise for the randomness range and for the sound that should be played on each activity.
A particularly advanced move would be to merge this script with some of the logic from FlexTime Random Sounds to get an especially randomized experience.