zPIM documentation
How stable are these programs?
Why not use the Palm task list manager that runs under
the Garnet VM?
Can I sync across the internet?
How does it work (technical details)
You are obvious very organized. How do you use all of the
components you have available?
Can the programs run on other platforms?
I get “Connection Fails” on my Nokia
Programming Details & Acknowledgements
Hey, I wrote a program too and I would like to distribute
it. How do I do that?
It is a To Do list manager, modeled after the task list manager from the Palm® platform. It syncs with Outlook on Windows using the zSync program. There is a Windows component to this program that does the syncing between the two programs.
This is the program that communicates with Windows to move files back and forth between the Nokia and the Windows computer. There is a Windows component to this program that is always running and listening for a client (Nokia) to make requests.
This is a set of programs that will sync Outlook contacts with GPE contacts. The program that runs on the Nokia, dumps the GPE contacts into a format that can be processed on the PC. The PC portion then processes this file against Outlook. The updates are then sent back to Nokia. Additionally, an address book is created for Claws mail (if there were any changes to any email addresses).
This is a set of programs that will sync Outlook contacts with GPE calendar. The program that runs on the Nokia, dumps the GPE calendar into a format that can be processed on the PC. The PC portion then processes this file against Outlook. The updates are then sent back to Nokia.
This is a PC program that will sync Outlook contacts with mNotes. The official mNotes program does not maintain a ‘last modified date/time stamp’. I am working with the author to get this changed, but until then you will have to download the special version on of mNotes if you want to use zNotesSync.
This is a PC program that will dump Bramblesoft Expenses data to the PC. It will dump the data in time groupings (eg. Quarters). Run the program without any parameters (eg. Double click on C:\Program Files\Zon Utilities\zToDo\zExpenses.exe) and select the Setup tab. The duration of the time grouping can be specified. How long to wait until after the end of the period is the delay field. For example, I use quarterly and 5 days of delay.
zTodo can be installed on the Nokia and run as a todo list manager as a stand-alone application. If you want to sync with Outlook, you need to install the zSync application on the Nokia, the zSync application on Windows and the zTodo application on Windows. The PC side of the applications and all of the other extras described in this document can be found at: https://garage.maemo.org/projects/ztodo/
zTodo on Nokia requires pysqlite, which might not automatically install. If not, it can be found in http://repository.maemo.org/extras-devel/pool/diablo/free/source/p/pysqlite/pysqlite_2.4.1-1maemo0.dsc or from the Application Manager on the N8xx and selected python2.5-pysqlitew v2.4.1-1maemo0 from Browse Installable Applications and install it.
zContactsSync on Nokia requires pysqlite (see above) and pysqlite v1. V1 can be installed from http://repository.maemo.org/extras/pool/diablo/free/p/python-sqlite/python-sqlite_1.0.1-7maemo2_armel.deb.
Both the PC and Nokia components need to be installed. It uses GPE Contacts and Claws Mail,
zCalSync requires pysqlite (see above) and pysqlite v1 (see above). Both the PC and Nokia components need to be installed. It uses GPE Calendar but does not require it to be installed.
zNotesync requires pysqlite (see above) and pysqlite v1 (see above). Both the PC and Nokia components need to be installed.
My intention is to sync all Outlook functions on the Nokia – Calendar, Contacts and Notes. As a contractor, I can have more time to be working on these other components. Otherwise it is in my spare time and that will stretch out the development time.

They work for me. I have been using them since mid-March
2009 and they are working well. I am running Windows XP SP3 and
I have been running zContactsSync, zCalSync, zNotesSync and zExpenses since May 2009. They work for me. Again, Outlook is treated as the master copy, so unless something is explicitly tagged for deletion on the Nokia, it is not removed.
zTodo
on Nokia:
You need run zTodo on the Nokia at
lease once to create all of the
zCalSync
You must run GPE Calendar at lease once before Syncing calendars.
zContactSync
You must run GPE Contacts at lease once before Syncing contacts. You don’t have to have or use Claws mail, but if you do, zContactSync will replace the address book.
zNoteSync
You must run mNotes at lease once before Syncing notes.
zExpenses
You must run Expenses at lease once before Syncing Expenses.
zSync
on Nokia:
Run zSync on Nokia and select “Setup Parms”. Select, by checking off, which application to sync. Only use the “Sync Manual” for debugging purposes. Click Save to use these parms every time; click ok just to use for this session (and revert back to the saved parms after restarting).
Type in IP address of the computer you which to sync with. Anything after the first space is ignored, so I enter something like “192.168.2.2 – Family” so I know which computer I am syncing with (I sync with 2 different computers – that point to the same Outlook, but not at the same time). zSync will remember the last 5 addresses entered.
zSync
on Windows
After you install it, you will need to run the program.
Click on Start | All Programs | Startup | zSync (or
just reboot). The program will appear in the system tray as
Left click, or right click and select Open
Console. Click on the
zTodo
on Windows
You will find this program in the program file directory, probably C:\Program Files\Zon Utilities\zToDo
Double click to run the program Click on the setup tab.
Outlook Folder Name is the Task folder in Outlook.
DB path is the location of the intermediate database that is used in the syncing process. This should do someplace, like your documents folder, so it is backed up and kept safe. Don’t put into a temporary directory.
Temp path is the same path that was specified in zSync setup.
Outlook Form is the name of the form that is used to display tasks in outlook. If you use the default form, leave this field blank. See the item below regarding Outlook forms. You must proceed the name of the form with a . (eg. “.todo” – without the quotation marks).
Click on save.
Close the ztodo program. It will be launched automatically when zsync on Nokia requests the zsync database.
All ready to Sync? Make sure that zSync is running on Windows (is it in the system tray). Start it up if it is not. Start up zSync on Nokia and connect to the network. Enter the IP address of the computer running zSync. Click the Sync button. zTodo should pop up on Windows and start the sync process. The first sync will be slow, because Outlook needs to process each task to load into the intermediate database. Subsequent sync’s will be much faster. You can open the zSync Console to see what is happening if things are not going as I described.

