OL2000: How to Retrieve All Recurring Appointments with Code

ID: Q201101


The information in this article applies to:
  • Microsoft Outlook 2000


SYMPTOMS

When writing programming code that retrieves a set of calendar appointments in Microsoft Outlook, you can only retrieve the first instance of a recurring appointment.


CAUSE

Recurring appointments are not automatically included in the collection of appointment items.


RESOLUTION

Set the collection's IncludeRecurrences property to True.


MORE INFORMATION

Microsoft provides programming examples for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This article assumes that you are familiar with the programming language being demonstrated and the tools used to create and debug procedures. Microsoft Support professionals can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific needs. If you have limited programming experience, you may want to contact the Microsoft fee-based consulting line at (800) 936-5200. For more information about the support options available from Microsoft, please see the following page on the World Wide Web:

http://www.microsoft.com/support/supportnet/overview/overview.asp

In Outlook, you can create a recurring appointment, such as a meeting that occurs every Monday. Using Visual Basic Scripting Edition (VBScript) or Visual Basic for Applications code, you can do either of the following:
  • Use the entire items collections to access all of the appointments.


  • Use the Restrict method to retrieve a subset of the appointments.


For example, assume a recurring appointment was originally created on the first Monday in January and the appointment was set to recur on every Monday thereafter. If you do not use the IncludeRecurrences property, the only appointment in January to be returned would be the first Monday. Subsequently, if you retrieve the appointments in February, none of the recurring appointments are retrieved.

When programmatically referring to a group of appointments, these items are part of the Items collection object. Once you have set an object variable to the entire collection of items, you can then use the IncludeRecurrences property to optionally include all of the recurring appointments. Next you would typically use the Restrict method if you want to use a subset of the entire collection. Then you could optionally sort the collection.

The following automation example assumes you have already set up one recurring appointment in your calendar and that you have the Calendar folder selected. Because it does not use the Restrict method, it will return all appointments in the Calendar.

Sub GetRecurrences()

   Set myOlApp = New Outlook.Application

   ' Set myItems to all of the items in the folder. The Calendar
   ' folder must be selected before running this code.
   Set myItems = myOlApp.ActiveExplorer.CurrentFolder.Items

   ' Set the IncludeRecurrences property to make sure all of the
   ' recurring appointments are also included in the collection.
   myItems.IncludeRecurrences = True

   ' Sort the collection based on the start of the appointment.
   myItems.Sort "[Start]"

   ' Display one of the recurring appointments which have been included.
   MsgBox "The fifth instance of the recurring appointment " & _
      "occurs on:" & myItems.Item(5).Start

End Sub 


REFERENCES

For additional information about available resources and answers to commonly asked questions about Microsoft Outlook 2000 solutions, please see the following article in the Microsoft Knowledge Base:

Q146636 OL2000: Questions About Custom Forms and Outlook Solutions

Additional query words: OutSol OutSol2000 OL2K

Keywords : kbprg kbdta kbdtacode OffVBS
Version : WINDOWS:2000
Platform : WINDOWS
Issue type : kbhowto


Last Reviewed: November 13, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.