Updating Appointments and Meetings
Topic Last Modified: 2006-06-12
You can update the properties and fields of an appointment or meeting that is saved in your calendar folder. For appointments, you overwrite the original appointment in the Exchange store with the updated appointment. For meetings, in addition to saving the changes to the Exchange store, you must send the updates to attendees. If you are not the meeting organizer and you update a meeting in your calendar folder, any updates you accept from the meeting organizer overwrite your updates.
To update an appointment or a meeting
- Open an appointment or meeting in the Calendar folder as shown in Getting Appointments and Meetings from Folders in Exchange. Be sure to open the appointment in read/write mode by using adModeReadWrite.
- Change the properties and fields of the appointment or meeting.
- Save the appointment or meeting to the calendar folder using the IAppointment.Datasource.Save method.
The code in the following example checks all of the appointments and meetings in the calendar of user12 on the Microsoft® Exchange 2000 server in the exchange.microsoft.com domain. It changes any appointment or meeting scheduled in the "Flamingo Room" to the "Mount Rainier Room" and saves the appointment.
Example
Visual Basic
Note
The following example uses a file URL with the Exchange OLE DB (ExOLEDB) provider. The ExOLEDB provider also supports The HTTP: URL Scheme. Using The HTTP: URL Scheme allows both client and server applications to use a single URL scheme.
Dim CalendarURL As String
Dim ItemURL As String
Dim Rs As New ADODB.Recordset
Dim Rec As New ADODB.Record
Dim Conn As New ADODB.Connection
Dim iAppt As New Appointment
Dim Target As String
Dim NewValue As String
Dim Location As String
Target = "Flamingo Room"
NewValue = "Mount Rainier Room"
'Using the Exchange OLE DB provider
CalendarURL = "file://./backofficestorage/user12.fourthcoffee.com/MBX/user12/calendar/"
'Open a recordset for the items in the calendar folder
Rec.Open CalendarURL
Set Rs.ActiveConnection = Rec.ActiveConnection
Rs.Source = "SELECT ""DAV:href"", ""urn:schemas:calendar:location"" from scope('shallow traversal of """ & CalendarURL & """')"
Rs.Open
'Enumerate the recordset, checking each item's location
Rs.MoveFirst
Do Until Rs.EOF
'get the location of each item
Location = Rs.Fields(CdoCalendar.cdoLocation).Value
'test for desired location
If (Location = Target) Then
'open appointment in read/write mode and update the location property
ItemURL = Rs.Fields(CdoDAV.cdoHref).Value
iAppt.DataSource.Open ItemURL, , adModeReadWrite
iAppt.Location = NewValue
iAppt.DataSource.Save
End If
Rs.MoveNext
Loop