[GH-ISSUE #65] Outlook 2007 support: what would be the roadmap ? #532

Closed
opened 2026-03-01 17:39:39 +03:00 by kerem · 21 comments
Owner

Originally created by @PierreMarieBaty on GitHub (Oct 6, 2015).
Original GitHub issue: https://github.com/aluxnimm/outlookcaldavsynchronizer/issues/65

Hello there and first, thank you for this excellent Outlook add-in.
I'm using it with Outlook 2010 and Davical and it seems to work very well.
I'd like to use it with Outlook 2007. I am aware that it requires a port because the add-in APIs are not the same.
I'm an experienced C/C++ programmer and in dire need of that port, yet writing Outlook add-ins is something I haven't done yet. That's why I'm asking:

  • From the point of view of people who already wrote Outlook add-ins and have a rough idea of what would need to be done, is the idea of an Office 2007 port of this add-in worth the effort ? Are the APIs that different ?
  • If someone (e.g. me) creates such a port, can we hope it be merged in the main branch ? I ask this because new versions seem to be coming out pretty fast these days and I wouldn't like at all to spend all my time updating the Outlook 2007 port after the main branch.
  • Give me some advice: what would be the steps I'd need to follow to do that ? What would be the difficulties ? I've just started reading articles such as this one: http://blogs.msdn.com/b/emeamsgdev/archive/2012/02/24/create-an-outlook-add-in-for-outlook-2007-and-2010-in-one-solution.aspx and if I get it right, it should not be too long, unless I'm completely mistaken. Please enlighten me :)
Originally created by @PierreMarieBaty on GitHub (Oct 6, 2015). Original GitHub issue: https://github.com/aluxnimm/outlookcaldavsynchronizer/issues/65 Hello there and first, thank you for this excellent Outlook add-in. I'm using it with Outlook 2010 and Davical and it seems to work very well. I'd like to use it with Outlook 2007. I am aware that it requires a port because the add-in APIs are not the same. I'm an experienced C/C++ programmer and in dire need of that port, yet writing Outlook add-ins is something I haven't done yet. That's why I'm asking: - From the point of view of people who already wrote Outlook add-ins and have a rough idea of what would need to be done, is the idea of an Office 2007 port of this add-in worth the effort ? Are the APIs that different ? - If someone (e.g. me) creates such a port, can we hope it be merged in the main branch ? I ask this because new versions seem to be coming out pretty fast these days and I wouldn't like at all to spend all my time updating the Outlook 2007 port after the main branch. - Give me some advice: what would be the steps I'd need to follow to do that ? What would be the difficulties ? I've just started reading articles such as this one: http://blogs.msdn.com/b/emeamsgdev/archive/2012/02/24/create-an-outlook-add-in-for-outlook-2007-and-2010-in-one-solution.aspx and if I get it right, it should not be too long, unless I'm completely mistaken. Please enlighten me :)
kerem closed this issue 2026-03-01 17:39:39 +03:00
Author
Owner

@aluxnimm commented on GitHub (Oct 7, 2015):

Our focus will be on Outlook 2016 and not "ancient" versions, but if you create a working pull request, we can merge it.

The differences in the API aren't that big I believe. But you need to rewrite the UI, since Outlook 2007 doesn't support the ribbon UI. In a very early release we had the old UI code in the project, so you can check that commit for the changes
github.com/aluxnimm/outlookcaldavsynchronizer@c77d425bb7

You need to use that old commandbar interface if you detect Outlook 2007 and the ribbon interface for newer versions.

Other changes are necessary maybe in the EventEntityMatcher for the attendee and organizer logic, not sure if Outlook 2007 supports the PropertyAccessor calls..

<!-- gh-comment-id:146096469 --> @aluxnimm commented on GitHub (Oct 7, 2015): Our focus will be on Outlook 2016 and not "ancient" versions, but if you create a working pull request, we can merge it. The differences in the API aren't that big I believe. But you need to rewrite the UI, since Outlook 2007 doesn't support the ribbon UI. In a very early release we had the old UI code in the project, so you can check that commit for the changes https://github.com/aluxnimm/outlookcaldavsynchronizer/commit/c77d425bb7b8b0771c60bc401ce22f12efb5e0fd You need to use that old commandbar interface if you detect Outlook 2007 and the ribbon interface for newer versions. Other changes are necessary maybe in the EventEntityMatcher for the attendee and organizer logic, not sure if Outlook 2007 supports the PropertyAccessor calls..
Author
Owner

@PierreMarieBaty commented on GitHub (Oct 10, 2015):

"create a working pull request"... being a SVN user, I never used Git before, so I don't know how to "create a pull request" and don't want to catch a hernia pulling things :-) Whatever. I can send you diff files, or the full zipped source if you prefer.