To add or edit categories, select the “Edit Categories” from the menu on the main screen. To rename, select a category, type a new name and click “Rename’. To add, type the new category and click ‘New’. To delete a category, select it and click “Delete”. There is not tight binding between the categories and the tasks. If you delete a category, the task records remain with the old category name. You just won’t be able to add any new tasks with the old category.
Click the add butt1on + to add a new task, or click on the subject of the task to bring up the edit detail screen.
Once in the “add / modify detail” screen, select a category from the drop down list, priority from the drop down list and enter the subject text. Click on the Note button to add additional text with the task. Check off the delete box to request the item to be deleted. Note that the item is not deleted if it exists on Outlook. At the next sync, the records flagged for deletion will be removed from Outlook and then deleted on zToDo. In the meantime, the deleted records can be excluded from the being shown on the main screen by unchecking the menu item “Show Deleted”.
When “Show Headers” is checked in the menu, you can drag the divider bar between the columns to resize.
From the main screen, you can mark tasks complete and change the priority. Just click on them.
Over to the far right is the notes column. The column is not labeled. If there is a note on the task, an icon will appear. You can click on this icon to display the note. You don’t have to go to the detail screen to edit the note.
You cannot delete a recurring task on Nokia. This will have to be deleted from the Outlook side.
Because Outlook is the master data repository, deletions are only done if explicitly requested on the Nokia. To delete a Calendar record, change the description to “d+e+l” (no quotes). Do the same for the name field in contacts. In Calendar, if you delete an occurrence of a recurring event, this is considered a modification and not a deletion and it will be synced to Outlook.
I started with this, but found out that it was not using the
same version of the syncing software that my old
I haven’t tried it, but I don’t see why not. You will have to open the port (default is 5962) on your firewall and have it point to the Windows machine that runs zSync. Let me know how it works for you if you try it.
Zsync on Nokia copies the ztododb file to the Windows computer and then requests ztodonew.db to be returned. Zsync on Windows first deletes this file, runs the program (associated with ztodonew.db (as specified in zsync.txt), which is ztodo, and waits for ztodonew.db to show up.
Ztodo on Windows has 3 stages. The first reads all Outlook tasks and updates the intermediate database. The second stage reads the Nokia ztodo database (that was copied to the Windows computer by zSync) and updates the intermediate database. The third stage processes the intermediate database and makes changes to Outlook and the ztodo database. When the ztodo database updates are complete, the database is renamed to ztodonew.db. zSync has been waiting for this file to appear, and once it does, the file is sent to the Nokia.
zToDo and zSync on Nokia have an interlock so you cannot sync if zTodo is running and the database is in use.
Tasks in Outlook are modified in two internal fields. The
user property “PrimeKey” is created and used to match
records with the intermediate database. The “SchedulePlus field is used to keep the Nokia priority (1-5)
since Outlook only
You will get Outlook complaining that a program is trying to access the records and should it be allowed and if so, for how long. You can’t say always allow this program. I have installed “Advance Security for Outlook” which can be found at http://www.mapilab.com/outlook/security/ and this allows you to specify to allow programs to run against Outlook and stop the security prompt.
In Outlook, I created a sub-folder to “Tasks”, called “
Once a week (usually on Thursdays), I review the tasks in “
After I have all of the tasks for the week in the Tasks
folder, I sync with Nokia. Once Synced, I review all of the priorities. I run
with headers off, and only with the subject column showing (no due date or
category showing. I also do not show completed or deleted tasks). I go through
each category and review the tasks. Tasks that were newly added to Outlook will
have a priority 3 in Nokia. I try and never have any priority 3’s in Nokia –
that way I know I have looked at all of the priorities. Priority 1 is the stuff
I want to do that day. Priority 2 is stuff I want to do tomorrow or even today
if time allows. Priority 3 I try and not have anything in. Priority 4 is for
later that week. Priority 5 means that I am deferring that task. After I sync
the next time tasks with priority 5 are set to priority Low in Outlook. The
next time the Module2 program is run, all Low priority tasks are moved to
Special note regarding recurring tasks.
When the due date for that task will happen before the next Sunday that task
will have its priority changed in
In Outlook, click on Tools | Macro | Visual Basic Editor. Click on Modules and then from the File menu item, select Import File. Once you have imported module2.bas, save your changes. In Outlook again, right click in the toolbar and select Customize. Select the Commands tab and scroll down and to Macros. Module2 should be available. Drag it up to where you want it on the toolbar. Right click it to customize its appearance – eg. turn text off and give it an icon. Once you close the customize box, you will be able to run the program.
This has been not tested. Please provide feedback. In Outlook, select Tools | Forms | Design a Form. Select “User Templates in Filesystem” and click browse to where you stored todo.oft. After the form is opened, you need to make a change. Right click on the categories input box and select the Value tab. In the Possible Values field, enter what categories you would like. Separate them with semi-colons. Once done, click on Tools | Forms | Publish As and select Tasks for “Look In”. Select a name of “Todo” and click Publish. Back in the main Outlook screen, right click the Tasks folder and select Properties. In the dropdown box next to “When posting to this folder use”, select the Todo form you just created. Do the same for ‘master tasks’.
Review Priorities: Fields are: Priority, Categories, Complete, Subject, Due Date, Recurring. Group by is: Priority (show field in view checked) descending, Categories ((show field in view checked) ascending. Sort is by Subject ascending. Filter is complicated: Status not equal to Completed; Due Date does not exist; Due Date on or before now(); Due Date in the next 7 days.
Review Priorities All – is the same as above, but without the filter.
If you use an Outlook form for your tasks, you MUST add the user-property ‘PrimeKey” to the form. Otherwise the field is not visible to the program and syncing will not occur properly.
I don’t see why not. I did all my testing on UBUNTU, so I
know it runs there. Not sure the deb file will
install it properly, since that is tailored to the Nokia. I would be interested
to hear if someone gets it running on the
The connection seems to go to sleep some time. Try running it again. Still not working? Open up a web site in the browse and then try again.
No. Reminders on tasks in Outlook are ignored.
It will be slow the first time, while Outlook is analyzed and copied to the intermediate database. After that it should speed up dramatically. If is remains slow, make sure you read the section on Outlook forms, as that can cause things to be slow.
If it was fast and then got slow, run the SCANPST program from Microsoft to make sure that your PST is not corrupted. If you ever have to cancel Outlook or anything like that, it can get corrupted.
Firstly, I could not have done this without
The SQLITE 3 database of zTodo is sent to Windows with zSync. zSync on Nokia is an FTP client and zSync on Windows is an FTP server. They are stripped down to only specific functions and the port has been changed to not interfere with regular FTP functionality. The server will only send files to the client if the file name is in the zsync.txt file. This, coupled with the need to a userid and password, makes it secure against improper usage.
Zsync on Nokia
You can also change the port that is used to communicate with Windows. The same port must be entered on Zsync on Windows.
You can also override the default userid and password that is used to communicate with Windows. If you can them here, you must have the same values for zSync on Windows. If you have no values here, then the internal defaults are used.
ZSync on Windows
The file zsync.txt that can be found in “C:\Program Files\Zon Utilities\zSync” can be altered to do other things. When zSync on Nokia asks for a file, that filename searched for in this file. When it is found, the program after the equal sign (‘=’) is executed and zSync on Windows waits until the file shows up. You can add other filenames and programs for other applications.
This section is so people don’t have to go through what I did.
To test your application as a package, use pypackager to create a deb file that will install all of the pieces of your application – icons, desktop integration etc. Once you have your application working and it installs to all of the right places on your Nokia, you are ready to share it.
Create a site on garage.maemo.org for your application.
Create a home page, like this one, and upload it using a program like RapidSVN (in rapidsvn look at my site to see the structure). Look at the www section.
If you don’t already have permission to upload to extras, go to maemo.org\downloads and click on Upload to Extras. Permission can take some time.
Create the packages using py2deb on maemo. You cannot use pypackager. There is a sample on how to use this at http://wiki.maemo.org/Py2deb, or you can use my program py2debpgm in the files section. This program assumes that the path to all of your source files is in a subdirectory to MyDocs and is called the same as your application (eg. ztodo). It then reads the input file used by pypackager (so you have to have set it all up in pypackager first). The package name is assumed to be <app>packager (eg. todopackager).
From maemo.org/downloads/OS2008, click on “upload to extras”, bottom right of the screen. You will need to supply the three files created by py2deb. (I use the Extras Assistant Wizard – note that it takes a while before showing up in the respository).
The program is initially installed to extras-devel. You can test it from there. Browse to the repository (eg. http://repository.maemo.org/extras-devel/pool/diablo/free/z/ztodo/) and test install. If it works, uninstall your application.
Promote your package to the extras repository from using the instructions at: http://wiki.maemo.org/. If you application is NOT installed on your Nokia, it will show up in the Application Manager.
You can then have the application show up for single button installs by clicking on Add New Application at http://maemo.org/downloads/OS2008/. Everything to setup the application should be straight forward. The entry for the .install file should look like:
[install]
catalogues = extras
package = ztodo
[extras]
name = maemo Extras
uri = http://repository.maemo.org/extras/
components = free non-free
Change the package name to whatever your application name is.