Project Description

At Pixel Pines we use FogBugz from FogCreek Software ( to track our tasks, cases and time associated with each of those items.
For our billing needs we use Cashboard freelance time tracking and online invoice software

While both are excellent products we wanted to keep using it became obvious that manually entering and reconciling data between both systems is not an option for us. That’s why we created this simple command line tool that utilizes API calls against each of those services to automatically do this job for us.

Get it now

FogBugz2Cashboard is open source!

You can download full source code and binaries from BitBucket.

Get it now
There is nothing special that needs to be set in FogBugz, but you will need to know IDs of projects for which you want to synchronize time entries.

In your FogBugz go to Admin menu and select Projects:
2013-12-17 16_38_30-Clipboard
Click on the name of the project and copy the id from its URL:
2013-12-17 16_39_51-FogBugz

In Cashboard open the project you want to synchronize and change its name to contain ID from FogBugz:
2013-12-17 16_42_13-Bulletin Board _ Laca Ossenfort - Color Run Website [ID_28] _ Cashboard

If you have tasks defined under your project already you can link them to cases in FogBugz by editing task and changing its description to contain ID of the case you want to link:
2013-12-17 16_44_52-Bulletin Board _ Laca Ossenfort - Color Run Website [ID_28] _ Cashboard

You do not have to create tasks in Cashboard every time – our tool will do this for you. New tasks will be created in a special list called FogBugz Time Entries:
2013-12-17 16_47_45-Bulletin Board _ Laca Ossenfort - Color Run Website [ID_28] _ Cashboard

Command line options

FB2CB -f[rom]:mm/dd/yyyy -t[o]:mm/dd/yyyy

 from (short: f)            Start date of time entries to be copied
 to (short: t)              End date of time entries to be copied
 FBUrl                      FogBugz URL
 FBUser                     FogBugz username (only entries for this user will be copied)
 FBPassword (short: FBPwd)  FogBugz password
 CBDomain                   Cashboard subdomain
 CBApiKey                   API Key for the Cashboard account.
Cashboard configuration:
 In cashboard make sure you add token with the ID of the project from FogBugz.
 Example: title of the project "Sample website [ID:23]"
FogBugz Configuration:
 FogBugz does not require any special configuration for this tool
 Program matches time entries by first matching project (in Cashboard there
 needs to be a token with the ID of the project from FogBugz added to the
 name of the project.
Next it looks for tasks to see if there is an ID in the notes that ties
 back to a case in FigBugz (in the notes for the task you will see an token
 such as [CaseID:654]). You can add those tokens manually to force time
 entries to be added to those particular tasks. If task with a token is not
 found this tool will add the task to general list (see below) and assign the
 time under that task.
This tool will create a task list in the project and give the list a title
 of "FogBugz imported entries".
Each exported time entry in cashboard in its notes will contain an ID of the
 time entry from FogBugz to avoid duplication. Therefore if time interval is
 edited in FogBugz it needs to be manually corrected in Cashboard.

 So this could be a sample command line call:
 .\FB2CB.exe -f:12/9/2013 -t:12/13/2013 -FBUrl: -FBPassword:secret -CBDomain:pixelpines -CBApiKey:123-456-789-101

Final Notes

Application runs slowly, but it gets the job done.
I recommend setting it to run overnight as a scheduled job.

In time log in Cashboard you will see intervals with an ID in comments – this is to ensure that time entries are imported only once.
2013-12-17 16_53_46-Bulletin Board _ Laca Ossenfort - Color Run Website [ID_28] _ Cashboard
Right now the tool will not correct time entries in Cashboard if they were edited in FogBugz after import. This is due to the fact that some of them might already be invoiced. It is a feature we hope to release in the next version.