Job Timer Features

NOTE: This page describes Revision 1 of Job Timer.


Job Timer is an AppleScript script designed to be scheduled with Script Timer that allows graphic artists and other professionals who make their living working at their computers to automatically keep track of the time spent on specific jobs. This is done by tracking the active window. Job Timer can also keep track of the time a specific application is the frontmost application. Any number of jobs and applications can be tracked.

Job Timer has two modes: tracking and reporting. The normal use would be to schedule Job Timer with Script Timer to run in tracking mode on a repeating interval (one minute recommended) during the work day, and to schedule it to run in reporting mode at the end of the day, week, or month to give a summary of the amount of time that was spent on each job and/or application that day, week, or month.

Once you have scheduled Job Timer to run it will carry out its tasks automatically as long as the Script Timer scheduling engine is running . If you set the scheduling engine to start at login then whenever you log into your computer Job Timer will automatically start doing its work, allowing you to achieve set-it-and-forget-it operation. There is no need to remember to turn on a timer, or to change to a different timer when you switch to a different job.

Please see the Script Timer Help Manual, accessed via the Help menu in Script Timer, to learn how to schedule the execution of Job Timer.

Because of the limits of plain AppleScript, user interaction with Job Timer is done by way of input and output files specified by the user. In the input file you include the names of the jobs you want to track, and also if you wish, the names of applications whose active usage you wish to track.

When you run Job Timer in reporting mode, a report is written to the output file giving the name of each job and application, the time it was active since the last report was generated, and the total time accumulated since it was first included in the input file. NOTE: To have Job Timer keep track of all files associated with a given job, you must start the name of each file with the job name.

You can use Script Timer’s “Do Now” button on your scheduled reporting action to generate an interim report at any time without affecting the output file.


To illustrate the use of Job Timer, suppose you were designing a brochure for "John Smith Interiors". You might choose to call the job "JSI". Here are the steps you would take:

1. Create a plain text input file for Job Timer with TextEdit. Call it "Job Timer Input.txt" and place it in the Script Timer Application Support folder at:

/Users/yourname/Library/Application Support/Script Timer/Job Timer Input.txt

2. Enter the name "JSI" in this input file. Include the names of any other jobs you which to track, separated by commas on the same line as JSI, or on a different line. See Figure 1 below.

3. Optionally, on a separate line in the file starting with "apps=", list the names of any applications you want to track regardless of which window was frontmost in them. See Figure 1.

JSI, Job 1, Job 12
apps= Safari, Script Timer, Eudora, TextEdit

Figure 1: Sample Input File contents

4. Start the name of any file associated with the job with "JSI". A photograph of John Smith you were working on might be called "JSI John Smith.psd". The logo you were designing might be in a file called "JSI", and so on. IMPORTANT: New files associated with the job should immediately be named beginning with the job name and saved so that Job Timer can determine which job they belong to.

5. Schedule Job Timer to run in tracking mode:
  • click on the Repeating tab in the Script Timer window
  • assuming Job Timer is in your "Designated Items to Schedule Folder", drag its name from the upper pane of the window onto the Scheduled Actions table below
  • in the action panel that appears, fill in the Parameters field with “i=Job Timer Input.txt” (without quotes), select the repeating interval (one minute recommended), and the Start and Stop times
  • click on OK.

NOTE: Including the file extension ".txt" is optional. “i= Job Timer Input” will work just as well.

The Start and Stop times can be anything from 12:00 AM (midnight) to 11:59 PM, or 0:00 to 23:59 if your computer uses a 24 hour clock. The repeating action will only take place between the Start and Stop times. Normally you would bracket your work day, say 8:00 AM to 5:00 PM.

Job Timer Input Action Panel
Figure 2: Scheduling Tracking Mode

