Your ARRAY is the Calendar folder. You can cycle through all items in it. If you build by a post test loop that tests the endpoint of the events, you can cycle on through. If you allow it to pull the data from a currently selected event, you can re-run this to push the recurrences further into the future ( so you can continue recurring again and again until the whole cycle is over), and it will create an event for each one. You can mark them, compare data, and even add Secondary Categories in 2010 outlook. That way you can cycle both your category and another (allowing them to change even the subject so they can update it). Now you've got a simple way to update all of them, and if you use an outer loop based on the date of the selected item or today, it will only update future items. For lawyers, this is key, as it will keep an accurate record of the event information at the time of the event. This can be archived with a test that checks backward to a certain length, and then runs a report of all events before deleting them, saving on email server space, and keeping a legal record of the data.
You can even work across multiple calendars.
Eg.
sub begin
Dim myOuterFolder As Object
Dim myInnerFolder As Object
Dim myItem As Object
For Each myInnerFolder in myOuterFolder
For Each myItem in myInnerfolder
Do something with it
next
next
end
If the Calendar folder is the outer array, and the calendar itself (which is a folder) is the inner array, and the items are the data in the inner array (appointment items), these become the cycle you can use for your update macro. Now, imagine that you just had some simple numbers to control the creation macro:
Sub Begin
Dim dateCurrentItem as DATEVALUE
Dim dateEndItems as DATEVALUE
*\\ Right here you would SET dateCurrentItem to the startdate of your starting appt, next you will add 1year to it, then set dateEndItems to that new value, and set dateCurrentItem back to the start-date of your first appointment (the one selected)
Dim recurPattern as *\\right here you can specify it as a Form based selection
Do
*\\here, you can build the first new appointment in the next part of the form by showing the date built from a recurPattern selection-->switch statement that allows them to continually change the occurrence pattern for the next event
*\\you can allow them to change the date in the Form by typing it in, the time as well, and you can continually poll for their conflict property (possibly with a button to show a message-box with info on the conflicts)
*\\create the event by copying the information properties from the original (test what type: appointment or Meeting) and apply recipients as well
*\\now you can send\Save if you like and the event is created, just be sure to set some marker to identify it as a recurring event from your program
*\\If they set an endpoint for the recurrences or a last occurrence date, you can set that variable now and move on to the test; this allows for active and constant adjustment of the booking window
While dateCurrentItem >= dateEndItems
*\\Post Test Loop: it will happen at least once but can be stopped with a Break statement linked to a DONE button
*\\I recommend running the loop from the send all function here
End
If you are worried about Resources being booked, there's an answer for that to. When you run Update, Don't update the Resources right away. You could create a message that asks about added or changed resources and then move to a form to process it. Now you can update those that match the old resource, and if there are a few that were changed on their own, show them and ASK IF they should be changed as well, and then act on that. Now any that denied resources initially and had a resource change to make them workable will get updated for information but not resource, or they will get moved to a better resource.