Создание напоминания о встрече

VSTO

Ниже приведен фрагмент кода для создания напоминания о встрече:


    Outlook.AppointmentItem appt = Application.CreateItem(

   Outlook.OlItemType.olAppointmentItem) as Outlook.AppointmentItem;

   appt.Subject = "Дегустация вина";

   appt.Location = "Напа, Калифорния";

   appt.Sensitivity = Outlook.OlSensitivity.olPrivate;

   appt.Start = DateTime.Parse("21/10/2006 10:00 AM");

   appt.End = DateTime.Parse("21/10/2006 3:00 PM");

   appt.ReminderSet = true;

   appt.ReminderMinutesBeforeStart = 120;

   appt.Save();


Aspose.Email

Существует несколько вариантов, при которых напоминание может быть установлено для встречи. Ниже приведен фрагмент кода:


   string location = "Место встречи: Комната 5";

  DateTime startDate = new DateTime(1997, 3, 18, 18, 30, 00),

  endDate = new DateTime(1997, 3, 18, 19, 30, 00);

  MailAddress organizer = new MailAddress("aaa@amail.com", "Организатор");

  MailAddressCollection attendees = new MailAddressCollection();

  attendees.Add(new MailAddress("bbb@bmail.com", "Первый участник"));

  Appointment target = new Appointment(location, startDate, endDate, organizer, attendees);

  //Звуковое напоминание, которое прозвучит в точное время и

  //повторится еще 4 раза через 15 минут:

  AppointmentReminder audioReminder = new AppointmentReminder();

  audioReminder.Trigger = new ReminderTrigger(new DateTime(1997, 3, 17, 13, 30, 0, DateTimeKind.Utc));

  audioReminder.Repeat = 4;

  audioReminder.Duration = new ReminderDuration(new TimeSpan(0, 15, 0));

  audioReminder.Action = ReminderAction.Audio;

  ReminderAttachment attach = new ReminderAttachment(new Uri("ftp://host.com/pub/sounds/bell-01.aud"));

  audioReminder.Attachments.Add(attach);

  target.Reminders.Add(audioReminder);

  string strAudioReminder = @"BEGIN:VALARM

                ACTION:AUDIO

                REPEAT:4

                DURATION:PT15M

                TRIGGER;VALUE=DATE-TIME:19970317T133000Z

                ATTACH:ftp://host.com/pub/sounds/bell-01.aud

                END:VALARM";

   //Напоминание для отображения, которое сработает за 30 минут до

   //запланированного начала события, к которому оно

   //связано, и повторится еще 2 раза через 15 минут:

   AppointmentReminder displayReminder = new AppointmentReminder();

   ReminderDuration dur = new ReminderDuration(new TimeSpan(0, -30, 0));

   displayReminder.Trigger = new ReminderTrigger(dur, ReminderRelated.Start);

   displayReminder.Repeat = 2;

   displayReminder.Duration = new ReminderDuration(new TimeSpan(0, 15, 0));

   displayReminder.Action = ReminderAction.Display;

   displayReminder.Description = "Завтрак с исполнительной командой в 8:30 AM EST";

   target.Reminders.Add(displayReminder);

   string strDisplayReminder = @"

                BEGIN:VALARM

                ACTION:DISPLAY

                REPEAT:2

                DURATION:PT15M

                DESCRIPTION:Завтрак с исполнительной командой в 8:30 AM EST

                TRIGGER;RELATED=START:-PT30M

                END:VALARM";

    //Email-уведомление, которое сработает за 2 дня до

    //запланированной даты/времени. Оно не 

    //повторяется. Электронное письмо имеет тему, текст и ссылку на вложение.

    AppointmentReminder emailReminder = new AppointmentReminder();

    ReminderDuration dur1 = new ReminderDuration(new TimeSpan(-2, 0, 0, 0));

    emailReminder.Trigger = new ReminderTrigger(dur1, ReminderRelated.Start);

    ReminderAttendee attendee = new ReminderAttendee("john_doe@host.com");

    emailReminder.Attendees.Add(attendee);

    emailReminder.Action = ReminderAction.Email;

    emailReminder.Summary = "НАПОМНЕНИЕ: ОТПРАВИТЬ ПОВЕСТЬ ДНЯ ДЛЯ НЕДЕЛЬНОЙ ВСТРЕЧИ С ПЕРСОНАЛОМ";

    emailReminder.Description = @"Черновик повестки дня должен быть отправлен участникам на еженедельную встречу менеджеров (MGR-LIST). В приложении ссылка на шаблон

                                  документа для файла повестки дня.";

    ReminderAttachment attach1 = new ReminderAttachment(new Uri("http://host.com/templates/agenda.doc"));

    emailReminder.Attachments.Add(attach1);

    target.Reminders.Add(emailReminder);

    string strEmailReminder = @"

                BEGIN:VALARM

                ACTION:EMAIL

                DESCRIPTION:Черновик повестки дня должен быть отправлен участникам на еженедельную встречу менеджеров (MGR-LIST). В приложении ссылка на шаблон

                документа для файла повестки дня.

                SUMMARY:НАПОМНЕНИЕ: ОТПРАВИТЬ ПОВЕСТЬ ДНЯ ДЛЯ НЕДЕЛЬНОЙ ВСТРЕЧИ С ПЕРСОНАЛОМ

                TRIGGER;RELATED=START:-P2D

                ATTENDEE:mailto:john_doe@host.com

                ATTACH:http://host.com/templates/agenda.doc

                END:VALARM";

    //Процедурное напоминание, которое сработает в точную дату/время

    //и повторится еще 23 раза с интервалом в один час. Напоминание будет

    //вызывать файл процедуры.

    AppointmentReminder procReminder = new AppointmentReminder();

    procReminder.Trigger = new ReminderTrigger(new DateTime(1998, 1, 1, 5, 0, 0, DateTimeKind.Utc));

    procReminder.Repeat = 23;

    procReminder.Duration = new ReminderDuration(new TimeSpan(1, 0, 0));

    procReminder.Action = ReminderAction.Procedure;

    ReminderAttachment attach2 = new ReminderAttachment(new Uri("ftp://host.com/novo-procs/felizano.exe"));

    procReminder.Attachments.Add(attach2);

    target.Reminders.Add(procReminder);

    string strProcReminder = @"

                BEGIN:VALARM

                ACTION:PROCEDURE

                REPEAT:23

                DURATION:PT1H

                TRIGGER;VALUE=DATE-TIME:19980101T050000Z

                ATTACH:ftp://host.com/novo-procs/felizano.exe

                END:VALARM";

    target.Save("savedFile.ics");


Скачать пример кода

Скачать работающий код