Lotus Notes to Google Calendar Synchronizer (LNGS)

 

Running the Application. 1

Configuring the Application. 3

Sync Settings tab. 4

Connection Settings tab. 5

Technical Information. 6

Building the Application. 7

Troubleshooting. 7

History Log. 11

 

Home page for LNGS: http://sourceforge.net/projects/lngooglecalsync

Vote on enhancements at: https://trello.com/#board/lngs-enhancements/4e74ad0661b3d1ea93a96a54

 

This application is free. The source code is released under the GPL v3 license, http://www.gnu.org/licenses/gpl.html.

Software developers can contribute to this project by emailing Dean Hill (deanhill1971@gmail.com).

 

Donate $5 (PayPal)

Running the Application

This application currently pushes data only one direction: from Lotus Notes to Google.

There is no syncing from Google to Lotus Notes.

 

Installation

Unzip the files into whatever directory you prefer.

Java version 1.6 or higher must be installed.

The Lotus Notes client must be installed so the Notes.jar file and supporting files can be found.

On OS X (Macintosh), the optional package for X11 needs to be installed.

To install LNGS, just unzip all files into whatever location you prefer then see the Running section below.

If you encounter errors about a file being missing (like Notes.jar), then you may need to edit lngsync.vbs or lngsync.sh point to the location of your files.

If you are using a 64-bit OS and encounter errors, then read through the Troubleshooting section for tips.

 

Google requires applications like LNGS to use an OAuth 2.0 Client ID to sign into Google Calendar.

You must create your own Client ID as follows:

1.     Go to https://cloud.google.com/console/project.

2.     Click Create Project.

3.     Set Project Name to something like "Lotus Notes Cal Sync".

4.     Click Create. After a few seconds, a Dashboard screen will be shown.

5.     In the Use Google APIs section, click "Enable and manage APIs."

6.     Under Google Apps APIs, click Calendar API.

7.     Click Enable API.

8.     On the left side, click Overview.

9.     Click Enabled APIs.

10.  Disable everything except Calendar API.

11.  On the left side, click Credentials.

12.  Click Add Credentials and then OAuth 2.0 Client ID.

13.  Click Configure Consent Screen.

14.  Set Product Name to something like "Lotus Notes Cal Sync".

15.  Click Save at the bottom.

16.  For Application Type, select Other.

17.  Set Name to something like "Lotus Notes Cal Sync".

18.  Click Create.

19.  On the OAuth Client screen, click OK.

20.  On the Credentials screen, click the down-arrow to the right of the Client ID to download the JSON file.

21.  Save the file into the same dir as lngsync.jar. It will have a long name like
client_secret_760911730022-0nbs07o6o6qqc3ru4guooasalmrvbo89.apps.googleusercontent.com.json.
Note: This file may be renamed to just client_secret.json.

22.  Run LNGS and do a sync. A web browser window will open asking you to authorize Google Calendar access. After the authorization is complete, LNGS should be able to connect to Google Calendar automatically. If the web browser doesn't open, try deleting the client_credential file which is in the main LNGS directory. If you still have problems, try deleting any existing client_credential file that and try again. If there are still problems, search this help file for GCalConnectivityTest (a test utility you can try).

 

Upgrade

To upgrade to a new version of the application:

1.     Unzip the new files.

2.     Copy your old lngsync.config file into the new-version directory.

3.     If you modified the old lngsync.vbs or lngsync.sh files, then merge those changes into the new vbs/sh files.

4.     Copy your old client_secret.json and client_credential files into the new-version directory.

 

To be notified of new releases, subscribe to this RSS feed:

https://sourceforge.net/api/file/index/project-id/259914/mtime/desc/limit/20/rss

When a new version is added to the Release file folder, the RSS will show that new files were added.

 

Running

See the Troubleshooting section if the application won't startup.

 

LNGS only modifies or deletes entries that it created; all existing Google calendar entries are untouched. By default, LNGS will create and use a new Google calendar named “Lotus Notes”, so the auto-deletion process won't affect entries on any of your other Google calendars.

 

Running Under Windows

Double click lngsync.vbs to run the application in GUI mode.

Use "lngsync.vbs -silent" to run from a command line.

 

Running Under Linux and OS X (Macintosh)

Use the script lngsync.sh to run the application under Linux and OS X in GUI mode. There are some notes in the script to help you diagnose problems.

Use "lngsync.sh -silent" to run from a command line.

 

Below is the main screen after a successful sync.

Configuring the Application

Here are descriptions of fields on the Sync Settings and Connection Settings tabs.

Sync Settings tab

General Settings

Destination Calendar Name — This is the name of the destination Google calendar. The name is case sensitive, i.e. "lotus notes" is different then "Lotus Notes". The calendar will be created if it doesn't already exist.

 

Diagnostic Mode — When checked, the OS version, Java version, Lotus Notes version, and some settings are echoed in the status area. Also, two diagnostic files will be created in the same directory as the jar. LotusNotesFoundEntries.txt lists info on all the Lotus Notes calendar entries found. LotusNotesInRangeEntries.txt lists all the calendar entries that are in the date range. GoogleInRangeEntries.txt lists all the Google calendar entries that are in the date range.

 

Sync Schedule

Sync On Startup — Check this box to start a sync when the application opens.

 

Sync at These Minute Offsets — Check this box to turn on the internal scheduler. In the text box, enter the offset times when syncing should occur. Separate each offset by a comma. Each offset can be from 0 to 59 minutes For example, entering "5, 22, 48" into the text box means sync at 5 mins, 22 mins, and 48 mins after the top of the hour. So there would be a sync at 2:05, 2:22, 2:48, 3:05, 3:22, etc.

 

Sync Date Range

Days in the Past — Enter the number of days before today to sync. Calendar entries that have today's date minus this value will be sync'd. A value of 7 (one week) is usually good. This makes sure the previous week is accurate even if you delete past entries.

 

Days in the Future — Enter the number of days after today to sync. Calendar entries that have today's date plus this value will be sync'd. A value of 60 (about two months) is usually good.

 

Data To Sync

Location and Room — Check this box to sync the Lotus Notes location and room fields to Google.

 

Descriptions — Check this box to sync the Lotus Notes description to Google. Lotus descriptions can contain formatting like colored text and underlining. However, Google descriptions can only contain plain text, so all formatting is removed.

 

Attendees are Listed at Top of Description — Check this box to list the Lotus chairperson, required attendees, and optional attendees at the top of the Google description field. If the Lotus description is also being sync'd, then the attendees are listed followed by two blank lines then the description text.

 

Alarms Become Google Reminders — Check this box to have Lotus Notes alarms become Google reminders. Only Lotus entries have alarms set will get Google reminders. Only a Google Pop-up reminder is created (not an SMS or Email reminder). If the Google calendar is sync'd with a phone, Pop-up reminders should pop-up on the phone in a way you'd expect. Note: Lotus Notes alarms can go off before (default) or after the event. It is unlikely anyone uses the "after" option. Since Google only supports alarms before the event, any "after" events are created with an offset of 0 minutes in Google.

 

