Overview
Calendar sharing in version 11.1 has been completely redesigned to make calendar sharing faster and more reliable than ever. We've drawn on all the lessons learned over the past several years and worked on eliminating the things that didn't work reliably, such as the dependency on the overly-complex Microsoft SQL Server and syncing changes based on time-stamps. The occasional weird calendar sharing glitches in the previous version will no longer rear their ugly heads after updating to the latest version.
How to Migrate Shared Calendars
If you shared calendars in version 11.0.5 or earlier, sharing will need to be re-enabled after updating to version 11.1.0. You can find instructions for installing and configuring MySQL Server here. After installing MySQL Server, follow these steps to re-enable sharing of your calendars:
- Delete the previously shared calendar from all computers except one. The account that re-enables sharing of the calendar will be considered the calendar owner and will be the only account that can change user permissions for the shared calendar.
- Open the Calendar Properties by double-clicking the calendar's name.
- On the Sync tab, select "Share this calendar with VueMinder on other computers".
- Adjust the user permissions as needed. Unlike the previous version, the shared calendar will automatically appear on other computers where users have reader or contributor access, so make sure you pick "No Access" for any users that you don't want to see your shared calendar.
- Click the OK button. The calendar is now shared and will be visible to other users that have access. Easy!
Goodbye Microsoft SQL Server, Hello MySQL Server
In the previous version, VueMinder Server wrapped the installation of Microsoft SQL Server 2008 R2. The intent was to make the installation easier, since setting up MS SQL Server is a nightmare of complexity. While this worked reasonably well, it didn't solve the root cause. In our experience, MS SQL Server is just too complex and has too many configuration issues for it to be managed by typical end users. While it might work great in a corporate environment where some poor sod's full-time job is to manage the server and solve all the weird issues that arise, this just isn't a viable solution for VueMinder's target market. We needed to find something simpler.
Some other calendar programs sync through the Windows file system, but that's not a 100% reliable approach, especially if there are multiple people making changes at the same time. The Windows file system is inherently unsuitable for reliably syncing data. That's what database servers are for. One of the hard lessons we learned is that 99% reliability isn't good enough. We needed to find a way to make calendar syncing bullet-proof but still simple enough to setup and maintain by normal people.
Our solution was to redesign how syncing works, using a transactional approach rather than a timestamp comparison approach. We built this redesigned approach on top of MySQL Server - a very popular, free, and simple database server. We've spent countless hours testing every conceivable scenario on how data could be modified, to ensure that changes made on one computer appear on other computers exactly as expected. Our approach was to keep testing and making corrections until syncing worked flawlessly. The result is something we believe is truly revolutionary.
What Has Changed?
Here's a list of all the things that have been improved by VueMinder's new approach for sharing data...
- Changes sync instantly. Previously, it could take up to 30 seconds for a change on one computer to appear on other computers. Now it happens immediately. You'll also notice VueMinder's performance when sharing calendars has been greatly improved, since syncing doesn't require nearly as much CPU as it did previously.
- As mentioned above, calendar sharing reliability has been drastically improved over the previous version by using a new approach for syncing data changes.
- When a calendar is shared, it will automatically appear on other computers for accounts that have access to the shared calendar. The "Add Shared Calendar From Local Network" command on the File menu has been removed because it's no longer necessary. Share a calendar and it instantly appears on other computers. No fuss.
- When reminders are dismissed or snoozed by a user on one computer, those reminders will have the same dismiss or snoozed state for that user on other computers. You could snooze a reminder for 30 minutes on one computer, switch to a different computer, and the reminder will reappear at the time it was snoozed for on the original computer.
- Reminder sharing for specific user names was broken in the previous version. This has been fixed. You can choose for all users to see a reminder or only specific users, based on their database user name entered in the Sharing Options.
- Online/offline operation is now perfectly seamless. Any changes you make while offline, even if you quit and restart VueMinder, will be collected. As soon as a connection is re-established, those changes will sync to the server and instantly appear on other computers. Also, any changes other computers made while you were offline will instantly appear on your computer. Previously, this worked somewhat, but was not entirely reliable, especially if events were deleted or VueMinder was restarted while offline.
- A "View Log" button has been added to the Sharing Options. Clicking that button will show a log of all the changes that have been made to shared items. Want to know who modified an event and when they did it? You can find out now by using the Show Log button. The log is derived from all the recorded transactions VueMinder uses to reliably sync data.
- Changes made to shared calendars can be undone. For example, if you accidentally delete an event in a shared calendar, you can undo the deletion via the "Undo" command on the Edit menu or by pressing Ctrl+Z. Previously, the Undo command was disabled for shared calendars because there was no way to make it work reliably with the way syncing was designed. This is no longer the case.
- The Calendar Properties window has been greatly simplified. Instead of having separate tabs for each type of sync setting, these have all been combined on a single "Sync" tab. This makes configuring a calendar to be shared much easier for first-time users that might have been overwhelmed with all the tabs and options in the previous version.
- In some cases, it was possible for locked or read-only items to be dragged, categorized, prioritized, or deleted by accounts that should not have permission to make changes. This has been corrected.
- In the previous version, assigning an item from one shared calendar to another didn't always work as expected. Sometimes duplicates would be generated or the item would disappear. This has been corrected.
- Computers in different time zones can now sync data through the server without causing event and task times to become incorrect.
- Sometimes, in the previous version, duplicate custom fields could be created when syncing. This is no longer the case.
- And a bunch more minor corrections and improvements, all making calendar syncing in the latest version more reliable than ever.