Hi list,

We are currently developing an Gcal mapiproxy module which allows
synchronization between Exchange calendar and Google Calendar.
We have a draft that Julien saw, and we are going to release a new
version, we would need some advices and recommendations to do so.
In order to manage multi-user we heard about mpm_session, is there
code using it we can inspire?

To be able to delete and edit calendar events we need something to
match gcal events with exchange ones.
We heard about pdb database, any doc?  any code?

About the protocol I will try to describe how our module is going to behave :

- get the root Folder ID: should be in the result of logon_req as far
as I remember, there must be a constant for the index of FID array,
mustn't there?
- get the PR_IPM_APPOINTMENT_ENTRYID
- then compute the Appointment FID

Outlook -> gCal

New Event : (this part already almost work fine)
- detect CreateMessage on Appointment FID: save Handle
- detect SetProps on the saved Handle
- add the new event with setProps properties
- add database entry with MessageId, Gcal EventId and a hash of the
Gcal Event in order to detect gCal modifications.

Edit Event:
- detect OpenMessage on Appointment FID: save Handle
- detect SetProps on the saved Handle
- get Gcal Event Id matching MessageId
- send changes on gcal

Delete Event
- detect Deletion, don't know the Mapi function name but shouldn't be
the hardest thing
- get the database matching Gcal Event id
- delete it on gcal

gCal -> Outlook

This part is still obscure but I think about getting all gCal events
from current time, and check if they are in our database else we add
them.
We also check whether hashes are equal and we update the exchange
event and the hash if needed.

But the question is when do we launch this synchronization ?
I think we can run it every minute, is this a bad idea?

Else libgcal provide functions to get gcal contacts so there is
probably potential interesting features  with this...

This mail is about announcing our module development and getting some advices.
Any help will be welcomed.
Thanks

-- 
Sidney Amani
_______________________________________________
devel mailing list
[email protected]
http://mailman.openchange.org/listinfo/devel

Reply via email to