For Privacy, Set All Subjects to This Value — Check this box to set all Google subjects to the value in the text box. This is useful if, for privacy reasons, you don’t want the Lotus Notes subjects to show up in Google.

Connection Settings tab

Lotus Notes Settings

Detect Lotus Settings — Clicking this button will attempt to auto-detect the Lotus Server and Mail File values. The detected values should be correct most of the time. If not, see the steps below to manually find your Server and Mail File names.

 

Server — The name of the Domino server to access, e.g. Acme/MailServer. See below for how to find your server name.

 

Local Server — Check this box to access a local mail file, instead of a remote server.

 

Server Date Format — If a local server is used, then this field’s default value of “Detect” should work. If you are using a remote server and you sometimes see the wrong calendar entries being synced to GCal, then you probably need to specify the Server Date Format. For example, assume one of the dates you want to sync is July 4, 2013. LNGS could query the server with a date of 7/4/13 or it could use 4/7/13. When the date format is incorrect, then the wrong entries will be retrieved. If you notice the wrong entries are being synced, try this:

1.     In LNGS, turn on Diagnostic Mode. Set both the Sync Days in Past and Sync Days in Future to 0 (so only today will be synced).

2.     Look in Lotus Notes and see what entries should be found for today.

3.     Do a sync and see what entries were actually found.

4.     Based on which entries were found, make an educated guess about what the server date format should be.

5.     Enter a Server Date Format (using Java date format specifiers) where "y" is the year, "M" is the month, and "d" is the day. So if you think the format should be 07/04/213 then enter MM/dd/yyyy.

 

Mail File — The name of the mail file to open, e.g. mail/johnsmith.nsf. See below for how to find your mail file name.

 

Password — The password you use to login to the Lotus Notes client.

 

If you are using Lotus Notes 8.5, here is how to find your Server and Mail File names:

  1. Log into Lotus Notes.
  2. Click the blue Open button in the upper left and then click Mail. This will open your Mail tab.
  3. Click the File menu then Application then Properties. A Database dialog will be displayed.
  4. The second field is the Server name. If it says Local, then in the sync app you want to check the Local Server box.
  5. The third field is the mail filename. Type this value directly into the Lotus Notes Mail File box in the sync app.

 

Google Settings

Email Address — Your Gmail address, e.g. johnsmith@gmail.com.

 

Network Settings

Detect Proxy Settings — Clicking this button will attempt to auto-detect proxy settings. If proxy values are detected, the Server and Port Number fields are filled in with the detected values.

 

Use Proxy Server to Reach the Internet — Check this box to use a proxy server. Specify the proxy information in the other fields.

