Správa položek kalendáře Outlook

Aspose.Email MapiCalendar třída poskytuje metody a atributy pro nastavení různých vlastností kalendářové položky. Tato sekce poskytuje ukázky kódu pro:

Vytvořit a uložit položky kalendáře

Následující úryvek kódu ukazuje, jak vytvořit a uložit položku kalendáře ve formátu ICS.

Uložit kalendářové položky jako soubory MSG

Následující úryvek kódu ukazuje, jak uložit položku kalendáře jako MSG.

Uložit ID produktů pro MAPI kalendářové položky do souboru ICS

The ProductIdentifier vlastnost třídy MapiCalendarIcsSaveOptions třída se používá k uložení položky MAPI kalendáře do iCalendar (ICS) souboru s zachováním původních informací o datu a čase a také vlastního identifikátoru produktu. Vlastnost udává identifikátor produktu, který vytvořil iCalendar objekt.

Následující ukázka kódu ukazuje, jak pracovat s daty iCalendar (ICS) v rámci objektu MAPI kalendáře:

var icsSaveOptions = new MapiCalendarIcsSaveOptions
{
    KeepOriginalDateTimeStamp = true,
    ProductIdentifier = "Foo Ltd"
};

mapiCalendar.Save("my.ics", icsSaveOptions);

Získat celkový počet událostí

Třída CalendarReader umožňuje snadnou manipulaci s kalendářovými událostmi. Následující vlastnosti a metoda vám umožňují pracovat s více událostmi:

  • CalendarReader.Count - Vlastnost Count třídy CalendarReader umožňuje získat počet komponent Vevent (událostí) v kalendáři, což usnadňuje sledování celkového počtu událostí.
  • CalendarReader.IsMultiEvents - Tato vlastnost určuje, zda kalendář obsahuje více událostí. Poskytuje boolean hodnotu indikující, zda kalendář obsahuje více než jednu událost, což pomáhá rozpoznat kalendáře s jednou nebo více událostmi.
  • CalendarReader.Method - Vlastnost Method získává typ iCalendar metody spojený s kalendářovým objektem. Vrací typ metody, jako je “REQUEST”, “PUBLISH” nebo “CANCEL”, což poskytuje cenné informace o účelu kalendáře.
  • CalendarReader.Version - Získá verzi iCalendar.
  • CalendarReader.LoadAsMultiple() Tato metoda umožňuje načíst seznam událostí z kalendáře obsahujícího více událostí. Vrací seznam objektů Appointment, což usnadňuje přístup a zpracování každé události jednotlivě.

Následující ukázka kódu demonstruje, jak můžete tyto možnosti implementovat ve svém projektu:

var reader = new CalendarReader(fileName);
Console.WriteLine("Calendar contains " + reader.Count + " events");
Console.WriteLine("The Version of the calendar is " + reader.Version);
Console.WriteLine("The Method of the calendar is " + reader.Method);
Console.WriteLine("Is calendar contains contains multiple events? - " + reader.IsMultiEvents);
List<Appointment> appointments = reader.LoadAsMultiple();

Přidat vizuální připomínky

Následující úryvek kódu ukazuje, jak přidat vizuální připomínku do kalendáře.

Přidat zvukové připomínky

Následující úryvek kódu ukazuje, jak přidat audio připomínku do kalendáře.

Přidat/Načíst přílohy z kalendářových souborů

Následující úryvek kódu ukazuje, jak přidat/načíst přílohy z kalendářových souborů.

Zkontrolovat stav příjemců v žádostech o schůzku

Následující úryvek kódu ukazuje, jak zobrazit stav příjemců z žádosti o schůzku.

Vytvořit MAPI kalendářovou časovou zónu ze standardní časové zóny

Následující úryvek kódu ukazuje, jak vytvořit MapiCalendarTimeZone ze standardní časové zóny.

Nastavit připomínky pro schůzky

Připomínka může být přidána při vytvoření schůzky. Tyto alarmy mohou být spuštěny na základě různých kritérií, jako je n minut před začátkem plánu, opakování n‑krát v intervalech n. Různé značky lze použít k vytvoření těchto spouštěčů ve skriptu uzavřeném mezi BEGIN:VALARM a END:VALARM uvnitř schůzky. Existuje několik variant, jak lze připomínku na schůzce nastavit.

Přidat štítky pro nastavení připomínek

Následující úryvek kódu ukazuje, jak nastavit připomínku přidáním značek.

Převést EML schůzky na MSG s HTML tělem

Od verze 19.3 poskytuje Aspose.Email možnost převést EML schůzky na MSG při zachování HTML těla schůzky. Aspose.Email poskytuje MapiConversionOptions.ForcedRtfBodyForAppointment vlastnost, která má výchozí hodnotu true. Když hodnota MapiConversionOptions.ForcedRtfBodyForAppointment je nastaveno na true, tělo schůzky je převedeno do formátu RTF. Pro zachování formátu těla schůzky v HTML nastavte hodnotu MapiConversionOptions.ForcedRtfBodyForAppointment na false.

Následující příklad demonstruje použití MapiConversionOptions.ForcedRtfBodyForAppointment vlastnost pro zachování formátu těla schůzky v HTML formátu.

Manuálně nastavit stav MAPI kalendářových položek

Nastavte stav objektu MAPI Calendar explicitně, přepsáním výchozího chování. To umožňuje lepší kontrolu nad stavy kalendářových událostí, zejména při zpracování přijatých požadavků na schůzku. Ve výchozím nastavení, když je schůzka vytvořena, její stav je MapiCalendarState.Meeting. Když je přijata v doručené poště příjemce, automaticky se změní na MapiCalendarState.Received, a třída jeho zprávy je aktualizována na “IPM.Schedule.Meeting.Request”. Použití SetStateForced umožňuje ručně nastavit stav na Received, což může být užitečné pro zachování informací o organizátorovi při ukládání kalendáře jako souboru MSG. Nicméně to může zabránit řádnému přeposílání nebo opětovnému odeslání schůzky.

Níže uvedený ukázkový kód demonstruje, jak vytvořit MapiCalendar objekt, přiřadit organizátora a explicitně nastavit jeho stav na oba Meeting a Received použitím SetStateForced. Poté uloží kalendářovou položku jako soubor .msg.

MapiCalendar appointment = new MapiCalendar(
    "LAKE ARGYLE WA 6743",
    "Appointment",
    "This is a very important meeting :)",
    new DateTime(2024, 5, 10, 12, 30, 0, DateTimeKind.Utc),
    new DateTime(2024, 5, 10, 13, 30, 0, DateTimeKind.Utc));

appointment.Organizer = new MapiElectronicAddress
{
    EmailAddress = "test@aaa.com",
    DisplayName = "test display Name"
};

appointment.SetStateForced(MapiCalendarState.Meeting | MapiCalendarState.Received);

appointment.Save("appointment.msg", AppointmentSaveFormat.Msg);