arşiv

yazılar buna göre etiketlendi; ‘outlook 2007’

C# ile Outlook 2007 Üzerinde Randevu Oluşturma ve Okuma

Cumartesi, 06 Şub 2010 burakkanmaz 2 yorum

C# ile, ister Outlook Add-In ister normal bir Windows Form uygulaması yaparken eğer Outlook üzerindeki takvim verilerine (randevulara) erişmek ve yeni randevular oluşturmak kolaylıkla yapılabilmektedir. Bu amaçlar için oluşturduğum metotları beraber inceleyelim.

Öncelikle yeni bir randevu oluşturalım,

using Outlook = Microsoft.Office.Interop.Outlook;

public void CreateAppointment(string subject, string location, string body, DateTime startDate, DateTime endDate)
        {
            var outlookApp = new Outlook.Application();
            var oAppointment =
                (Outlook.AppointmentItem)outlookApp.CreateItem(Outlook.OlItemType.olAppointmentItem);
            oAppointment.Subject = subject;
            oAppointment.Location = location;
            oAppointment.Body = body;
            oAppointment.Start = startDate;
            oAppointment.End = endDate;
            oAppointment.ReminderSet = true;
            oAppointment.ReminderMinutesBeforeStart = 15;
            oAppointment.ReminderPlaySound = true;
            oAppointment.Importance = Outlook.OlImportance.olImportanceHigh;
            oAppointment.BusyStatus = Outlook.OlBusyStatus.olBusy;
            oAppointment.Save();
        }

Bu metod sırasıyla öncelikle Outlook’a bağlanıyor, ardından yeni bir Appointment (randevu) oluşturuyor.

Daha sonra bu randevunun Subject (Konu) kısmını, Location (Konum, Yer) kısmını, başlama ve bitiş tarihlerini metot tanımlamasından alarak yazıyoruz. Eğer dilersek bu randevuyu 15 dakika kalasıyla hatırlatmasını sağlıyoruz ve bu hatırlatmayı yaparken ses çalmasını da ayarlıyoruz. Diğer yüksek öncelikli ve durumu meşgule çevirme seçeneklerimizi de belirledikten sonra Save komutu ile bu randevuyu Outlook’a kaydediyoruz.

Outlook içerisinde ki tüm takvim öğelerini kullanmak için ise şu metodu kullanabiliriz.

public List<Outlook.AppointmentItem> GetAppointments()
        {
            var outLookApp = new Microsoft.Office.Interop.Outlook.Application();
            Outlook.NameSpace nms = outLookApp.GetNamespace("MAPI");
            Outlook.MAPIFolder mpiFolder = nms.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
            string body;
            var appItems = new List<Outlook.AppointmentItem>();
            foreach (Outlook.AppointmentItem task in mpiFolder.Items)
            {
                appItems.Add(task);
            }
            return appItems;
        }

Bu metot ile takvimdeki tüm öğeleri alacağız. Öncelikle Outlook’a bağlanmak için gerekli tanımımızı yapalım. Daha sonra MAPI klasörlerine erişmek için bir nesnemizi oluşturalım ve bu bağlantıyı Calendar ile ilişkili olarak başlatalım.

Ardından geri döndürmek için Outlook’un AppointmentItem nesne tipini tutacak bir liste oluşturalım. Daha sonra foreach ile MAPI klasöründe ki tüm takvim öğeleri arasında gezinerek listemize atalım. Son olarak listemizi geri döndürelim ve kullanalım.

İşte bu kadar basit bir şekilde Outlook Takvim öğelerine erişebilir ve yönetebilirsiniz. Bu metotları geliştirmek sizin elinizde ;)