Anyway, thanks to your helpful tips I've managed to have the addin start up in Outlook 2007. The toolbar displays properly (3 buttons with icons), and the Options and About dialogs seem to work as expected.

http://hpics.li/bdba79e <--- screenshot

Now I've got another problem, the Synchronize button doesn't seem to work. But it doesn't throw anything, and I'm yet to figure out how to debug that. I see the code seems to log stuff, how can I display them ?

<!-- gh-comment-id:147114001 --> @PierreMarieBaty commented on GitHub (Oct 10, 2015): "create a working pull request"... being a SVN user, I never used Git before, so I don't know how to "create a pull request" and don't want to catch a hernia pulling things :-) Whatever. I can send you diff files, or the full zipped source if you prefer. Anyway, thanks to your helpful tips I've managed to have the addin start up in Outlook 2007. The toolbar displays properly (3 buttons with icons), and the Options and About dialogs seem to work as expected. http://hpics.li/bdba79e <--- screenshot Now I've got another problem, the Synchronize button doesn't seem to work. But it doesn't throw anything, and I'm yet to figure out how to debug that. I see the code seems to log stuff, how can I display them ?
Author
Owner

@aluxnimm commented on GitHub (Oct 10, 2015):

UI part looks good thx.
for logging see trouble shooting and debugging section in readme.md

<!-- gh-comment-id:147116818 --> @aluxnimm commented on GitHub (Oct 10, 2015): UI part looks good thx. for logging see trouble shooting and debugging section in readme.md
Author
Owner

@PierreMarieBaty commented on GitHub (Oct 10, 2015):

Well well, manual synchronization works !

I can add/remove events from Outlook and they are replicated on my DaviCal server. It works both ways.

The strange thing is that it doesn't download my existing events. It only works for new events, not the ones that were already on my CalDav server. Do you have any idea why ?

<!-- gh-comment-id:147120679 --> @PierreMarieBaty commented on GitHub (Oct 10, 2015): Well well, manual synchronization works ! I can add/remove events from Outlook and they are replicated on my DaviCal server. It works both ways. The strange thing is that it doesn't download my existing events. It only works for new events, not the ones that were already on my CalDav server. Do you have any idea why ?
Author
Owner

@aluxnimm commented on GitHub (Oct 10, 2015):

What does the log.txt show?

<!-- gh-comment-id:147123111 --> @aluxnimm commented on GitHub (Oct 10, 2015): What does the log.txt show?
Author
Owner

@PierreMarieBaty commented on GitHub (Oct 10, 2015):

A manual sync yields this:

INFO 2015-10-10 22:18:22,193 [ VSTA_Main] CalDavSynchronizer.ComponentContainer . .ctor - Startup...
INFO 2015-10-10 22:18:22,383 [ VSTA_Main] CalDavSynchronizer.ComponentContainer . .ctor - Startup finnished
INFO 2015-10-10 22:18:52,260 [ VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Starting 'Running synchronization profile 'Pierre-Marie Baty''
INFO 2015-10-10 22:18:52,290 [ VSTA_Main] GenSync.Synchronization.Synchronizer6 . MoveNext - Entered. Syncstrategy 'TwoWayInitialSyncStateCreationStrategy6' with Atype='AppointmentItemWrapper' and Btype='IICalendar'
INFO 2015-10-10 22:18:52,320 [ VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Starting 'CalDavRepository.GetVersions'
INFO 2015-10-10 22:18:52,350 [ VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Duration of 'CalDavRepository.GetVersions': 00:00:00.0306496
INFO 2015-10-10 22:18:53,361 [ VSTA_Main] GenSync.Synchronization.Synchronizer6 . MoveNext - Atype delta: Unchanged: 0 , Added: 0 , Deleted 0 , Changed 0 INFO 2015-10-10 22:18:53,381 [ VSTA_Main] GenSync.Synchronization.Synchronizer6 . MoveNext - Btype delta: Unchanged: 0 , Added: 0 , Deleted 0 , Changed 0
INFO 2015-10-10 22:18:53,401 [ VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Duration of 'Running synchronization profile 'Pierre-Marie Baty'': 00:00:01.1230402

But there are plenty of events on my Davical server, which I set up previously, either with my iPhone, or with the Outlook 2010 that I used previously. It looks like it doesn't see them.

(P.S. sorry for the horrible formatting. If you know how to format my post better, you're welcome...)

<!-- gh-comment-id:147123306 --> @PierreMarieBaty commented on GitHub (Oct 10, 2015): A manual sync yields this: INFO 2015-10-10 22:18:22,193 [ VSTA_Main] CalDavSynchronizer.ComponentContainer . .ctor - Startup... INFO 2015-10-10 22:18:22,383 [ VSTA_Main] CalDavSynchronizer.ComponentContainer . .ctor - Startup finnished INFO 2015-10-10 22:18:52,260 [ VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Starting 'Running synchronization profile 'Pierre-Marie Baty'' INFO 2015-10-10 22:18:52,290 [ VSTA_Main] GenSync.Synchronization.Synchronizer`6 . MoveNext - Entered. Syncstrategy 'TwoWayInitialSyncStateCreationStrategy`6' with Atype='AppointmentItemWrapper' and Btype='IICalendar' INFO 2015-10-10 22:18:52,320 [ VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Starting 'CalDavRepository.GetVersions' INFO 2015-10-10 22:18:52,350 [ VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Duration of 'CalDavRepository.GetVersions': 00:00:00.0306496 INFO 2015-10-10 22:18:53,361 [ VSTA_Main] GenSync.Synchronization.Synchronizer`6 . MoveNext - Atype delta: Unchanged: 0 , Added: 0 , Deleted 0 , Changed 0 INFO 2015-10-10 22:18:53,381 [ VSTA_Main] GenSync.Synchronization.Synchronizer`6 . MoveNext - Btype delta: Unchanged: 0 , Added: 0 , Deleted 0 , Changed 0 INFO 2015-10-10 22:18:53,401 [ VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Duration of 'Running synchronization profile 'Pierre-Marie Baty'': 00:00:01.1230402 But there are plenty of events on my Davical server, which I set up previously, either with my iPhone, or with the Outlook 2010 that I used previously. It looks like it doesn't see them. (P.S. sorry for the horrible formatting. If you know how to format my post better, you're welcome...)
Author
Owner

@aluxnimm commented on GitHub (Oct 10, 2015):

And you use the time range filter in the options dialog and set correct timespan values for syncing in the past and future?

<!-- gh-comment-id:147125911 --> @aluxnimm commented on GitHub (Oct 10, 2015): And you use the time range filter in the options dialog and set correct timespan values for syncing in the past and future?
Author
Owner

@PierreMarieBaty commented on GitHub (Oct 10, 2015):

I actually disabled the time range filter. My understanding is that it should give me all events, past and future, right ?

<!-- gh-comment-id:147125948 --> @PierreMarieBaty commented on GitHub (Oct 10, 2015): I actually disabled the time range filter. My understanding is that it should give me all events, past and future, right ?
Author
Owner

@aluxnimm commented on GitHub (Oct 10, 2015):

Yes, right.
Maybe something went wrong in the initial attempts. Try to delete the sync cache folder in
C:\Users\AppData\Local\CalDavSychronizer and start a fresh run.

In the log should be something about inital population, and use direction outlook<-caldav to see if it downloads anything.

<!-- gh-comment-id:147126550 --> @aluxnimm commented on GitHub (Oct 10, 2015): Yes, right. Maybe something went wrong in the initial attempts. Try to delete the sync cache folder in C:\Users<Your Username>\AppData\Local\CalDavSychronizer and start a fresh run. In the log should be something about inital population, and use direction outlook<-caldav to see if it downloads anything.
Author
Owner

@PierreMarieBaty commented on GitHub (Oct 10, 2015):

Cache folder deleted (I assume that was the folder that has a GUID as name), synced again --> same thing.

Changed to Outlook <-- Caldav (replicate) mode, synced again --> same thing.

Changed to Outlook <-- Caldav (merge) mode, synced again --> same thing.

Out of scariness I logged in to my remote server and checked the contents of the Davical server... ARGH ! my events are gone !!! How can that be ?

<!-- gh-comment-id:147126950 --> @PierreMarieBaty commented on GitHub (Oct 10, 2015): Cache folder deleted (I assume that was the folder that has a GUID as name), synced again --> same thing. Changed to Outlook <-- Caldav (replicate) mode, synced again --> same thing. Changed to Outlook <-- Caldav (merge) mode, synced again --> same thing. Out of scariness I logged in to my remote server and checked the contents of the Davical server... ARGH ! my events are gone !!! How can that be ?
Author
Owner

@aluxnimm commented on GitHub (Oct 10, 2015):

maybe during your various failed tests you synced an empty outlook folder outlook->caldav . of course the sync run would replicate the empty folder then :(

<!-- gh-comment-id:147127158 --> @aluxnimm commented on GitHub (Oct 10, 2015): maybe during your various failed tests you synced an empty outlook folder outlook->caldav . of course the sync run would replicate the empty folder then :(
Author
Owner

@PierreMarieBaty commented on GitHub (Oct 10, 2015):

It's not too serious for my events. I can restore them from a backup.

Still, I'm almost certain to never ever have selected this way of syncing. I've been very cautious. I always selected either outlook <-- caldav (merge and replicate), or bidirectional.

Is it possible that in bidirectional mode, under special circumstances, events can be deleted ? I do believe that is what happened. The events were older than the calendar, so, could CalDavSync assume that an empty calendar that's more recent than an older calendar filled with events supercedes the latter ?

<!-- gh-comment-id:147127350 --> @PierreMarieBaty commented on GitHub (Oct 10, 2015): It's not too serious for my events. I can restore them from a backup. Still, I'm almost certain to never ever have selected this way of syncing. I've been very cautious. I always selected either outlook <-- caldav (merge and replicate), or bidirectional. Is it possible that in bidirectional mode, under special circumstances, events can be deleted ? I do believe that is what happened. The events were older than the calendar, so, could CalDavSync assume that an empty calendar that's more recent than an older calendar filled with events supercedes the latter ?
Author
Owner

@aluxnimm commented on GitHub (Oct 10, 2015):

During initial sync if outlook folder is empty and server has events, it will download the events. But e.g if you then change the outlook folder in the options to a new empty one, it has same effect as deleting events locally (since they are in the cache but not in the new folder and the timestamp is newer than the server one) and therefore it syncs the delete to the server.

<!-- gh-comment-id:147127925 --> @aluxnimm commented on GitHub (Oct 10, 2015): During initial sync if outlook folder is empty and server has events, it will download the events. But e.g if you then change the outlook folder in the options to a new empty one, it has same effect as deleting events locally (since they are in the cache but not in the new folder and the timestamp is newer than the server one) and therefore it syncs the delete to the server.
Author
Owner

@PierreMarieBaty commented on GitHub (Oct 10, 2015):

...so, for example, uninstalling Outlook 2010, wiping the calendar, and reinstalling Outlook 2007 without emptying the add-in's sync cache folder could lead to this result ?

hmmmm... something's kinda dangerous here. IMO we should put a warning when deleting a large number of events, to have the user confirm that. Better safe than sorry...

<!-- gh-comment-id:147128196 --> @PierreMarieBaty commented on GitHub (Oct 10, 2015): ...so, for example, uninstalling Outlook 2010, wiping the calendar, and reinstalling Outlook 2007 _without_ emptying the add-in's sync cache folder could lead to this result ? hmmmm... something's kinda dangerous here. IMO we should put a warning when deleting a large number of events, to have the user confirm that. Better safe than sorry...
Author
Owner

@aluxnimm commented on GitHub (Oct 10, 2015):

Yes that would lead to the same scenario, you are right!

Some warning would be useful and also a button to delete the sync cache from the options dialogin order to trigger a new inital sync.

<!-- gh-comment-id:147128851 --> @aluxnimm commented on GitHub (Oct 10, 2015): Yes that would lead to the same scenario, you are right! Some warning would be useful and also a button to delete the sync cache from the options dialogin order to trigger a new inital sync.
Author
Owner

@aluxnimm commented on GitHub (Oct 10, 2015):

btw: good help page regardin pull requests:
https://help.github.com/articles/using-pull-requests/

<!-- gh-comment-id:147128945 --> @aluxnimm commented on GitHub (Oct 10, 2015): btw: good help page regardin pull requests: https://help.github.com/articles/using-pull-requests/
Author
Owner

@PierreMarieBaty commented on GitHub (Oct 10, 2015):

Thanks. I'm still having problems with the sync. I thought it was working both ways, but I've set up three recurring events in Outlook and they don't seem to be uploaded correctly. The sync task begins but never ends. No error message. Any idea ?

edit Can't seem to be able to upload the log file. It looks like this :

INFO 2015-10-11 00:11:50,845 [ VSTA_Main] CalDavSynchronizer.ComponentContainer . .ctor - Startup...
INFO 2015-10-11 00:11:51,025 [ VSTA_Main] CalDavSynchronizer.ComponentContainer . .ctor - Startup finnished
INFO 2015-10-11 00:12:02,349 [ VSTA_Main] CalDavSynchronizer.ComponentContainer . MoveNext - Synchronization manually triggered
INFO 2015-10-11 00:12:02,369 [ VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Starting 'Running synchronization profile 'Pierre-Marie Baty''
INFO 2015-10-11 00:12:02,409 [ VSTA_Main] GenSync.Synchronization.Synchronizer6 . MoveNext - Entered. Syncstrategy 'TwoWayInitialSyncStateCreationStrategy6' with Atype='AppointmentItemWrapper' and Btype='IICalendar'
INFO 2015-10-11 00:12:02,459 [ VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Starting 'CalDavRepository.GetVersions'
INFO 2015-10-11 00:12:02,499 [ VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Duration of 'CalDavRepository.GetVersions': 00:00:00.0340495
INFO 2015-10-11 00:12:15,401 [ VSTA_Main] GenSync.Synchronization.Synchronizer6 . MoveNext - Atype delta: Unchanged: 0 , Added: 5 , Deleted 0 , Changed 0 INFO 2015-10-11 00:12:15,401 [ VSTA_Main] GenSync.Synchronization.Synchronizer6 . MoveNext - Btype delta: Unchanged: 0 , Added: 1 , Deleted 0 , Changed 0
INFO 2015-10-11 00:12:15,421 [ VSTA_Main] hronizer.Implementation.CalDavRepository . MoveNext - Starting 'CalDavRepository.Get (1 entitie(s))'
INFO 2015-10-11 00:12:16,261 [ VSTA_Main] hronizer.Implementation.CalDavRepository . MoveNext - Duration of 'CalDavRepository.Get (1 entitie(s))': 00:00:00.8313621
INFO 2015-10-11 00:12:20,902 [ VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Skipping run of Synchronization profile 'Pierre-Marie Baty', because it is currently already running.
INFO 2015-10-11 00:12:50,927 [ VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Skipping run of Synchronization profile 'Pierre-Marie Baty', because it is currently already running.
INFO 2015-10-11 00:13:20,944 [ VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Skipping run of Synchronization profile 'Pierre-Marie Baty', because it is currently already running.
INFO 2015-10-11 00:13:50,960 [ VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Skipping run of Synchronization profile 'Pierre-Marie Baty', because it is currently already running.

<!-- gh-comment-id:147129723 --> @PierreMarieBaty commented on GitHub (Oct 10, 2015): Thanks. I'm still having problems with the sync. I thought it was working both ways, but I've set up three recurring events in Outlook and they don't seem to be uploaded correctly. The sync task begins but never ends. No error message. Any idea ? _edit_ Can't seem to be able to upload the log file. It looks like this : INFO 2015-10-11 00:11:50,845 [ VSTA_Main] CalDavSynchronizer.ComponentContainer . .ctor - Startup... INFO 2015-10-11 00:11:51,025 [ VSTA_Main] CalDavSynchronizer.ComponentContainer . .ctor - Startup finnished INFO 2015-10-11 00:12:02,349 [ VSTA_Main] CalDavSynchronizer.ComponentContainer . MoveNext - Synchronization manually triggered INFO 2015-10-11 00:12:02,369 [ VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Starting 'Running synchronization profile 'Pierre-Marie Baty'' INFO 2015-10-11 00:12:02,409 [ VSTA_Main] GenSync.Synchronization.Synchronizer`6 . MoveNext - Entered. Syncstrategy 'TwoWayInitialSyncStateCreationStrategy`6' with Atype='AppointmentItemWrapper' and Btype='IICalendar' INFO 2015-10-11 00:12:02,459 [ VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Starting 'CalDavRepository.GetVersions' INFO 2015-10-11 00:12:02,499 [ VSTA_Main] hronizer.Implementation.CalDavRepository . GetVersions - Duration of 'CalDavRepository.GetVersions': 00:00:00.0340495 INFO 2015-10-11 00:12:15,401 [ VSTA_Main] GenSync.Synchronization.Synchronizer`6 . MoveNext - Atype delta: Unchanged: 0 , Added: 5 , Deleted 0 , Changed 0 INFO 2015-10-11 00:12:15,401 [ VSTA_Main] GenSync.Synchronization.Synchronizer`6 . MoveNext - Btype delta: Unchanged: 0 , Added: 1 , Deleted 0 , Changed 0 INFO 2015-10-11 00:12:15,421 [ VSTA_Main] hronizer.Implementation.CalDavRepository . MoveNext - Starting 'CalDavRepository.Get (1 entitie(s))' INFO 2015-10-11 00:12:16,261 [ VSTA_Main] hronizer.Implementation.CalDavRepository . MoveNext - Duration of 'CalDavRepository.Get (1 entitie(s))': 00:00:00.8313621 INFO 2015-10-11 00:12:20,902 [ VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Skipping run of Synchronization profile 'Pierre-Marie Baty', because it is currently already running. INFO 2015-10-11 00:12:50,927 [ VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Skipping run of Synchronization profile 'Pierre-Marie Baty', because it is currently already running. INFO 2015-10-11 00:13:20,944 [ VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Skipping run of Synchronization profile 'Pierre-Marie Baty', because it is currently already running. INFO 2015-10-11 00:13:50,960 [ VSTA_Main] ronizer.Scheduling.SynchronizationWorker . MoveNext - Skipping run of Synchronization profile 'Pierre-Marie Baty', because it is currently already running.
Author
Owner

@PierreMarieBaty commented on GitHub (Oct 10, 2015):

Correction:
Syncing works from Server to Outlook 2007.
It doesn't work from Outlook 2007 to Server.
I don't know why I believed it was working. Looks like there's still a bit more debug to do.

Additional info:
I figured out why I thought it was working.
Deleting events do work from Outlook 2007 to server. It's adding them that doesn't.

Summary:
Outlook --> Server ____ Add event ____ FAIL
Outlook --> Server ____ Modify event __ FAIL
Outlook --> Server ____ Delete event __ Success
Server --> Outlook ____ Add event ____ Success
Server --> Outlook ____ Modify event __ Success
Server --> Outlook ____ Delete event __ Success

I haven't found how to debug this C# yet (I'm a total newbie with C#) but I can tell it blocks in Synchronizer.cs, this line:

                var nextState = await s.PerformSyncActionNoThrow();

Does that ring a bell to you ?

There seems to be several flavors of this function, I don't know which one to look.

<!-- gh-comment-id:147131537 --> @PierreMarieBaty commented on GitHub (Oct 10, 2015): Correction: Syncing works from Server to Outlook 2007. It doesn't work from Outlook 2007 to Server. I don't know why I believed it was working. Looks like there's still a bit more debug to do. Additional info: I figured out why I thought it was working. _Deleting_ events do work from Outlook 2007 to server. It's adding them that doesn't. Summary: Outlook --> Server ____ Add event ____ FAIL Outlook --> Server ____ Modify event __ FAIL Outlook --> Server ____ Delete event __ Success Server --> Outlook ____ Add event ____ Success Server --> Outlook ____ Modify event __ Success Server --> Outlook ____ Delete event __ Success I haven't found how to debug this C# yet (I'm a total newbie with C#) but I can tell it blocks in Synchronizer.cs, this line: ``` var nextState = await s.PerformSyncActionNoThrow(); ``` Does that ring a bell to you ? There seems to be several flavors of this function, I don't know which one to look.
Author
Owner

@PierreMarieBaty commented on GitHub (Oct 11, 2015):

Found it !

private void MapOrganizer1To2 (AppointmentItem source, IEvent target)

This function in EventEntityMapper.cs calls source.GetOrganizer() on an AppointmentItem, but the Office 2007 way of doing things is slightly different :

https://msdn.microsoft.com/en-us/library/office/ff184615.aspx

Commenting the function out, I can create and modify events from Outlook to Server. Yay ! I'm gonna rewrite it more properly now.

edit: Fixed. I now have a working Outlook 2007 port. There may be other bugs though, but I'm not going to hunt them down. I'll fix them as soon as they appear.

Final edit: Here you are. A "working pull request" :)

<!-- gh-comment-id:147149368 --> @PierreMarieBaty commented on GitHub (Oct 11, 2015): Found it ! private void MapOrganizer1To2 (AppointmentItem source, IEvent target) This function in EventEntityMapper.cs calls source.GetOrganizer() on an AppointmentItem, but the Office 2007 way of doing things is slightly different : https://msdn.microsoft.com/en-us/library/office/ff184615.aspx Commenting the function out, I can create and modify events from Outlook to Server. Yay ! I'm gonna rewrite it more properly now. _edit_: Fixed. I now have a working Outlook 2007 port. There may be other bugs though, but I'm not going to hunt them down. I'll fix them as soon as they appear. _Final edit_: Here you are. A "working pull request" :)
Author
Owner

@Offerel commented on GitHub (Jan 14, 2016):

Thx for adding this here. Maybe for the meantime, is there maybe a simple workaround?

<!-- gh-comment-id:171649493 --> @Offerel commented on GitHub (Jan 14, 2016): Thx for adding this here. Maybe for the meantime, is there maybe a simple workaround?
Author
Owner

@PierreMarieBaty commented on GitHub (Jan 14, 2016):

Indeed, currently the Outlook 2007 bit lacks some features with the toolbar UI :

  • it doesn't preserve the visibility settings of the toolbar across Outlook restarts
  • it doesn't preserve the position of the toolbar across Outlook restarts

Those features being of cosmetical importance to me (my Outlook 2007 is always open and my computer hardly ever shutdowns), I didn't bother pursuing them.

I suppose those settings could (should ?) be stored in the registry. [ edit wrong: they're stored in a user settings file, Microsoft says. ]

Unfortunately I've uninstalled the VSTO build tools. Anyway, what should be done should look like this :
https://msdn.microsoft.com/en-us/library/ms268891.aspx

I don't have time to do this myself right now, but if someone wants to copy/paste/adapt this code, then build and send me a beta, I can test it. I'm quite confident it'll work at the first try.

<!-- gh-comment-id:171669840 --> @PierreMarieBaty commented on GitHub (Jan 14, 2016): Indeed, currently the Outlook 2007 bit lacks some features with the toolbar UI : - it doesn't preserve the visibility settings of the toolbar across Outlook restarts - it doesn't preserve the position of the toolbar across Outlook restarts Those features being of cosmetical importance to me (my Outlook 2007 is always open and my computer hardly ever shutdowns), I didn't bother pursuing them. I suppose those settings could (should ?) be stored in the registry. [ _edit_ wrong: they're stored in a user settings file, Microsoft says. ] Unfortunately I've uninstalled the VSTO build tools. Anyway, what should be done should look like this : https://msdn.microsoft.com/en-us/library/ms268891.aspx I don't have time to do this myself right now, but if someone wants to copy/paste/adapt this code, then build and send me a beta, I can test it. I'm quite confident it'll work at the first try.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/outlookcaldavsynchronizer#532
No description provided.