The Journey Behind Meeting Schedule Assistant

Meeting Schedule Assistant dialog

Developing Meeting Schedule Assistant (MSA) has been a deeply rewarding journey—one that’s been unfolding for over 20 years. What began as a small project to simplify scheduling has grown into a powerful, feature-rich tool used by many around the world.

Tackling the Toughest Challenge: Auto Assign

One of the most challenging features to implement was the automatic assignment1 functionality within the assignments editor. It needed to feel natural, intelligent, and flexible—all while respecting the diverse needs of congregations. Balancing those expectations with technical feasibility pushed me to think creatively and improve the way the software handles data and logic.

Auto Assign Single Column window in the Assignments Editor

A Global Collaboration

Computer keyboard with multicoloured keys, each labeled 'Hello' in a different language.

As MSA evolved, supporting multiple languages became increasingly important. Today, the app is translated—fully or partially—into more than 50 languages. This wouldn’t have been possible without the help of a wonderful group of volunteers. Collaborating with them has been a highlight of this journey.

Some languages were particularly tricky—Arabic, for example, brought unique challenges due to its right-to-left layout. But solving those problems helped the application become more inclusive and accessible for users everywhere.

Discovering the Power of XSLT

Another major turning point came when a fellow translator introduced me to XSLT transformations2. That opened up a whole new level of flexibility, allowing users to customize how their schedules are rendered and exported. Even now, I’m still discovering new ways to leverage XSLT to make MSA more powerful and adaptable.

Using XSLT transformations to display schedules in the Meeting Editor
Using XSLT transformations to display schedules

Modernizing with WebView2

Bringing MSA into the modern era also meant finding ways to blend traditional technologies like MFC with modern web capabilities. Learning to work with WebView23 was both fascinating and rewarding.

It enabled the integration of sleek, interactive elements right within the app—something that would’ve been difficult, if not impossible, using MFC alone.

One task that became significantly easier with WebView2 was saving schedules to PDF. Now, it’s possible to print and save directly to PDF, making the process far simpler and more reliable than with MFC alone.

Using WebView2 to display and print schedules in the Report Viewer.
Using WebView2 to display and print schedules

Embracing Calendar Synchronisation

One of the more transformative additions to Meeting Schedule Assistant was support for calendar synchronisation. This journey began with a VB.NET console application that integrated with Google Calendar4. Encouraged by its usefulness, I later added support for Outlook Calendar5.

Screenshot of the Meeting Schedule Assistant Calendar Options window displaying synchronized calendar data on the right side.
Configuring calendar synchronisation

More recently, the Outlook synchronization tool was completely rewritten from the ground up using C# and .NET 8.0, providing a more robust, maintainable, and modern solution. The original VB.NET-based Google Calendar tool remains in place for now.

Enhancing the Editing Experience with Scintilla

Snapshot of the Scintilla's autocomplete feature in action
Scintilla’s autocomplete feature in action

As the application matured, I found it increasingly important to improve the text editing experience—especially for advanced users managing custom scripts or templates. That’s when I turned to the Scintilla control6. Learning how to integrate and customize Scintilla was a turning point.

It allowed me to offer powerful features like syntax highlighting, line numbers, and code folding, all of which made the Script Editor7 much more intuitive and productive. Rather than building an editor from scratch, Scintilla provided a flexible foundation that could be styled and extended to suit the application’s needs.

Embracing the Dark Side

Most recently, I was thrilled to finally add dark mode8 support. That might sound simple, but it was no small feat given that MFC doesn’t natively support dark themes. Getting it to work across the application required creative workarounds and careful design, but the results have made the app much easier on the eyes—especially during long hours of use.

Screenshot showing how to change the dark mode by using the Appearance sub-menu.
Setting the dark mode

A Project That Keeps Giving

Looking back, it’s been an incredible experience—one filled with constant learning, collaboration, and the joy of creating something that helps others. Meeting Schedule Assistant has come a long way, and the journey is far from over. I’m excited to keep building, improving, and supporting this project for as long as it’s needed.

Citations

  1. Meeting Schedule Assistant — Automatic Assigning ↩︎
  2. W3 Schools — XSLT Introduction ↩︎
  3. Microsoft Edge — WebView2 ↩︎
  4. Google Calendar API overview ↩︎
  5. Overview of Microsoft Graph ↩︎
  6. Scintilla Control ↩︎
  7. Meeting Schedule Assistant — Script Editor ↩︎
  8. Meeting Schedule Assistant — Appearance ↩︎

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.