Randevuları Yönet: Oluştur ve Manipüle Et, ICS'yi MSG'ye Dönüştür
Bu makale, standart tabanlı iCalendar (ICS) randevularının ele alındığı Appointment sınıfı. Outlook ile çalışmak için MapiCalendar öğeler yerine, bakınız Outlook Takvim Öğelerini Yönetme; PST içinde takvim öğelerini depolamak ve okumak için bakınız PST Dosyalarında Takvim Öğelerini Yönetme.
Randevu Oluştur ve MSG veya ICS Formatında Diske Kaydet
Bu Appointment Aspose.Email for .NET içindeki sınıf, yeni bir randevu oluşturmak için kullanılabilir. Bu makalede önce bir randevu oluşturup diske ICS formatında kaydediyoruz. Bir randevu oluşturup diske kaydetmek için aşağıdaki adımlar gereklidir.
- Şunun bir örneğini oluştur Appointment sınıf ve bu yapıcıyla başlatın.
- Yukarıdaki yapıcıda aşağıdaki argümanları geçin
- Konum
- Özet
- Açıklama
- Başlangıç Tarihi
- Bitiş Tarihi
- Organizatör
- Katılımcılar
- Şuğu çağırın Save() metodu ve argümanlarda dosya adını ve formatını belirtin.
Randevu, Microsoft Outlook ya da bir ICS dosyasını yükleyebilen herhangi bir programda açılabilir. Dosya Microsoft Outlook’ta açılırsa, randevu otomatik olarak Outlook takvimine eklenir.
Aşağıdaki kod parçacığı, bir randevu oluşturup diske ICS veya MSG formatında nasıl kaydedeceğinizi gösterir.
// Create and initialize an instance of the Appointment class
Appointment appointment = new Appointment(
"Meeting Room 3 at Office Headquarters",// Location
"Monthly Meeting", // Summary
"Please confirm your availability.", // Description
new DateTime(2015, 2, 8, 13, 0, 0), // Start date
new DateTime(2015, 2, 8, 14, 0, 0), // End date
"from@domain.com", // Organizer
"attendees@domain.com"); // Attendees
// Save the appointment to disk in ICS format
appointment.Save(fileName + ".ics", new AppointmentIcsSaveOptions());
Console.WriteLine("Appointment created and saved to disk successfully.");
// Save the appointment to disk in MSG format
appointment.Save(fileName + ".msg", new AppointmentMsgSaveOptions());
Console.WriteLine("Appointment created and saved to disk successfully.");
HTML İçeriğiyle Bir Randevu Oluştur
X-ALT-DESC başlığını kullanarak etkinlik açıklamasının farklı içerik türlerinde alternatif temsillerini belirtebilirsiniz. Bu, iCalendar dosyasının alıcılarının ihtiyaçlarına en uygun temsili seçmesini sağlar. Örneğin, "text/plain" içerik türüyle düz metin açıklaması ve "text/html" içerik türüyle HTML açıklaması ekleyebilirsiniz. Her alternatif temsil için X-ALT-DESC başlığı eklenir. HTML içeriğiyle bir randevu oluşturmak için, şunu ayarlayın: HtmlDescription özellik.
Alternatif HTML açıklamasıyla bir randevu oluşturmak için aşağıdaki kod örneğini deneyin:
- Appointment sınıfının yeni bir örneğini oluşturun.
- Appointment yapıcısına gerekli parametreleri sağlayın:
- Randevunun konumunu belirtin.
- Başlangıç tarih ve saatini ayarlayın.
- Bitiş tarih ve saatini ayarlayın.
- Organizatörü belirtin.
- Katılımcıyı belirtin.
- Şunu ayarlayın: HtmlDescription randevu nesnesinin özelliği, açıklamanın HTML formatında olduğunu gösterir.
- Randevu nesnesinin Description (Açıklama) özelliğini çok satırlı bir dize içinde HTML biçimli bir string olarak ayarlayın:
- HTML işaretlemesi, "text" adında bir CSS sınıfı tanımlayan bir <style> bloğu içerir ve yazı tipi stillerini belirler.
- HTML gövdesi, CSS sınıfı "text" ile bir paragraf etiketi <p> ve gerçek davet mesajını içerir.
- Randevu nesnesi artık hazır ve daha fazla işlem yapabilir ya da iCalendar dosyası olarak kaydedebilirsiniz.
var appointment = new Appointment("Bygget 83",
DateTime.UtcNow, // start date
DateTime.UtcNow.AddHours(1), // end date
new MailAddress("TintinStrom@from.com", "Tintin Strom"), // organizer
new MailAddress("AinaMartensson@to.com", "Aina Martensson")) // attendee
{
HtmlDescription = @"
<html>
<style type=""text/css"">
.text {
font-family:'Comic Sans MS';
font-size:16px;
}
</style>
<body>
<p class=""text"">Hi, I'm happy to invite you to our party.</p>
</body>
</html>"
};
Taslak Randevu İsteği Oluştur
Önceki makalelerimizde bir randevuyu ICS formatında nasıl oluşturup kaydedileceği gösterilmiştir. Genellikle temel bilgiler eklenerek bir Randevu talebinin Taslak modunda oluşturulması ve ardından aynı taslak Randevu’nun, bireysel kullanım gereksinimlerine göre gerekli değişiklikler için diğer kullanıcılara gönderilmesi gerekir. Bir Randevu’yu Taslak modunda kaydetmek için, MethodType Appointment sınıfının özelliği şuna ayarlanmalıdır: AppointmentMethodType.Publish. Aşağıdaki kod parçacığı, bir taslak randevu talebi oluşturmanızı gösterir.
string sender = "test@gmail.com";
string recipient = "test@email.com";
MailMessage message = new MailMessage(sender, recipient, string.Empty, string.Empty);
Appointment app = new Appointment(string.Empty, DateTime.Now, DateTime.Now, sender, recipient)
{
MethodType = AppointmentMethodType.Publish
};
message.AddAlternateView(app.RequestApointment());
MapiMessage msg = MapiMessage.FromMailMessage(message);
// Save the appointment as draft.
msg.Save(dstDraft);
Console.WriteLine(Environment.NewLine + "Draft saved at " + dstDraft);
Metinden Taslak Randevu Oluşturma
Aşağıdaki kod parçacığı, bir metinden taslak randevu oluşturmayı gösterir.
string ical = @"BEGIN:VCALENDAR
METHOD:PUBLISH
PRODID:-//Aspose Ltd//iCalender Builder (v3.0)//EN
VERSION:2.0
BEGIN:VEVENT
ATTENDEE;CN=test@gmail.com:mailto:test@gmail.com
DTSTART:20130220T171439
DTEND:20130220T174439
DTSTAMP:20130220T161439Z
END:VEVENT
END:VCALENDAR";
string sender = "test@gmail.com";
string recipient = "test@email.com";
MailMessage message = new MailMessage(sender, recipient, string.Empty, string.Empty);
AlternateView av = AlternateView.CreateAlternateViewFromString(ical, new ContentType("text/calendar"));
message.AlternateViews.Add(av);
MapiMessage msg = MapiMessage.FromMailMessage(message);
msg.Save(dataDir + "draft_out.msg");
Randevuları Özelleştirme
Randevu Katılımcılarının Durumunu Ayarla
Aspose.Email for .NET API, bir yanıt mesajı oluştururken randevu katılımcılarının durumunu ayarlamanıza olanak tanır. Bu, PARTSTAT özelliğini ICS dosyasına ekler.
DateTime startDate = new DateTime(2011, 12, 10, 10, 12, 11),
endDate = new DateTime(2012, 11, 13, 13, 11, 12);
MailAddress organizer = new MailAddress("aaa@amail.com", "Organizer");
MailAddressCollection attendees = new MailAddressCollection();
MailAddress attendee1 = new MailAddress("bbb@bmail.com", "First attendee");
MailAddress attendee2 = new MailAddress("ccc@cmail.com", "Second attendee");
attendee1.ParticipationStatus = ParticipationStatus.Accepted;
attendee2.ParticipationStatus = ParticipationStatus.Declined;
attendees.Add(attendee1);
attendees.Add(attendee2);
Appointment target = new Appointment(location, startDate, endDate, organizer, attendees);
iCalendar İçin Ürün Tanımlayıcısını Özelleştir
Aspose.Email for .NET API, iCalendar nesnesini oluşturan ürün tanımlayıcısını almanıza veya ayarlamanıza izin verir.
string description = "Test Description";
Appointment app = new Appointment("location", "test appointment", description, DateTime.Today,
DateTime.Today.AddDays(1), "first@test.com", "second@test.com");
AppointmentIcsSaveOptions saveOptions = AppointmentIcsSaveOptions.Default;
saveOptions.ProductId = "Test Corporation";
app.Save(dataDir + "ChangeProdIdOfICS.ics", saveOptions);
Randevuları Yükleme
Ayrıca, Appointment sınıf, bir randevuyu ICS dosyasından yüklemek için kullanılabilir.
ICS Formatında Bir Randevu Yükle
ICS formatında bir randevu yüklemek için aşağıdaki adımlar gereklidir:
- Şunun bir örneğini oluştur Appointment sınıf.
- Şuğu çağırın Load() ICS dosyasının yolunu sağlayarak metod.
- Randevu (ICS dosyası) hakkında bilgi almak için herhangi bir özelliği okuyun.
Aşağıdaki kod parçacığı, bir randevuyu ICS formatında nasıl yükleyeceğinizi gösterir.
// Load an Appointment just created and saved to disk and display its details.
Appointment loadedAppointment = Appointment.Load(dstEmail);
Console.WriteLine(Environment.NewLine + "Loaded Appointment details are as follows:");
// Display the appointment information on screen
Console.WriteLine("Summary: " + loadedAppointment.Summary);
Console.WriteLine("Location: " + loadedAppointment.Location);
Console.WriteLine("Description: " + loadedAppointment.Description);
Console.WriteLine("Start date: " + loadedAppointment.StartDate);
Console.WriteLine("End date: " + loadedAppointment.EndDate);
Console.WriteLine("Organizer: " + loadedAppointment.Organizer);
Console.WriteLine("Attendees: " + loadedAppointment.Attendees);
Console.WriteLine(Environment.NewLine + "Appointment loaded successfully from " + dstEmail);
ICS’yi MSG’ye Dönüştür
API, bir Randevuyu kolayca bir mesaj nesnesine dönüştürmenizi sağlar. Aşağıdaki kod örneği, bir randevu isteğini MailMessage ya da MapiMessage’a nasıl dönüştüreceğinizi gösterir:
var appointment = Appointment.Load("appRequest.ics");
var eml = appointment.ToMailMessage();
var msg = appointment.ToMapiMessage();
ICS Dosyasından Birden Çok Etkinliği Okuma
List<Appointment> appointments = new List<Appointment>();
CalendarReader reader = new CalendarReader(dataDir + "US-Holidays.ics");
while (reader.NextEvent())
{
appointments.Add(reader.Current);
}
//working with appointments...
**Birden Çok Olayı
ICS Dosyasına Yaz**
AppointmentIcsSaveOptions saveOptions = new AppointmentIcsSaveOptions();
saveOptions.Action = AppointmentAction.Create;
using (CalendarWriter writer = new CalendarWriter(dataDir + "WriteMultipleEventsToICS_out.ics", saveOptions))
{
for (int i = 0; i < 10; i++)
{
Appointment app = new Appointment(string.Empty, DateTime.Now, DateTime.Now, "sender@domain.com", "receiver@domain.com");
app.Description = "Test body " + i;
app.Summary = "Test summary:" + i;
writer.Write(app);
}
}
Randevu Sürümünü Belirleme
Bir randevu sürümünü belirlemek için, şunu kullanabilirsiniz: Appointment.Version özellik Appointment sınıf. Bu özellik, dosyalarının hangi sürüme dayandığını belirlemeye yardımcı olur ve diğer sistem ve uygulamalarla entegrasyonu sağlar.
Aşağıdaki kod örneği, bu özelliği projenizde nasıl uygulayacağınızı gösterir:
var app = Appointment.Load("meeting.ics");
// Version is a string that holds the ICS/VCS version, e.g. "2.0" for iCalendar
if (app.Version == "2.0")
{
// do something
}
Toplantı İsteklerini Gönderme ve İptal Etme
Bu Appointment sınıfına eklenir, birlikte SmtpClient, toplantı istekleri, tekrarlı toplantı istekleri, güncellemeler ve iptaller e-posta ile gönderilebilir. Randevu bir MailMessage alternatif görünüm olarak.
Toplantı İsteği Gönder
Bir toplantı isteği göndermek için bir Appointmentekleyin, mesajda şu RequestApointment yöntemi ve mesajı gönderin. Randevunun UniqueId değeri, daha sonra bir güncelleme ya da iptal gönderirken aynı randevuyu referans alabilmeniz için gereklidir.
// Create an instance of SmtpClient
SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "user@gmail.com", "password");
client.SecurityOptions = SecurityOptions.Auto;
// Gather the attendees
MailAddressCollection attendees = new MailAddressCollection();
attendees.Add(new MailAddress("first.attendee@domain.com", "First Attendee"));
attendees.Add(new MailAddress("second.attendee@domain.com", "Second Attendee"));
// Create the message and the appointment
MailMessage msg = new MailMessage();
msg.From = "organizer@domain.com";
msg.To = attendees;
Appointment app = new Appointment("Meeting Room 1", DateTime.Now, DateTime.Now.AddHours(1), msg.From, attendees);
app.Summary = "Monthly Meeting";
app.Description = "Please confirm your availability.";
// Add the appointment to the message and send it
msg.AddAlternateView(app.RequestApointment());
client.Send(msg);
Tekrarlı Toplantı İsteği Gönder
Tekrarlanan bir toplantı isteği oluşturmak için bir tekrar deseni atayın (örneğin bir WeeklyRecurrencePattern) methoda Appointment.Recurrence özelliği. Randevunun benzersiz kimliğini kaydetmek, daha sonra randevuya güncellemeler göndermeyi mümkün kılar.
// Create a mail message
MailMessage msg1 = new MailMessage();
msg1.To.Add("to@domain.com");
msg1.From = new MailAddress("from@gmail.com");
// Fill the appointment object
DateTime startDate = new DateTime(2013, 12, 1, 17, 0, 0);
DateTime endDate = new DateTime(2013, 12, 31, 17, 30, 0);
Appointment agendaAppointment = new Appointment("same place", startDate, endDate, msg1.From, msg1.To);
// Create a unique id so the appointment can be accessed later
string szUniqueId = Guid.NewGuid().ToString();
agendaAppointment.UniqueId = szUniqueId;
agendaAppointment.Description = "----------------";
// Create a weekly recurrence pattern: Mon, Tue and Thu
WeeklyRecurrencePattern pattern1 = new WeeklyRecurrencePattern(14);
pattern1.StartDays = new CalendarDay[3];
pattern1.StartDays[0] = CalendarDay.Monday;
pattern1.StartDays[1] = CalendarDay.Tuesday;
pattern1.StartDays[2] = CalendarDay.Thursday;
pattern1.Interval = 1;
// Set the recurrence pattern for the appointment
agendaAppointment.Recurrence = pattern1;
// Attach the appointment to the mail
msg1.AlternateViews.Add(agendaAppointment.RequestApointment());
// Send the mail with the appointment request
SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "your.email@gmail.com", "your.password");
client.SecurityOptions = SecurityOptions.Auto;
client.Send(msg1);
Randevu Güncelleme İsteği Gönder
Daha önce gönderilmiş bir randevu için güncelleme göndermek için randevunun benzersiz kimliği gereklidir. Şunu kullanın UpdateAppointment güncelleme alternatif görünümünü oluşturmak için yöntem.
static public void SendUpdate(string szUniqueId)
{
DateTime startDate = new DateTime(2013, 12, 12, 17, 0, 0);
DateTime endDate = new DateTime(2013, 12, 12, 17, 30, 0);
Appointment appUpdate = new Appointment("Different Place", startDate, endDate,
"organizer@gmail.com", "attendee@domain.com");
appUpdate.UniqueId = szUniqueId;
appUpdate.Summary = "update meeting request summary";
appUpdate.Description = "update";
MailMessage msgUpdate = new MailMessage("organizer@gmail.com", "attendee@domain.com",
"test email - update meeting request", "test email");
msgUpdate.AddAlternateView(appUpdate.UpdateAppointment());
SmtpClient smtp = new SmtpClient("server.domain.com", 587, "username", "password");
smtp.Send(msgUpdate);
}
Toplantı İsteğini İptal Et
Bir toplantıyı iptal etmek için aynı Appointment (istek gönderildiğinde sakladığınız bilgileri kullanarak), mesajı şu CancelAppointment yöntemi ve mesajı katılımcılara gönderin.
// Re-create the attendee collection and the appointment from your stored data
MailAddressCollection attendees = new MailAddressCollection();
attendees.Add(new MailAddress("first.attendee@domain.com", "First Attendee"));
attendees.Add(new MailAddress("second.attendee@domain.com", "Second Attendee"));
Appointment app = new Appointment("Meeting Room 1", "Monthly Meeting", "Please confirm your availability.",
DateTime.Now, DateTime.Now.AddHours(1),
new MailAddress("organizer@domain.com", "Organizer"), attendees);
// Create the cancellation message
MailMessage msg = new MailMessage();
msg.From = new MailAddress("organizer@domain.com", "");
msg.To = attendees;
msg.Subject = "Cancel meeting";
msg.AddAlternateView(app.CancelAppointment());
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587, "user@gmail.com", "password");
smtp.Send(msg);
iCalendar Tekrar Desenleriyle Çalışma
Tekrar deseni, belirli bir takvimi tanımlamanın bir yoludur. Belirli bir takvime göre oluşum (tarih ve saat) listesi oluşturmak için yeterli bilgiyi içerir. Bir tekrar deseni, genel deseni oluşturmak için birleştirilen döngüleri tanımlayan tekrar kuralları içerebilir. Genel olarak, bir tekrar deseni ne kadar karmaşık olursa, o kadar çok tekrar kuralı içerir.
Tekrar desenleri istisneler içerebilir (uygulama çalışması sırasında ortaya çıkan hatalarla karıştırılmamalıdır). İstisneler, özgün desene göre oluşum tarihlerini ekler veya kaldırır. Açık oluşumlar ya da kendi başına bir desen olarak belirtilebilirler. İstisneli tekrar desen örnekleri:
- Her ayın 2. Cuması, ancak Haziran’dan Ağustos’a kadar hariç.
- Ocak ayı hariç olmak üzere her ayın 1’i, Ocak’ta ise 2’sinde olması gerekir.
iCalendar RFC, VEVENT ya da VTODO gibi bileşenleri tanımlar; bu bileşenler olayları veya görevleri temsil eder. Bileşenler başlangıç tarih/saat, açıklama, konum, katılımcılar ve tekrar gibi özelliklere sahip olabilir. Tekrar deseni genellikle yinelenen bir görev ya da olayın özelliği olarak bulunur. iCalendar tarafından tanımlanan tekrar deseni özellikleri şunlardır:
- DTSTART – desenin başlangıç tarih ve saatini (aynı zamanda açıkça dışlanmazsa ilk oluşumu da) temsil eder.
- RRULE – bir tekrar seti için yinelenen kuralı belirtir.
- RDATE – bir tekrar setine dahil edilecek tarih ve zaman listesini tanımlar.
- EXRULE – bir tekrar setinden istisnalar için yinelenen kuralı belirtir.
- EXDATE – bir tekrar setinden tarih ve zaman istisnalarını tanımlar.
Sadece DTSTART gereklidir ve yalnızca bir DTSTART olmalıdır. Diğer tüm özellikler isteğe bağlıdır ve birden çok kez belirtilebilir.
Aspose.Email Tekrar Nesne Modeli
Bu Aspose.Email.Calendar.Recurrences ad alanı, iCalendar tekrarlarıyla çalışmak için kullanılan sınıfları içerir. CalendarRecurrence ve RecurrenceRule ortak sınıflardır ve ilgili RFC 2445 öğelerinin somut uygulamalarını sağlar.
- Bu
CalendarRecurrencesınıfı tüm tekrar desenini temsil eder. Varsayılan yapıcıyı kullanarak sıfırdan yeni bir tekrar deseni oluşturabilir veya statikFromiCalendarmetod. - Bu
RecurrenceRulesınıfı, bir tekrar deseninin RRULE veya EXRULE kısmını temsil eder.RecurrenceRuleiCalendar standardındaki karşılıklarıyla doğrudan eşleşen bir dizi özelliği ortaya çıkarır. Örneğin,ByMonthiCalendar’da BYMONTH’a karşılık gelir, vb. Değerleri inceleyerek veya ayarlayarakRecurrenceRuleözellikleri, bir tekrar kuralını analiz edebilir veya değiştirebilirsiniz.
Aşağıdaki kod parçacığı bir tekrar desenini (RRULE kısmının tekrar kuralını içerdiği) yükler ve oluşumları üretir:
// Ten team meetings, every Monday at 10am.
CalendarRecurrence pattern = new CalendarRecurrence("DTSTART:20040301T100000\n" + "RRULE:FREQ=WEEKLY;COUNT=10;BYDAY=MO");
DateCollection dates = pattern.GenerateOccurrences();
Bir Tekrar Deseninden Oluşumlar Üret
Aspose.Email ile bir tekrar deseninden oluşumlar üretmek mümkündür. "Sonraki" oluşumu elde etmek için şunu kullanın GenerateOccurrences parametresiyle yöntemi nNextOccurrences = 1. Aşağıdaki kod parçacığı, şu kullanarak 20 oluşum üretir GenerateOccurrences(20).
CalendarRecurrence recurrencePattern = new CalendarRecurrence();
recurrencePattern.StartDate = new DateTime(1997, 9, 10, 9, 0, 0);
RecurrenceRule rule = recurrencePattern.RRules.Add();
rule.Frequency = Frequency.Monthly;
rule.Count = 20;
rule.Interval = 18;
rule.ByMonthDay.Add(new int[] { 10, 11, 12, 13, 14, 15 });
DateCollection expectedDates = recurrencePattern.GenerateOccurrences(20);
Console.WriteLine("expectedDates.Count = " + expectedDates.Count);
foreach (DateTime date in expectedDates)
{
Console.WriteLine("DateTime = " + date);
}
Tekrar İçin Kullanıcı‑Dostu Metin Al
Bir kural için kullanıcı dostu metin, şu kullanılarak elde edilebilir FriendlyText özelliği. Aşağıdaki kodun çıktısı: "Ayda 1. ve ayın son gününden 1. gün itibarıyla en fazla 2 oluşum için tekrarla."
RecurrenceRule rule = new RecurrenceRule();
rule.Frequency = Frequency.Monthly;
rule.Count = 2;
rule.ByMonthDay.Add(1);
rule.ByMonthDay.Add(-1);
Console.WriteLine(rule.FriendlyText);
Örnek Tekrar Desenleri
Aşağıdaki örnek RRULE dizeleri, yaygın zaman çizelgelerini nasıl ifade edeceğinizi gösterir.
-
Ayın son günü, her ay. Ayın sondan bir gün öncesinde bir oluşum istiyorsanız, kullanın
BYMONTHDAY=-2. Eğer belirtirsenizBYMONTHDAY=31, ardından iCalendar standardına göre, 31’den az gün içeren aylarda hiçbir oluşum üretilmez.RRULE:FREQ=MONTHLY;BYMONTHDAY=-1 -
Her ayın son iş günü. Bu kural bir ayın tüm iş günlerini belirler ve sonuncusunu seçer. Sonuç, ayın son iş günü olur.
RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1 -
Yılın son Pazartesisi.
RRULE:FREQ=YEARLY;BYDAY=-1MO -
Yılın ilk ISO 8601 haftasındaki Cuma. ISO 8601 spesifikasyonunda, yılın ilk haftası en az dört gün içeren ilk haftadır.
FREQ=YEARLY;BYWEEKNO=1;BYDAY=FR -
Yılın İlk Cuması. Örneğin 1999’da yılın 1. Cuması 1999/01/01 iken, ISO 8601’in 1. haftasındaki Cuma 1999/01/08’dir.
FREQ=YEARLY;BYDAY=1FR
Önemli iCalendar (RFC 2445) Detayları
Tarihler veya ilişkili zamanları içeren tarihler, bir yineleme deseni belirtirken DTSTART, UNTIL, EXDATE ve RDATE öğelerinde kullanılabilir. iCalendar, takvim tarihi içeren değerleri tanımlamak için DATE değer tipini, kesin takvim tarihi ve saatini tanımlamak için DATE‑TIME tipini tanımlar. DATE‑TIME değerleri üç biçimde belirtilebilir: yerel zaman, UTC zamanı ve saat dilimi ile yerel zaman.
- DATE. iCalendar standardına göre, DATE değerleri
yyyyMMddbiçimi. Örneğin,1997071414 Temmuz 1997’yi temsil eder. - Yerel zaman ile DATE‑TIME. Yerel zaman biçimi, UTC göstergesi içermeyen ve saat dilimine referans vermeyen bir date‑time değeridir. Örneğin,
DTSTART:19980118T23000018 Ocak 1998, saat 23:00’ı temsil eder. Bu tipteki date‑time değerlerine "floating" denir ve belirli bir saat dilimine bağlı değildir. Hangi saat dilimi gözlemlenirse gözlemlensin aynı saat, dakika ve saniye değerini temsil ederler. - UTC zamanı ile DATE‑TIME. UTC zamanı (mutlak zaman) içeren tarih büyük harfle
Zekini zaman değerine ekler. Örneğin,DTSTART:19980119T070000Z19 Ocak 1998, 07:00 UTC’yi temsil eder. Aspose.Email UTCZekini ekleyerek zamanı yerel zaman olarak işler. RFC 2445 standardı, bir yineleme deseninin UNTIL kuralında belirtilen zaman kısmının UTC formatında olması gerektiğini belirtir; Aspose.Email, UNTIL kuralında zamanı herhangi bir formatta kabul eder. - Yerel zaman ve saat dilimi ile DATE‑TIME. Bir saat dilimine referans vermek için DATE‑TIME, TZID özelliği ile değiştirilir. Örneğin,
DTSTART;TZID=US-Eastern:19980119T02000019 Ocak 1998 New York’ta saat 02:00’i temsil eder. Aspose.Email şu anda TZID parametresini yok sayar ve zamanı yerel zaman olarak işler. - BYWEEKNO ve ISO 8601 uyumluluğu. BYWEEKNO yalnızca ISO 8601 gereklidir. ISO 8601 tarafından tanımlanan hafta numaraları, normal anlamda hafta numaralarından farklıdır: takvim yılının bir numaralı haftası, en az dört gün içeren ilk haftadır. BYWEEKNO kuralı, yılın haftalarını tanımlayan virgülle ayrılmış bir sayı listesi (geçerli değerler 1‑53 ve -1‑‑53) belirtir ve yalnızca YEARLY kuralları için geçerlidir.
Ayrıca Bakınız
- Outlook Takvim Öğelerini Yönetme — takvim öğelerini Outlook olarak oluşturun ve yönetin
MapiCalendar(MSG) nesneleri. - PST Dosyalarında Takvim Öğelerini Yönetme — PST içinde takvim öğelerini depolayın ve okuyun.