Hello,
I wonder how I can add a variance of a recurring appointment programmatically. The CalendarInfo is not bound to a datasource. I expected something like: myRecurringAppointment.Recurrence.Variances.Add(new Appointment(...)), but there is no Add method.
Also some "tricks" like assigning the RecurrenceId of the root appointment to the variance isn't possible due to the missing setter of the RecurrenceId property.
So, how can I add a variance programmatically? Every help with this is highly appreciated.
A member of a recurring series becomes a variance when one or more of its property values deviates from that of the root appointment. You cannot arbitrarily make an appointment a variance, but if you explicitly set its Subject, StartDateTime, Description, Location, etc., to a different value, the appointment will then become a variance.
Thanks for your fast reply.
Your answer brings another question to my mind: Then, how do I edit a recurring appointment (the whole series), if every change, that I apply to the properties will lead into creation of a variance?
Thanks Brian, that helps me out a lot.
An AppointmentRecurrence is based on an appointment; this appointment is referenced by the AppointmentRecurrence.RootAppointment property. That appointment does not have any physical manifestation, it is rather used as a template by which its occurrences are generated. When you change properties on the RootAppointment, those new property values are "inherited" by each occurrence that does not have a specific setting for the property, and changing the property values of the RootAppointment does not trigger variance creation.
When you double-click on a member of a recurrence and the AppointmentDialog appears, you will notice an intermediary dialog appears, prompting for whether the series or just the individual occurrence should be edited. The way this is handled internally is, when the user elects to edit the series, the AppointmentDialog edits the RootAppointment, and when they edit the occurrence , the occurrence that was generated by the recurrence is edited.