Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

How to Create Birthday Reminders Using Microsoft Outlook, in C#

0.00/5 (No votes)
4 Jan 2004 1  
This article shows you how to use microsoft Outlook appointments. I used a version of the code to put reminders in for my family members.

Introduction

It might not be rocket science to create appointments in Microsoft Outlook but nevertheless, doing it in C# code cost me more effort than it should have. Anyway, here is a very simple example of how to create yearly recurring reminders, which I use to create reminders of birthdays for my family.

Doing this in C# was of course not easier than just using the Outlook user interface. Writing code for the sake of it is not very productive. So, why write code like this? Well, 2 reasons:

  1. Because examples in this subject domain are relatively scarce. The only example I could find in MSDN was one in Java, which wasn't very well written either.
  2. I have a different application which integrates with Outlook using VB6 and I wanted to see how easy it is in C#.

The Code

static void Main(string[] args)
  {
   Outlook._Application olApp = 
       (Outlook._Application) new Outlook.Application();
   Outlook.NameSpace mapiNS = olApp.GetNamespace("MAPI");
   string profile = "";
   mapiNS.Logon(profile, null, null, null);

   //create an appointment in the Calendar folder

   try
   {
    CreateYearlyAppointment(olApp, "Birthday", "Kim", 
      new DateTime(2004, 03,08, 7, 0, 0));
    CreateYearlyAppointment(olApp, "Birthday", "Lorraine",  
      new DateTime(2004, 02,21, 7, 0, 0));
    CreateYearlyAppointment(olApp, "Birthday", 
      "Evellyn",   new DateTime(2004, 05,29, 7, 0, 0));
    CreateYearlyAppointment(olApp, "Birthday", 
      "Mum", new DateTime(2004, 12,13, 7, 0, 0));
    CreateYearlyAppointment(olApp, "Tax",  
      "Quarterly tax bill", new DateTime(2004, 03,02, 7, 0, 0));
   }
   catch(Exception ex) 
   { 
    MessageBox.Show( ex.Message + " : " + ex.StackTrace); 
   }   
   MessageBox.Show("Appointments Created - toodle pip!");
   return;
  }
  static void CreateYearlyAppointment(Outlook._Application olApp, 
                 string reminderComment, string person, DateTime dt)
  {
   // Use the Outlook application object to create an appointment

   Outlook._AppointmentItem apt = (Outlook._AppointmentItem)
    olApp.CreateItem(Outlook.OlItemType.olAppointmentItem);
  
   // set some properties

   apt.Subject = person + " : " + reminderComment;
   apt.Body = reminderComment;

   apt.Start = dt;
   apt.End   = dt.AddHours(1);

   apt.ReminderMinutesBeforeStart = 24*60*7 * 1;  // One week

   // Makes it appear bold in the calendar - which I like!

   apt.BusyStatus = Outlook.OlBusyStatus.olTentative;  
   apt.AllDayEvent = false;
   apt.Location = "";

   Outlook.RecurrencePattern myPattern = apt.GetRecurrencePattern();
   myPattern.RecurrenceType = Outlook.OlRecurrenceType.olRecursYearly;
   //myPattern.Regenerate = false;

   myPattern.Interval = 1;
   apt.Save();
  }

Conclusion

Never forget your Mums birthday again!

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here