6. Schedule Job Timer to run in reporting mode:
  • click on the Time of Day tab in the Script Timer window
  • assuming Job Timer is in your "Designated Items to Schedule Folder", drag its name from the upper pane of the window onto the Scheduled Actions table below
  • in the action panel that appears, fill in the Parameters field with “o= Job Timer Output.txt”, select the frequency, and the Start and Late Start times (see Figure 3 below)
  • click on OK.

NOTE: Including the file extension ".txt" is optional. “o= Job Timer Output” will work just as well.

Assuming you want to generate a report at the end of every work day, and you work from Monday to Friday, select the Days of Week radio button and make sure the buttons for Monday through Friday only are dark. (Click on Sunday and Saturday to deselect them.) If you want a different reporting period, select the radio button for one of the other frequency options in the action panel.

The Start Time should be at least one minute after the last time at which you want to track items for the day.

Job Timer Output Action Panel
Figure 3: Scheduling Reporting Mode

7. Save the changed Script Timer data file so that the scheduling engine knows to regenerate its internal schedule. (If you have Script Timer running with Autosave on, the save will be automatic when you hit the OK button in the action panel.) IF YOU DO NOT SAVE THE DATA FILE AFTER A CHANGE, IT WILL NOT TAKE EFFECT.

8. Make sure the Script Timer scheduling engine is "On". If in the Preferences panel you arrange for the scheduling engine to start at login, it will always be "On" while you are logged in.

Script Timer Preference Panel
Figure 4: Starting Scheduling at Login

9. Start working on your jobs. Make sure the name of each file you work on for your various jobs starts with the job name saved in the input file. IMPORTANT: When starting on a new file, name and save it immediately.

10. When you are finished with a job, delete the job name from the input file using, for example, TextEdit. The job will appear in the next report generated as “inactive” and thereafter the internal data objects associated with it will be removed.

10a. To start a new job, add its name to the input file (be sure to save the file!). The next time Job Timer runs in tracking mode internal data objects will be created for the job and will start accumulating time. The job will appear in the next report generated.

11. If you wish to examine the times for the various jobs and applications you are tracking between scheduled reports, select the reporting mode Job Timer action in your Script Timer data file window and click on the “Do Now” button. An interim report will appear in the Script Timer “Do Now Results” window. Using the “Do Now” button does not affect Job Timer’s internal data objects or the input data file, so will not affect the contents of your next saved report.

Job Timer Do Now Results
Figure 5: Interim Inspection of the Output File

You can copy any data from the Do Now Results window and paste it into another application if you wish.

12. After Job Timer has run in reporting mode, causing the output file to be generated or updated, you can open the output file in TextEdit (for example) and examine and copy or remove any of its contents. It will show you how much time you have spent on the various items tracked, both since the last report was generated, and since the job or application first appeared in the input file.

Here is a sample report from a Job Timer output file:

Tracking Report for Saturday, January 23, 2010 7:12:12 PM (Previous Report At: Friday, January 22,2010 7:12:10 PM)
Jobs to Track
JSI (active) Time Since Last Report: 01:03:12 Accumulated Time: 23:45:56
Job 12 (active) Time Since Last Report: 00:00:00 Accumulated Time: 10:11:47
Job 3 (inactive) Time Since Last Report: 01:01:19 Accumulated Time: 13:44:16
Job 1 (active) Time Since Last Report: 01:33:11 Accumulated Time: 01:33:11

Applications to Track
Safari(active) Time Since Last Report: 00:59:13 Accumulated Time: 22:35:26
Script Timer(active) Time Since Last Report: 00:03:12 Accumulated Time: 00:15:01
Mail(active) Time Since Last Report: 01:00:32 Accumulated Time: 15:47:56

Figure 6: Sample Report from an Output File

In this sample, the next time Job Timer ran in tracking mode, the data for "Job 3" would be deleted.

13. When billing a client, simply refer to the output file to see how many hours you have spent on the client's job.You can copy or remove any data from the output file and paste it into another application if you wish.

Return to Top of Page