Server IP or Name — Enter the proxy server IP or name. If using a name, then use the fully qualified name, e.g. my-proxy.ext.company.com.
Note: Proxy Auto-Configuration (PAC) scripts are not currently supported. For example, if the proxy address in Internet Explorer contains a filename like "proxy" or "proxy.pac" at the end of the address ("
http://proxysrv.ext.fred.com/proxy.pac"), then a script is being used. You have two choices to find the real proxy IP: search for TCPView in this Help file to use that utility to find the IP or analyze the PAC script yourself.
To analyze the PAC script in Internet Explorer, do this: click Tools | Internet Options | Connections tab | LAN Settings. Copy the value in the Address field to the URL address bar. You should be prompted to download the PAC script. Look through the PAC and find the specific proxy server name or IP to use.

Port Number — Enter the proxy port number, e.g. 80.

Username — Enter the proxy server username.

Password — Enter the proxy server password.

 

Security Settings

For Security, Don’t Save Passwords on Exit — Check this box to use the Very Secure option below.

LNGS has two ways to manage passwords:

·         Fairly Secure — Store passwords in the LNGS config file. Passwords are slightly encrypted before being saved; however, since LNGS is open source people can look in the source code to learn how to unencrypt the passwords. But this option is still fairly secure because the config file is located on your hard drive which shouldn’t be accessible to other people.

·         Very Secure — Require the user to type passwords each time LNGS is launched. The passwords are never saved to the hard drive, but this option does require a little more time when LNGS is launched. 

Technical Information

By default, the application runs in GUI mode.

Pass the "-silent" parameter to run in command-line mode. In this mode, these exit codes can be returned:

0 = Success

1 = An invalid parameter was specified

2 = An exception occurred

3 = An application resource (e.g. an icon) could not be found

In command-line mode, an output file named lngsync.log is created.

 

General process the application follows:

  1. Get a list of all the Lotus Notes calendar entries within the date range.
  2. Get a list of all the Google calendar entries within the date range.
  3. Determine which Lotus entries are new, removed, or changed.
  4. Delete all Lotus removed/changed entries from the destination Google calendar.
  5. Add the Lotus new/changed entries to the Google calendar.

 

The application uses Notes.jar, the Java interface file installed with the Lotus Notes client. Notes.jar references some native library files (.dll files under Windows, .so files under Linux, and .dylib files under OS X). The native library files are all 32-bit, so a 32-bit version of Java must be used. The lngsync.vbs and lngsync.sh scripts try to make sure Notes.jar, the supporting libraries, and a compatible version of Java can be found.

 

Here is how Lotus Notes calendar events are translated to Google calendar events:

Lotus Notes Event

Google Event

Appointment

Standard event

Meeting

Standard event

All Day Event

All day event

Anniversary

All day event

To Do

All day event

Reminder

Standard event with the same start and end times

Any repeating entry

Separate, multiple events

 

Here are the Lotus Notes items that are currently sent to Google Calendar:

  Subject

  Start/End timestamp

  Where/Location

  Description (see the checkbox on the LNGS Sync Settings tab)

  Alarms/Reminders (see the checkbox on the LNGS Sync Settings tab)

  Mark Private (when selected in Lotus Notes, then the entry will be marked Private in Google)

 

Only a certain date range of Lotus Notes entries are synchronized to Google. See the Sync Date Range options on the Sync Settings tab. Entries outside this range won't be copied to Google.

 

 

Building the Application

The application is currently built using the NetBeans IDE, but users have built it with other IDEs (like Eclipse).

 

Unfortunately there are not specific build instructions, but here is a high-level overview:

1.     Get the source code.

2.     Get the latest binary release and pull out the lib dir. These are the external libs to use.

3.     Point your IDE to all the libs and all the source.

4.     Find your local copy of Notes.jar that was installed with the Lotus Notes client. Each OS and version of Lotus Notes probably has a different Notes.jar. Copy Notes.jar into the lib dir and point your IDE to the jar.

5.     Do a build.

Troubleshooting

If you need additional help, post to the Open Discussion forum:

http://sourceforge.net/p/lngooglecalsync/discussion/943517

 

Are there other calendar sync tools?

There are at least two other applications that are similar to LNGS:

CalSync is an open source tool. It requires the .NET Framework which generally limits it to running on Windows. This tool is no longer supported by the author.

AweSync is a $20 commercial tool. It runs on Windows and supports bi-directional syncing (from LN to GCal and from GCal to LN).

 

How do I sync a Google calendar to my mobile phone?

Once you use LNGS to sync entries to Google, it is simple to sync from Google to a mobile phone. See Google's instructions here: http://www.google.com/mobile/sync.

For iPhones, you need to enable all Google Calendars to have them all show up on your phone. Try this:

1.     Go to https://www.google.com/calendar/iphoneselect and enable the calendars you want to show up on your iPhone.

2.     On the iPhone, go to Settings -> Mail -> Gmail Exchange. Disable then re-enable Calendars.

3.     If you still don’t see all your calendars, go to https://m.google.com/sync/settings/iconfig/welcome?source=mobileproducts&hl=en. Here you need to select each iOS device and again select additional calendars.

 

How do I setup a Windows Scheduled Task to run LNGS?

If you don’t want to use the scheduler built into the application, then the Windows Scheduled Tasks utility can be used. Below are the steps to sync hourly during work hours for Windows XP. Other versions of Windows should be similar.

1.     Click Start | Settings | Control Panel.

2.     Double click Scheduled Tasks.

3.     Double click Add Scheduled Task. The Scheduled Task Wizard starts.

4.     Click Next to begin.

5.     Click Browse and find lngsync.vbs.

6.     Select Daily for when to perform the task. Click Next.

7.     Enter a name for the task, like LNCalendarSync.

8.     Click Weekly. Click Next.

9.     For Start time, enter 8 am.

10.  Check Monday, Tuesday, Wednesday, Thursday, Friday. Click Next.

11.  If prompted, enter your Windows user name and password. Click Next.

12.  Check "Open advanced properties…" and click Finish.

13.  In the Run box, add "wscript" to the front and "-silent" to the end. So, the line will look something like this:
wscript "C:\Program Files\LNCalSync\lngsync.vbs" -silent

14.  In the Working Directory or Start In box, enter the directory path to lngsync.vbs.

15.  Click the Schedule tab.

16.  Click Advanced.

17.  Check Repeat task.

18.  Set Every to be 1 hours.

19.  Set Duration to be 9 hours (so the task will run from the start time of 8 am until 5 pm).

20.  Click OK.

21.  If running on a laptop, click the Settings tab and review the Power Management settings.

22.  Click OK.

23.  To test the setup, right click the created task and click Run. When the sync is finished, lngsync.log will be created in the same directory as lngsync.vbs.

 

How do I setup a Linux scheduled task to run LNGS?

If you don’t want to use the scheduler built into the application, then the Linux command-line cron utility can be used. There is a GUI for managing cron called gnome-schedule. In Ubuntu, it can be installed in the normal way from the Synaptic Package Manager.

To use cron from the command line:

1.     Open a command prompt.

2.     Run "crontab -e".

3.     To sync hourly (in cron terminology that is 0 minutes past the hour) and every day (hh dd mm day), type a line something like this:
0 * * * * /home/martha/lngs/lngsync.sh -silent

4.     Type ":q" to exit.

 

How do I setup an OS X (Macintosh) scheduled task to run LNGS?

If you don’t want to use the scheduler built into the application, then the OS X command-line launchd utility can be used. Refer to a man page for how to use launchd.

There are at least two open-source GUIs for managing launchd which should be simpler than using the command line.

    Lingon: http://sourceforge.net/projects/lingon

    CronniX: http://code.google.com/p/cronnix

To sync hourly, create a task that runs hourly and runs the LNGS script with the silent option, i.e. "lngsync.sh -silent".

 

I get the "Logging into Google" message, but then LNGS seems to hang.

Run the separate utility named GCalConnectivityTest to help diagnose this problem. Download the utility from:

https://sourceforge.net/p/lngooglecalsync/code/HEAD/tree/lngooglecalsync/GCalConnectivityTest.zip

Copy the Client ID json file into the GCalConnectivityTest directory (see the Installation section at the top of this help file). Then run gcalconntest.cmd (if running under Windows). If the test succeeds, you can copy the client_credential file from the GCal Conn Test directory into the LNGS directory. Then restart LNGS and try to do a sync. The client_credential file should be about 950 bytes in size. If it is around 80 bytes, then it is probably not a valid file.

 

I get the error "This Java instance does not support a 32-bit JVM".

I get a "wrong ELF class: ELFCLASS32" error.

I get a "dll/so/dylib" error.

These errors are generally caused by not using a 32-bit version of Java. LNGS uses Notes.jar, the Java interface file installed with the Lotus Notes client. Notes.jar references some native library files (.dll files under Windows, .so files under Linux, and .dylib files under OS X). The native library files are all 32-bit, so a 32-bit version of Java must be used. The lngsync.vbs and lngsync.sh scripts try to locate and use a 32-bit version of Java.

·         If you get a dll/so/dylib, also look at the solutions in the next section.

·         Generally the Lotus Notes installation comes with its own version of Java. LNGS prefers to use this version because it will work with Lotus Notes. In lngsync.vbs or lngsync.sh try specifying the full path to the version of Java that was installed with Lotus Notes.
For Windows, the Lotus JVM is typically in c:\Program Files (x86)\Lotus\Notes\jvm\bin. Edit lngsync.vbs and change the javaPath = "" line.
For Linux and OS X, ecit lngsync.sh and change the JAVA_PATH="" line.

·         Try telling Java to run in 32-bit mode by using the -d32 flag (see orange below). For Linux or OS X, edit lngsync.sh then change the JAVA_COMMAND="$JAVA_PATH " line to look something like this (make sure there is a space after -d32):
JAVA_COMMAND="$JAVA_PATH -d32 "

·         OS X has utilities to show what versions of Java are installed. Read this post for info:
http://blog.hgomez.net/blog/2012/07/20/understanding-java-from-command-line-on-osx

 

I get the error "NotesException: Could not open the ID file".

I get the error "NotesException ID: 6402".

I get the error "Notes initialization failure - err 259".

I get the error "lngs.util.LngsException: There was a problem initializing the Lotus Notes thread."

I get a "dll/so/dylib" error.

These errors might be caused by several situations:

·         Try closing both LNGS and Lotus Notes. Then start LNGS first followed by Lotus Notes. Starting LNGS first sometimes resolves the problem.

·         Run the separate utility named LNConnectivityTest to help diagnose any of these problems. Download the utility from:
http://sourceforge.net/p/lngooglecalsync/code/HEAD/tree/lngooglecalsync/LNConnectivityTest.zip

·         For the dll/so/dylib error, for Windows make sure the environment PATH contains the directory that contains nlsxbe.dll. For Linux and OS X make sure the LD_LIBRARY_PATH contains the directory for liblsxbe.so (Linux) or liblsxbe.so (Linux) or liblsxbe.dylib (OS X). The lngsync.vbs and lngsync.sh scripts both try to set these paths appropriately. If the scripts don't work, then they will have to be updated manually to use the correct paths.
For Windows, if you don't want to edit lngsync.vbs for the PATH, here are instructions for changing the Windows PATH at the system level:
http://www.computerhope.com/issues/ch000549.htm

·         For the dll/so/dylib error, some users have found the problem goes away if they start Lotus Notes first followed by LNGS.

·         For the dll/so/dylib error under Windows sometimes the LNConnectivityTest will succeed, but running lngsync.vbs will still give the dll error. This can happen even though the Java Home, Java Classpath, and Java Library Path values are identical between LNConnectivityTest and LNGS. You can use the three Java values from LNConnectivityTest to edit lngsync.cmd. Strangely, sometimes a manually created lngsync.cmd file will work fine even though lngsync.vbs gives the dll error.

·         For errors like "java.lang.UnsatisfiedLinkError: C:\Program Files\Notes\nlsxbe.dll: The specified procedure could not be found", you can use Dependency Walker (http://www.dependencywalker.com) to open nlsxbe.dll and see if any supporting dll's are missing. It is also possible the Windows PATH is finding other dlls before the ones you want. Put the Lotus path at the beginning of your PATH line and try again.

·         For the ID file error, make sure you are running LNGS as the same user account with which you run Lotus Notes.

·         For the ID file error, make sure there is only one Notes.ini file in your path. LNConnectivityTest will give a warning if more than one Notes.ini is found. Also, the next bullet item discusses MultiUser values. Even if your system doesn’t have MultiUser set to 1, you might try creating the NotesIniPath in the Registy (as described below). Also, try editing your Notes.ini file and make sure the KeyFileName value refers to your ID file, e.g. KeyFileName=dhill.id.
Finally, if you still suspect that LNGS isn’t finding your Notes.ini file, then create a shortcut in the Lotus directory (e.g. in C:\Program Files (x86)\Lotus\Notes) which points to your Notes.ini (e.g. which is usually in C:\Users\<user-name>\AppData\Local\Lotus\Notes\Data\notes.ini).

·         If HKEY_LOCAL_MACHINE\Software\Lotus\Notes\MultiUser has a DWORD value of 1, then you have a multi-user installation (even if you are the only user of Lotus). Find the location of Notes.ini, probably somewhere like C:\Documents and Settings\(username)\Lotus.
Edit or create the String value below and set it to your Notes.ini directory.
HKEY_CURRENT_USER\Software\Lotus\Notes\(optional-version)\NotesIniPath

 

I get the error "NotesException ID: 6408".

A 6408 error usually means the Lotus Notes password is incorrect. Try re-entering the Lotus password in LNGS to make sure it is correct.

 

I get the error "NotesException ID: 4637".

A 4637 error usually means there is a Lotus Notes calendar entry that has an invalid date. Try reducing the sync days in past/future until the problem goes away. This experimenting should narrow down the day on which the problem calendar entry exists. If you can guess which entry is causing the problem, try deleting and re-creating the entry. If you can’t determine the problem entry, then describe the error on the LNGS message forum.

 

I get the error "lngs.util.LngsException: Unable to create Google calendar. " followed by this error

"javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target".

The SSLHandshakeException is usually caused by a missing security certificate. You need to find the network security certificates your company is using. This can be done as follows:

1.     Open a web browser window and go to Google Calendar.

2.     Near the URL bar, most browsers show a lock icon. Click the lock to see certificate information.

3.     Figure out how to export the certificate or certificates. Any export format should be fine, but .cer, .crt, or .der are probably preferred.

Once you have the certificates, they need to be added to the Java environment as follows. These steps are for Windows, but they are probably similar for Linux and OS X.

1.     Open a command-line window.

2.     Change to the JVM bin directory. Note: This must be the JVM you are using to run LNGS, e.g. C:\Lotus\jvm\bin.

3.     Run ikeyman.exe. A GUI application will open.

4.     Click Key Database File | Open.

5.     Click Browse. Under Files of Type, select All Files.

6.     Find the cacerts file, e.g. in C:\Lotus\jvm\lib\security\cacerts.

7.     Click OK to open cacerts.

8.     Enter the default password of "changeit".

9.     In the "Key database content" area of the window use the drop down to select Signer Certificates.

10.  Click Add.

11.  Click Browse and locate the certificate file(s) you downloaded. Click OK.

12.  Enter a descriptive label for the certificate(s) and click OK.

13.  The certificate(s) should now be added. Restart LNGS and try a sync again.

 

I get the error "javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?".

This means LNGS is trying to make an SSL connection to a non-SSL host. This can be caused if the proxy checkbox is selected in LNGS, but a proxy isn’t needed. So, try unchecking the proxy checkbox.

 

I get the error "com.google.gdata.util.ServiceException: Internal Server Error" and "Cannot access the calendar you requested".

The "Cannot access the calendar you requested" message will be buried inside some HTML text that starts with:

<html><head><meta http-equiv="content-type" content="text/html;charset=UTF-8">

<title>Error</title>

This error seems to occur when a calendar gets corrupted. Try to delete the old LNGS-created calendar in GCal then do a sync again to have the calendar and events re-created. If you can’t delete the old calendar, go to LNGS and change the Destination Calendar Name you are syncing to.

 

I get the error "Couldn’t create Lotus Notes Database object".

This error is usually caused by not having read/write permissions to the mail file (the .nsf file). Verify where the .nsf file is located and check the file permissions.

Try looking at the Lotus Notes console.log file (for Windows 7 this will be in c:\Users\<username>\AppData\Local\Lotus\Notes\Data\IBM_TECHNICAL_SUPPORT). The log may show errors accessing a database file. One user saw errors for a database file that had full-text indexing enabled. They did not have access rights to do a full text index on the database. Disabling indexing on the database removed all errors from console.log and LNGS. Note that the database in question had nothing to do with calendar or mail so disabling the indexing didn’t cause a problem.

 

I get the error "Illegal gd:reminder method or time specified: 2592000 seconds".

Google calendar entries can only have a reminder of 28 days or less. This is verified by manually creating a Google calendar entry and trying to set the reminder greater than 28 days (it won't allow you to set it). This error is caused by a Lotus entry having a reminder more than 28 days. Change the Lotus reminder to less than 28 days to resolve the problem.

 

I get the error "The system cannot find the file specified".

Some users have seen this error popup in a message box when the sync is retrieving entries from Lotus Notes. To resolve the problem, start the Lotus Notes client at least once before running LNGS. The Lotus Notes client can then be closed. There must be some file that only becomes available after the client is started.

 

LNGS cannot log into Google.

If you see any of these errors:

java.lang.Exception: Unable to login to Google. Perhaps you need to use a proxy server.

Caused by: com.google.gdata.util.AuthenticationException: Error connecting with login URI

Caused by: java.net.ConnectException: Connection refused: connect

then check these items:

If a firewall is used, are ports being blocked? Try disabling the firewall and do a sync.

If a proxy is used, is the proxy server information correct? To verify the proxy address being used, try using TCPView from Microsoft: http://technet.microsoft.com/en-us/sysinternals/bb897437.
1. Unzip and run tcpview.exe.
2. Open a web browser to Google Calendar.
3. In TCPView,  under "Process" look for your browser (e.g. iexplor.exe or firefox.exe or chrome.exe).
4. The proxy address is under
"Remote Address", e.g. "tus-proxy.ext.com".
5. The proxy port is under "Remote Port", e.g. 51819 or "http" (which means 80) or "https" (which means 443). Enter the proxy address and port into LNGS.
6. If there are still problems, try using the proxy IP instead of the name. In TCPView, uncheck Options | Resolve Addresses to see the IP address.

If you still have problems getting your proxy to work, it is slightly possible your proxy uses NTLM (Windows NT LAN Manager) authentication. See this user’s post for more information and a solution:

http://sourceforge.net/p/lngooglecalsync/discussion/943517/thread/e61cbaa1 

 

Calendar entries are created with the wrong time.

If the Lotus Notes entry has a start time of 1pm, but the Google calendar entry shows up at a different time, e.g. 3pm, then make sure all your Google time zones are consistent. There are multiple time zones in Google calendar: your user tz and a tz for each calendar. If you get into Calendar Settings, click the General tab to see your user tz. On the Calendars tab, click the LNGS calendar link to see the calendar's tz. The application should have created its calendar with the tz of your local machine. However, some people have reported that LNGS creates the calendar with the wrong time zone. In this case, you can manually fix the tz or delete the delete then re-create the calendar manually.

Another user said they resolved their tz problem by editing their Location in Lotus. In the Advanced tab, they forced the tz to EST. They then deleted the destination Google calendar and re-synced.

History Log

2.8  2016/5/11 Dean Hill

IMPORTANT: To upgrade to this release, follow the normal upgrade steps and also copy over all the files from the new lib directory to the old lib directory.

 

·         Note: The company I work for is switching from Lotus Notes to Outlook. (Yay for me!) The switch is still months away, but if you are interested in maintaining LNGS, email deanhill1971@gmail.com. A couple people have already expressed interest.

·         Fix: Changes in LNGS v2.7 caused issues with To Do tasks that didn't have a start or end time specified. This problem is now fixed.

·         Fix: In lngsync.sh, check if 'xset' command exists before calling the command.

·         Fix: In the Help file, the instructions for creating a Google Client ID have been updated because the Google screens changed significantly.

·         Enhancement: For OS X in lngsync.sh, in silent mode the script now prevents the Java icon from showing in the Dock.

·         Enhancement: Updated the Google API jar files being used from version 1.17.0 to 1.21.0. This resolved problems for some users. GCalConnectivityTest was also updated to these new jars.

 

2.7  2015/4/21 Dean Hill

·         Note: There are rumors that the company I work for is switching from Lotus Notes to Outlook. (Yay for me!) The switch may be months or years away, but I want to start looking for volunteers to maintain LNGS. If you are interested, email deanhill1971@gmail.com.

·         Fix: If the proxy server or port were changed, LNGS would not notice the change until being restarted. Now the configuration change is picked up immediately.

·         Fix: Fixed a rare problem where the Synchronize button would stay disabled if a proxy server wasn't defined.

·         Fix: The way LNGS determines if a calendar entry is repeating has been changed. This fixes a problem for a user.

·         Fix: The way LNGS retrieves start/end dates for a repeating calendar entry has been changed. This fixes a problem for a user.

·         Fix: In lngsync.vbs, added some more Registry search paths to find Lotus Notes values and made improvements for Lotus Notes v9. Thanks to JPonte and Peter Rosenberg.

·         Fix: There were some situations where LNGS would delete entries created in GCal (instead of leaving them alone). Thanks to Duythoven for reporting the problem.

·         Enhancement: Each Google Calendar can have 0 to 5 default reminders/notifications which are used when a new calendar entry is created. Previously LNGS would never use these default GCal reminders. Now, if "Alarms Become Google Reminders" is unchecked, then the GCal default reminders will be used by LNGS. When the box is checked, the Lotus Notes alarms are used instead of the GCal defaults.

·         Enhancement: In the Help File, added a Troubleshooting decription for how to resolve an SSL certificate problem.

·         Quote: Time you enjoy wasting, was not wasted. - John Lennon

 

2.6  2014/12/1 Dean Hill

·         Fix: Lotus Notes entires marked as conflicts (i.e. the $Conflict field exists) are now ignored. Conflicts aren't visible in Notes, but LNGS was creating them in GCal.

·         Fix: On a couple Ubuntu systems, LNGS couldn't detect the system tray so the main window was hidden and there was no tray icon. Now if a system tray icon can't be created, the LNGS window is made visible but minimized.

·         Fix: The lngsync.vbs script now uses the full path to lngsync.jar (not just the relative ./ path). This resolves an access denied error for some users. Thanks to dregad.

·         Enhancement: The lngsync.vbs script now logs more information to lngsync.log when in silent mode. It is also smarter about locating the Java executable.

·         Enhancement: The lngsync.sh script was changed for OS X to better find a compatible version of Java to use with LNGS.

·         Enhancement: The "Google Password" and "Connect to Google Using SSL/TLS" fields have been removed. These are no longer needed since moving to Google API v3 and OAuth.

·         Enhancement: This new option was added: "For Security, Don't Save Passwords on Exit". When checked, the Lotus Notes and Proxy passwords will not be saved to the LNGS config file and the user will have to enter the passwords each time LNGS is started.

·         Enhancement: Some changes were made to the source code to handle Exceptions more accurately.

·         Enhancement: The Sync Days in Past/Future values are now validated to make sure they are positive numbers.

·         Enhancement: Version 1.12 of the LNConnectivityTest app has been put in svn. Now all test output is logged to lnconntest.log.

·         Enhancement: A new GCalConnectivityTest app has been put in svn. This app can be used to diagnose problems connecting to Google Calendar.

·         Enhancement: In the Help File, added several items to the Troubleshooting section and added more information on how to properly create a Google Client ID.

·         Quote: Every saint has a past, and every sinner has a future. - Oscar Wilde

 

2.5.5  2014/3/23 Dean Hill

·         Enhancement: The Google authorization credential file is now stored in the LNGS directory, in the file named client_credential. You can delete the old credential directory. For Windows it was "C:\Users\<USERNAME>\.store" or "C:\Documents and Settings\<USERNAME>\.store". For OS X and Linux it was was "~/.store".

·         Fix: Unchecking "Alarms Become Google Reminders" should now work properly.

·         Fix: In lngsync.vbs, removed the double quotes around the Lotus jar filename. This caused problems for some users and was not needed.

 

2.5.4  2014/3/6 Dean Hill

·         Fix: For some users, all-day events were being created one-day early. A (third) change was made that should fix this problem.

·         Fix: Checking and unchecking Alarms Become Google Reminders in between syncs now works properly.

·         Fix: Made a change that might help with the "hanging while logging into Google" problem.

 

2.5.3  2014/2/25 Dean Hill

·         Fix: Several changes were made to prevent events from being deleted/recreated over and over due to Description differences.

·         Fix: For some users, all-day events were being created one-day early. A (second) change was made that might fix this problem.

 

2.5.2  2014/2/24 Dean Hill

·         Enhancement: If an "unauthorized client" error occurs, LNGS tries to fix the problem by deleting the existing credential file so it can be recreated.

·         Fix: Several changes were made to prevent events from being deleted/recreated over and over.

·         Fix: For some users, all-day events were being created one-day early. A change was made that might fix this problem.

 

2.5.1  2014/2/23 Dean Hill

·         Enhancement: The client_secret.json file is now read from the directory containing lngsync.jar. The first file named client_secret*.json is used.

·         Enhancement: The Installation section of the Help File describes how to create a client secrete file.

·         Fix: Several checks were added to see if Google Calendar is returning a null field.

·         Fix: All-day events should now be created correctly in Google Calendar.

·         Fix: Updated lngsync.sh to work with OS X Mavericks. Thanks Christoph.

 

2.5  2014/2/20  Dean Hill

·         Fix: Google API v3 is now used. The previously used v2 API is no longer supported by Google. Be sure to run LNGS in GUI mode at least once. The first time you do a sync, a web page will open asking you to authorize LNGS to access your Google Calendar. Click Accept. If you are using Internet Explorer and get an error message, try copying the original URL into a different  browser and try again.

·         Fix: If the Lotus Notes mailfile can't be opened, then the path information is removed and the open is tried again. This fixed one user's problem.

·         Enhancement: The Troubleshooting section of Help, now has more information about the "Couldn’t create Lotus Notes Database object" error. Thanks to David Zeleznik.

·         Enhancement: The Troubleshooting section of Help, now has information about the "Notes initialization failure - err 259" error. Thanks to Dan Walker for testing.

·         Enhancement: For the rare users that have problems with lngsync.vbs, the new file lngsync.cmd can be used. Lngsync.cmd is a very basic cmd file; the user must edit the file and fill in the correct startup values. Thanks to Anders Eklund for testing.

·         Note: The Winter Olympics in Sochi has been fun to watch. I don't know much about hockey, but have to root for both the US men's and women's teams.

·         Quote: Nothing is as simple as we hope it will be. - Jim Horning

·         Quote: Nothing is as simple as we hope it will be (especially Google API v3). - Dean Hill

 

2.4  2013/7/23  Dean Hill

·         Fix: LNGS was always deleting and recreating GCal entries because GCal changed their default value for when a calendar entry doesn't have a location. GCal previously used null; now it is "". LNGS now checks for both.

·         Fix: Google has a limit for the length of subject/title values, around 1600 characters. Lotus has some limit greater than Google. When the app compared a Lotus entry with a 2000 char subject to the corresponding Google entry (which had its description truncated to 1600), the app would incorrectly assume they didn't match. Now, subject values are truncated to 1000 chars before being added to Google and before the Lotus-to-Google compare is performed.

·         Fix: A syntax error in the OS X sections of lnconntest.sh and lngsync.sh was fixed. Thanks to Hajo Pross.

·         Enhancement: The date format used on a remote Lotus Notes server is sometimes different than the local client format (e.g. m/d/y vs d/m/y). This has been a recurring problem for a few users. A new Server Date Format field has been added to the Connection Settings tab so those users can specify the date format that works with their Lotus server.

·         Enhancement: The Troubleshooting section of Help, now talks about using TCPView to identify a proxy address.

·         Enhancement: The Troubleshooting section of Help, now talks about the "Cannot access the calendar you requested" error.

·         Enhancement: The lngsync.vbs script was changed to check the JAVA_HOME path for the location of javaw.exe. Thanks to David Zeleznik.

·         News: I ran a second Tough Mudder race with a group of co-workers. Fun time (but I hate the Electric Eel).

·         Quote: It has been said that democracy is the worst form of government except all the others that have been tried. - Winston Churchill

 

2.3  2013/2/25  Dean Hill

·         Fix: Non-printing control characters are now removed from the Lotus location/room string before creating the GCal entry. When such characters were present, the GCal create would fail. Thanks to Bruno Portaluri.

·         Fix: Rare instances where reminder minute offsets could be floating-point values with a locale decimal point of "," are now handled. Thanks to Per B.

·         Fix: The lngsync.sh script now puts quotes around the CLASSPATH (so paths with spaces in them don't cause problems).

·         Fix: Some GUI fields were truncated when viewed in Linux and OS X. This is now fixed.

·         Enhancement: A Detect Proxy Settings button has been added to the Connections tab.

·         Enhancement: After each sync, all output is now written to lngsync.log. This log can then be emailed to help diagnose problems.

·         Enhancement: If the type of a Lotus entry can't be determined, it is now assumed to be a meeting. This solved a problem for at least one user.

·         Enhancement: Sometimes lngsync.vbs wouldn't auto-detect the locations of files correctly. The script now has variables named lotusPath, lotusIniPath,  javaPath, and useLotusJava at the top of the script so users can easily customize the locations of files. Thanks to axeldoerr for some of the changes.

·         Enhancement: The lngsync.vbs now defaults to useLotusJava=1 because this should be the best choice for most users.

·         Enhancement: The lngsync.sh script was enhanced to work with both Lotus Notes v8 and v9. Thanks to Michael Steiner.

·         Enhancement: The lngsync.sh script was enhanced to work with OS X versions 10.8 and greater. This was done because starting with OS X 10.8, the location of Lotus Notes changed from "Notes.app" to "Lotus Notes.app". Thanks to Ray Wilson.

·         Enhancement: Added information in the Help file about proxy servers that user NTLM authentication. Thanks to elysiummtl.

·         Quote: Religion without science is superstition. Science without religion is materialism. - Bahá'u'lláh

 

2.2  2012/4/23  Dean Hill

·         Fix: The date format used on the Lotus Notes server was sometimes different than the local client format (e.g. m/d/y vs d/m/y). This has been a recurring problem, that is hopefully fixed permanently.

·         Enhancement: If the sync fails, a tooltip message will popup on the tray icon.

·         Enhancement: On the Connection Settings tab there is now a "Detect Lotus Settings" button which will help new users determine their correct Lotus Notes values.

·         Enhancement: The Lotus Notes Username field has been removed because it was never used.

·         Enhancement: Unknown Lotus Notes appointment types are now created as standard Google calendar appointments (instead of generating an error).

·         Enhancement: Settings are now saved whenever a tab is changed (not just when the application exits).

·         Enhancement: Version 1.9 of the LNConnectivityTest app has been put in svn. Several minor enhancements were made.

·         Quote: You see things; and you say: "Why?" But I dream things that never were; and I say: "Why not?" - George Bernard Shaw

 

2.1  2011/1/31  Dean Hill

To upgrade from a 1.x version, unzip the new files and copy/rename your old lngooglecalsync.properties to lngsync.config in the new-version directory. To upgrade from a 2.x version, just copy your old lngsync.config into the new-version directory.

·         Enhancement: You can now vote on LNGS enhancements at https://trello.com/#board/lngs-enhancements/4e74ad0661b3d1ea93a96a54

·         Enhancement: Entries manually created in Google Calendar are now left untouched by LNGS. Previously they were deleted from Gcal.

·         Enhancement: Lotus Notes allows showing entries from external calendars. External calendar entries are now ignored by LNGS. Previously the entries were added to Gcal which could lead to duplicates.

·         Enhancement: In the Help file, added screen shots of the application.

·         Enhancement: In the Help file, described how to use Google 2-step verification with this application. Thanks fordprefect_s.

·         Enhancement: In the Help file, added links to two other calendar sync applications in case LNGS doesn't work for some people.

·         Enhancement: The New Version announcement was changed from being a simple message box to a dialog.

·         Enhancement: Version 1.8 of the LNConnectivityTest app has been put in svn. Several minor enhancements were made.

·         Fix: When syncing a remote Lotus Notes server that formatted dates different than the local client (e.g. an Lotus Notes server with US formatting and a client with German formatting), then the wrong number of Lotus Notes entries were sometimes being found.

·         Fix: The sync date range values were always based on when LNGS was originally launched (even if LNGS had been running in the tray for many days). The range is now recalculated at the start of each sync.

·         Fix: After several changes to the 'Sync at These Minute Offsets' list, the schedule would be incorrect. This has been fixed.

·         News: This is a huge time of change for Indianapolis Colts fans. The Super Bowl is in Indy this week. Go Giants!

·         Quote: My life is my message. - Mahatma Gandhi

 

2.0  2011/7/17  Dean Hill

To upgrade from a 1.x version, unzip the new files and copy/rename your old lngooglecalsync.properties to lngsync.config in the new-version directory.

·         Enhancement: To be notified of new releases, subscribe to this RSS feed:
https://sourceforge.net/api/file/index/project-id/259914/mtime/desc/limit/20/rss
When a new version is added to the Release file folder, the RSS will show that new files were added.

·         Enhancement: The application now has a lotus flower icon in the system tray. Double click to open. Right click for options.

·         Enhancement: The application now minimizes to the system tray.

·         Enhancement: The icalbridge.jar file was renamed lngsync.jar.

·         Enhancement: The lngooglecalsync.properties file was renamed lngsync.config.

·         Enhancement: Syncing can now be scheduled through the GUI (so schedulers like cron aren't needed).

·         Enhancement: For privacy, subjects can now be synced to a specific value through the GUI.

·         Enhancement: Syncing Location and Room info can be turned off through the GUI.

·         Enhancement: Added code to retry connecting to Google if there is a network error during log on.

·         Enhancement: Sync Days in Past/Future no longer include thousands separators, e.g. 1,000 is now 1000.

·         Enhancement: Made a couple improvements to lngsync.sh. Thanks Michael Steiner.

·         Enhancement: The path to the Help file should now be correct/found for all users.

·         Enhancement: Notes.jar has been removed from the /lib directory. This file was just taking up space because the application uses the local copy of Notes.jar installed with the Lotus Notes client. Each OS and version of the Lotus Notes client probably has a different Notes.jar.

·         Enhancement: If the destination calendar is changed, a warning now says that all non-LNGS entries will be deleted.

·         Enhancement: The Troubleshooting section of Help, now talks about 'The system cannot find the file specified' error.

·         Enhancement: Version 1.7 of the LNConnectivityTest app has been put in svn. The entered password is no longer echoed to the screen.

·         News: USA lost in the FIFA Women’s World Cup final. :-(   Congrats to the Japan team. It was a great game.

 

1.12.1  2011/3/3  Dean Hill

 

1.12  2011/2/28  Dean Hill

·         Enhancement: A message box will popup the first time the GUI is run for a new version of LNGS. The new version updates will be shown.

·         Enhancement: The way dates are handled on non-United States systems was changed to be more generic. The method used in v1.11 didn't work for several users.

·         Enhancement: If the Lotus Notes entry has the Mark Private checkbox checked, then the entry is made Private in Google calendar.

·         Enhancement: Refactored the way Diagnostic Mode messages are logged by using a callback to the main class. This allows diagnostic messages to show more details.

·         Enhancement: A couple classpath improvements were made in lngsync.sh and lnconntest.sh.

·         Enhancement: Version 1.6.1 of the LNConnectivityTest app has been put in svn. When checking paths, the case sensitivity of the underlying OS is now taken into consideration.

·         Enhancement: Several users requested a way to donate funds to the project, so PayPal donation information has been added to the Help file.

 

1.11 2011/1/24  Dean Hill

·         Fix: When searching for Lotus Notes entries by date range, the United States date format was always used. With the start of 2011, this caused some non-US users to have problems. Now the date format is retrieved from the OS.

·         Fix: Resolved a NullPointerException bug when an entry didn't have a Subject.

·         Fix: Resolved a NullPointerException when a Google Calendar didn't have a title.
Thanks to Michael Steiner for this fix.

·         Enhancement: Previously, if the “days in future” value was reduced, say from 60 days to 40 days, then there would be “stale” items still visible in Google. In this example, there would be 20 days of previously synced items that are no longer being synced. To prevent confusion, all Google calendar entries that are past the “days in future” date are now being deleted. So, the 40 days of items will be actively synced to Google and the 20 days of stale items will be deleted.

·         Enhancement: In Diagnostic Mode, the local machine's time zone and the destination calendar's time zone are now displayed.

·         Enhancement: The lngsync.sh script now exits with the return code of running LNGS.
Thanks to joerg for this enhancement.

·         Enhancement: The lngsync.vbs script lists the environment paths is a better priority order now so Lotus Notes dlls are more likely to be found.
Thanks to consil for this enhancement.

·         Enhancement: Version 1.5.1 of the LNConnectivityTest app has been put in svn. The lnconntest.vbs script was enhanced to auto-detect Lotus Notes paths more accurately. If multiple paths for notes.ini are found but the paths only differ in capitalization, then only one occurrence of the path is shown.

·         Enhancement: In the Help file's Troubleshooting section, added info on when LNGS cannot log into Google.

·         Enhancement: In the Help file, added how to download PAC scripts from Internet Explorer.

 

1.10  2010/11/2  Dean Hill

·         Fix: If the "Days in the Past" value was something other than 7, then there was a difference in the date range used for selecting Lotus Notes entries versus the date range used for selecting Google entries. The ranges are now always the same.

·         Fix: Google has a limit for the length of entry descriptions, around 8100 characters. Lotus has a limit greater than Google. When the app compared a Lotus entry with a 9000 char description to the corresponding Google entry (which had its description truncated to 8100), the app would incorrectly assume they didn't match. Now, descriptions are truncated to 8000 chars before being added to Google and before the Lotus-to-Google compare is performed.

·         Fix: Corrected an index-out-of-range exception reported by loochie.

·         Enhancement: If an entry can't be created in Google, the error message now gives the Subject and Start Date to help diagnose the problem.

·         Enhancement: The lngsync.vbs script was enhanced to auto-detect Lotus Notes paths more accurately.

·         Enhancement: Version 1.4.1 of the LNConnectivityTest app has been put in svn. The lnconntest.vbs script was enhanced to auto-detect Lotus Notes paths more accurately. Also, the script will try to use the JVM that was installed with Lotus Notes.

 

1.9  2010/10/25  Dean Hill

·         Enhancement: The sync date range can now be configured. Change the Sync Date Range values on the Sync Settings tab. As part of this change, the application no longer has to create a Lotus Notes View. A query is used instead.

·         Enhancement: The status text area on main GUI screen now auto scrolls as new lines are added. Previously, the user had to manually scroll down after the text area got filled with text.

 

1.8  2010/10/7  Dean Hill

·         Enhancement: Lotus Notes has both a Location field and a Room field. In previous versions, it was assumed only one field could have a value (which is usually true). However, it is possible to set both fields, e.g. Location = "New York Blg 3" and Room = "Fancy Conf Room". If only one field is used it is put directly into the Google Where field. Starting with this release, if both Lotus fields have values, then they are concatenated (with a colon separator) and put in the Where field, e.g. "New York Blg 3 : Fancy Conf Room".

·         Enhancement: The LNConnectivityTest app now has a .sh script for running under Linux and OS X. Also, the Windows run script is now a .vbs file.

·         Enhancement: Added a Help button on the GUI. When clicked, HelpFile.html is opened in the default web browser.

·         Enhancement: In the Help file's Troubleshooting section, added info on setting up hourly syncing for Linux and OS X. Also added info about duplicate calendar entries showing up in Google Calendar.

·         Enhancement: In the Help file, added a table of contents and a “Building the Application” section.

 

1.7  2010/9/8  Dean Hill

·         Fix: Version 1.6 introduced syncing of only modified entries. Assume a sync was done without sync alarms checked. If sync alarms was then checked and a second sync performed, the application wouldn't recognize that the entries had changed and they weren't synced. This problem has been fixed for all the optional sync checkboxes.
Thanks to brosa for reporting this issue.

·         Enhancement: The Google calendar name can now be specified on the Sync Settings tab. If the calendar doesn't exist, the application will create it on the first sync.

·         Enhancement: Lotus attendees can now be synced to the Google description area. See “Attendees are Listed at Top of Description” on the Sync Settings tab.
Thanks to Jonathan Marshall for this enhancement.

·         Enhancement: Added code to retry connecting to Google if there is a network error during deletes.

·         Enhancement: In the Help file's Troubleshooting section, added more tips for fixing dll/so/dylib errors. Also added more troubleshooting info on calendar entries with the wrong time.

 

1.6  2010/7/26  Dean Hill

·         Fix: There was a situation when passwords could be encoded/obfuscated more than once in the config file.
Thanks to Michael Steiner for this fix.

·         Enhancement: The run scripts and log file have been renamed.
run_windows.vbs is now lngsync.vbs.
run_unix is now lngsync.sh.
icalbridge.log is now lngsync.log.

·         Enhancement: Only modified calendar entries are sync'd. This is done by storing the Lotus UID, start time, and modified time in the Google IcalUID field. The first time you sync with this new version all the Google entries will be deleted and replaced (as usual). All subsequent syncs will only sync modifications. If a modification is found, the entry is deleted and recreated. This makes syncs much faster.
Thanks to Michael Steiner for providing sample source code for only syncing modifications. He also reported that Google has a limit of how many deletions are allowed in a time period. Deleting all Google entries for every sync was causing some people to reach this limit.

·         Enhancement: Several changes were made to the lngsync.sh Unix script. It now works with jar files built using Eclipse. The app is normally built with NetBeans, but some users re-compile with Eclipse.
The script sometimes failed running under cron because the X11 DISPLAY variable wasn't defined. This is fixed.
The script checks for the "-silent" switch and creates lngsync.log file.
Several changes were made so the script works better under OS X.
Thanks to Jonathan Marshall, Michael Steiner, and welner for the changes.

·         Enhancement: lngsync.vbs now gets the Lotus data path from the Registry and adds it to the PATH.

·         Enhancement: In Diagnostic Mode, the file GoogleInRangeEntries.txt is now created.

·         Enhancement: The diagnostic text files and properties/config file are now always created in the same directory as the main jar file. A Linux user saw the files created in their home directory.

·         Enhancement: In the Help file's Troubleshooting section, added a solution to the "Illegal gd:reminder" error.

 

1.5.1  2010/7/8  Dean Hill

·         Fix: Version 1.5 had some debug code enabled that caused only some entries to be synced. This is now fixed.

·         Enhancement: If there is a network error connecting to Google, the retry logic now retries 10 times with a pause of 200 msecs between tries. Previously there were only 3 retries with no delay.

 

1.5  2010/7/7  Dean Hill

·         Enhancement: Added proxy server authentication. On the Connection Settings tab, set the proxy Username and Password.

·         Enhancement: Passwords are no longer stored as readable text. If you think passwords should be secured further, start a discussion on the forum.
Many thanks to Jonathan Marshall for working on this enhancement.

·         Enhancement: In the Help file's Troubleshooting section, added info about the LNConnectivityTest tool to help diagnose Lotus connection problems.

·         Enhancement: There is a new setting in the settings file named ConfigVersion. This will be used to track what version/format of the config file is being read.

 

1.4.1  2010/6/25  Dean Hill

 

1.4  2010/6/23  Dean Hill

Both the USA and England advanced out of the World Cup group stage. Sweet!

 

1.3  2010/6/14  Dean Hill

 

1.2  2010/6/2  Dean Hill

 

1.1  2010/5/24  Dean Hill

 

1.0  2010/5/21  Dean Hill

 

0.4  2010/4/26  Dean Hill

A large number of changes were made, including the following.