Share via


How to: Create a Recurring Appointment

Any appointment becomes a recurring appointment when you retrieve its recurrence pattern object, set the recurrence values, and then save the Appointment. The following procedure demonstrates how to create an appointment that recurs every Monday at 2:00 P.M.

To create a recurring appointment

  1. Create an instance of the Pocket Outlook application object and then use it to establish a POOM session. For more information, see How to: Establish a POOM Session.

  2. Declare and initialize a pointer to a new IAppointment interface object, as follows:

    IAppointment *pAppt = NULL;
    
  3. Create a PIM item:

    polApp->CreateItem(olAppointmentItem, (IDispatch**)&pAppt);
    
  4. Create a SYSTEMTIME object, and initialize it with a start date:

    memset(&st, 0, sizeof(SYSTEMTIME));
    st.wMonth = 7;
    st.wDay   = 26;
    st.wYear  = 2004;
    st.wHour  = 14;
    
  5. Convert the system time object to a Variant date/time object:

    polApp->SystemTimeToVariantTime(&st, &date);
    
  6. Set the appointment Start property:

    pAppt->put_Start(date);
    
  7. Set the appointment Subject property:

    pAppt->put_Subject(TEXT("Recurring Appointment"));
    
  8. Set the appointment recurrence pattern:

    pAppt->GetRecurrencePattern(&pRec);
    pRec->put_RecurrenceType(olRecursWeekly);
    pRec->put_DayOfWeekMask(olMonday);
    pRec->put_NoEndDate(VARIANT_TRUE);
    
  9. Add the recurring appointment to the appointment collection:

    pAppt->Save();
    

Example

The following code demonstrates how to create a recurring appointment.

void CreateRecurringApt(IPOutlookApp *polApp)
{
    IAppointment *pAppt;
    IRecurrencePattern *pRec;
    SYSTEMTIME st;
    DATE date;

    // Create an appointment item.
    polApp->CreateItem(olAppointmentItem, (IDispatch**)&pAppt);

    // Set the appointment start date and time.
    memset(&st, 0, sizeof(SYSTEMTIME));
    st.wMonth = 7;
    st.wDay   = 27;
    st.wYear  = 2004;
    st.wHour  = 14;
    polApp->SystemTimeToVariantTime(&st, &date);
    pAppt->put_Start(date);

    // Set the appointment subject.
    pAppt->put_Subject(TEXT("Recurring Appointment"));

    // Set the appointment recurrence pattern.
    pAppt->GetRecurrencePattern(&pRec);
    pRec->put_RecurrenceType(olRecursWeekly);
    pRec->put_DayOfWeekMask(olMonday);
    pRec->put_NoEndDate(VARIANT_TRUE);

    // Add the recurring appointment to the appointment collection.
    pAppt->Save();

    // Free resources.
    pRec->Release();
    pAppt->Release();
}

See Also

IAppointment::GetRecurrencePattern

IAppointment::Save

IRecurrencePattern

IRecurrencePattern::put_DayOfWeekMask

IRecurrencePattern::put_NoEndDate

IRecurrencePattern::put_RecurrenceType

Pocket Outlook Object Model

Last updated on Friday, April 22, 2005

© 2005 Microsoft Corporation. All rights reserved.

Send feedback on this topic to the authors.