| Platform SDK: Exchange 2000 Server |
[This is preliminary documentation and subject to change.]
Exceptions are specific appointments that are added, modified, or deleted from the pattern of a recurring appointment or meeting. For example, if a recurring pattern generates a meeting that falls on a holiday, you can define an exception to that one instance of the recurring pattern.
CDO uses both IRecurrencePattern objects and IException objects to define exceptions to recurring appointments and meetings. The following table shows how each object can be used.
| Object | Type | Action |
|---|---|---|
| IRecurrencePattern | Add | Adds a set of instances. |
| IRecurrencePattern | Delete | Deletes a set of instances. |
| IException | Add | Adds a single instance. |
| IException | Delete | Deletes a single instance. |
| IException | Modify | Changes the properties of one or more instances (equivalent to a Microsoft Outlook exception). |
To create an exception to a recurring appointment or meeting
The following code example creates a recurring meeting, deletes the meeting instance on Friday November 26, 1999, and adds a meeting instance on Monday November 29, 1999.
Dim iAppt As New Appointment
Dim Config As New Configuration
Dim RRULE As IRecurrencePattern
Dim iCalMsg As CalendarMessage
Dim iAttendee As New Attendee
Dim EXDATE As IException
Dim RDATE As IException
Dim CalendarURL As String
CalendarURL = "file://./backofficestorage/" & DomainName & "/MBX/" & UserName & "/calendar/"
'Set the configuration fields
Config.Fields(cdoSendEmailAddress) = UserName & "@" & DomainName
Config.Fields.Update
iAppt.Configuration = Config
'Set the first appointment properties
iAppt.StartTime = #10/15/1999 10:00:00 AM#
iAppt.EndTime = #10/15/1999 11:30:00 AM#
iAppt.Subject = "Department meeting"
iAppt.Location = "Oak Room"
'Create the RecurrencePattern object
Set RRULE = iAppt.RecurrencePatterns.Add("Add")
'Define the recurrence pattern
RRULE.Frequency = cdoWeekly 'use a weekly pattern
RRULE.Interval = 2 'every 2 weeks
RRULE.PatternEndDate = #12/24/1999 11:30:00 AM# 'the last appointment
'Delete the appointment instance on November 26
Set EXDATE = iAppt.Exceptions.Add("Delete")
'The ID is the start time of the instance being deleted
EXDATE.RecurrenceID = #11/26/1999 10:00:00 AM#
'Add an appointment instance on November 29
Set RDATE = iAppt.Exceptions.Add("Add")
RDATE.StartTime = #11/29/1999 10:00:00 AM#
RDATE.EndTime = #11/29/1999 11:30:00 AM#
'Add an attendee
Set iAttendee = iAppt.Attendees.Add
iAttendee.Address = "someone@" & DomainName
iAttendee.Role = cdoRequiredParticipant
'Create the calendar message and send it
Set iCalMsg = iAppt.CreateRequest
iCalMsg.Message.Send
'Save the appointment to the organizer's calendar
iAppt.DataSource.SaveToContainer CalendarURL