Mengelola Item Kalender Outlook

Aspose.Email MapiCalendar kelas menyediakan metode dan atribut untuk mengatur berbagai properti item kalender. Bagian ini menyediakan contoh kode untuk:

Buat dan Simpan Item Kalender

Potongan kode berikut menunjukkan cara membuat dan menyimpan item kalender dalam format ICS.

Simpan Item Kalender sebagai File MSG

Potongan kode berikut menunjukkan cara menyimpan item kalender sebagai MSG.

Simpan ID Produk untuk Item Kalender MAPI ke ICS

The ProductIdentifier properti dari MapiCalendarIcsSaveOptions kelas digunakan untuk menyimpan item kalender MAPI ke file iCalendar (ICS) sambil mempertahankan informasi tanggal dan waktu asli serta pengidentifikasi produk khusus. Properti ini menentukan pengidentifikasi untuk produk yang membuat objek iCalendar.

Contoh kode berikut menunjukkan cara bekerja dengan data iCalendar (ICS) dalam objek kalender MAPI:

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

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

Dapatkan Jumlah Total Acara

Kelas CalendarReader memungkinkan penanganan acara kalender dengan mudah. Properti dan metode berikut memungkinkan Anda bekerja dengan banyak acara:

  • CalendarReader.Count - Properti Count dari kelas CalendarReader memungkinkan Anda mengambil jumlah komponen Vevent (acara) yang ada dalam kalender, memudahkan pelacakan total jumlah acara.
  • CalendarReader.IsMultiEvents - Properti ini menentukan apakah kalender berisi beberapa acara. Ini memberikan nilai boolean yang menunjukkan apakah kalender memiliki lebih dari satu acara, membantu mengidentifikasi kalender dengan satu atau banyak acara.
  • CalendarReader.Method - Properti Method memperoleh tipe metode iCalendar yang terkait dengan objek kalender. Ini mengembalikan tipe metode, seperti “REQUEST”, “PUBLISH”, atau “CANCEL”, memberikan wawasan berharga tentang tujuan kalender.
  • CalendarReader.Version - Mendapatkan Versi iCalendar.
  • CalendarReader.LoadAsMultiple() Metode ini memungkinkan pemuatan daftar acara dari kalender yang berisi banyak acara. Ini mengembalikan daftar objek Appointment, memungkinkan akses mudah dan pemrosesan masing‑masing acara secara terpisah.

Contoh kode berikut menunjukkan cara Anda dapat menerapkan kemampuan ini dalam proyek Anda:

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();

Tambahkan Pengingat Tampilan

Potongan kode berikut menunjukkan cara menambahkan pengingat tampilan ke kalender.

Tambahkan Pengingat Audio

Potongan kode berikut menunjukkan cara menambahkan pengingat audio ke kalender.

Tambah/Ambil Lampiran dari File Kalender

Potongan kode berikut menunjukkan cara menambahkan/mengambil lampiran dari file kalender.

Periksa Status Penerima dalam Permintaan Pertemuan

Potongan kode berikut menunjukkan cara menampilkan status penerima dari permintaan pertemuan.

Buat MAPI Calendar TimeZone dari Zona Waktu Standar

Potongan kode berikut menunjukkan cara Membuat MapiCalendarTimeZone dari Zona Waktu standar.

Setel Pengingat untuk Janji

Pengingat dapat ditambahkan ketika sebuah janji dibuat. Alarm ini dapat dipicu berdasarkan kriteria berbeda seperti n menit sebelum jadwal dimulai, mengulangi n kali dengan interval n. Tag yang berbeda dapat digunakan untuk membuat pemicu ini dalam skrip yang diapit oleh BEGIN:VALARM dan END:VALARM di dalam janji. Ada sejumlah varian di mana pengingat dapat diatur pada sebuah janji.

Tambahkan Tag untuk Menetapkan Pengingat

Potongan kode berikut menunjukkan cara mengatur pengingat dengan menambahkan tag.

Konversi Appointment EML ke MSG dengan Badan HTML

Sejak versi 19.3, Aspose.Email menyediakan kemampuan untuk mengkonversi Appointment EML ke MSG sambil mempertahankan badan HTML dari janji. Aspose.Email menyediakan sebuah MapiConversionOptions.ForcedRtfBodyForAppointment properti yang memiliki nilai default true. Ketika nilai dari MapiConversionOptions.ForcedRtfBodyForAppointment diatur ke true, isi janji dikonversi ke format RTF. Untuk mempertahankan format isi janji dalam HTML, atur nilai dari MapiConversionOptions.ForcedRtfBodyForAppointment menjadi false.

Contoh berikut menunjukkan penggunaan MapiConversionOptions.ForcedRtfBodyForAppointment properti untuk menjaga format isi janji dalam format HTML.

Setel Status Item Kalender MAPI Secara Manual

Atur status objek MAPI Calendar secara eksplisit, mengganti perilaku default. Ini memungkinkan kontrol yang lebih baik atas status acara kalender, terutama ketika menangani permintaan rapat yang diterima. Secara default, ketika rapat dibuat, statusnya adalah MapiCalendarState.Meeting. Ketika diterima di kotak masuk penerima, secara otomatis berubah menjadi MapiCalendarState.Received, dan kelas pesan-nya diperbarui menjadi “IPM.Schedule.Meeting.Request”. Menggunakan SetStateForced memungkinkan penetapan status secara manual menjadi Received, yang dapat berguna untuk mempertahankan informasi penyelenggara saat menyimpan kalender sebagai file MSG. Namun, ini dapat mencegah penerusan atau pengiriman kembali rapat yang tepat.

Contoh kode di bawah ini menunjukkan cara membuat sebuah MapiCalendar objek, tentukan penyelenggara, dan secara eksplisit atur statusnya menjadi keduanya Meeting dan Received dengan SetStateForced. Kemudian menyimpan item kalender sebagai file .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);