سؤال

I have created appointment using the below code:

MailMessage mmMessage = new MailMessage();
System.Net.Mime.ContentType typeCalendar = new System.Net.Mime.ContentType("text/calendar");

//  Add parameters to the calendar header
typeCalendar.Parameters.Add("method", "REQUEST");
typeCalendar.Parameters.Add("name", "meeting.ics");

//Create the Body in VCALENDAR format  
string strCalDateFormat = "yyyyMMddTHHmmssZ";
string strBodyCalendar = "BEGIN:VCALENDAR\r\nMETHOD:REQUEST\r\nPRODID:Microsoft CDO for Microsoft Exchange\r\nVERSION:2.0\r\nBEGIN:VTIMEZONE\r\nTZID:(GMT-06.00) Central Time (US & Canada)\r\nX-MICROSOFT-CDO-TZID:11\r\nBEGIN:STANDARD\r\nDTSTART:16010101T020000\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nRRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD\r\nBEGIN:DAYLIGHT\r\nDTSTART:16010101T020000\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nRRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nDTSTAMP:{8}\r\nDTSTART:{0}\r\nSUMMARY:{7}\r\nUID:{5}\r\nATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=\"{9}\":MAILTO:{9}\r\nACTION;RSVP=TRUE;CN=\"{4}\":MAILTO:{4}\r\nORGANIZER;CN=\"{3}\":mailto:{4}\r\nLOCATION:{2}\r\nDTEND:{1}\r\nDESCRIPTION:{7}\\N\r\nSEQUENCE:{10}\r\nPRIORITY:5\r\nCLASS:\r\nCREATED:{8}\r\nLAST-MODIFIED:{8}\r\nSTATUS:CONFIRMED\r\nTRANSP:OPAQUE\r\nX-MICROSOFT-CDO-BUSYSTATUS:BUSY\r\nX-MICROSOFT-CDO-INSTTYPE:0\r\nX-MICROSOFT-CDO-INTENDEDSTATUS:BUSY\r\nX-MICROSOFT-CDO-ALLDAYEVENT:FALSE\r\nX-MICROSOFT-CDO-IMPORTANCE:1\r\nX-MICROSOFT-CDO-OWNERAPPTID:-1\r\nX-MICROSOFT-CDO-ATTENDEE-CRITICAL-CHANGE:{8}\r\nX-MICROSOFT-CDO-OWNER-CRITICAL-CHANGE:{8}\r\nBEGIN:VALARM\r\nACTION:DISPLAY\r\nDESCRIPTION:REMINDER\r\nTRIGGER;RELATED=START:-PT00H15M00S\r\nEND:VALARM\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";

string strUID = Session["ApptID"].ToString() + "@youremailaddress.com";
strBodyCalendar = string.Format(strBodyCalendar, dtStart.ToUniversalTime().ToString(strCalDateFormat), dtEnd.ToUniversalTime().ToString(strCalDateFormat), strLocation, strOrganizerName, strOrganizerEmail, strUID, strSummary, strSubject,DateTime.Now.ToUniversalTime().ToString(strCalDateFormat), macAttendeeList.ToString(),0);

AlternateView viewCalendar = AlternateView.CreateAlternateViewFromString(strBodyCalendar, typeCalendar);
viewCalendar.TransferEncoding = TransferEncoding.SevenBit;

mmMessage.AlternateViews.Add(viewCalendar);

Please guide me as how to delete the appointment created using the above code.

Now using the similar body i.e. strBodyCalendar I have to update the category of the outlook from the c# code itself.

I am passing \r\nCATEGORIES:MEETING and I have defined MEETING Category in BLUE color in my OUTLOOK.

Still after adding the appointment, the color or category is not updated.

Thank you for your help.

Please guide through.

هل كانت مفيدة؟

المحلول

When you are framing the appointment using Vcalendar,

You need to change the below attributes

  1. Method:Cancel

  2. UID should be same which you provided while creating appointment.

  3. Sequence should be same.

  4. Status should be changed from Confirmed To cancelled.

If you need any help related to the same, please paste your Vcalendar code below.

نصائح أخرى

Microsoft.Office.Interop.Outlook.Application OlApp = new Microsoft.Office.Interop.Outlook.Application(); NameSpace OlNamspace = OlApp.GetNamespace("MAPI"); MAPIFolder AppointmentFolder = OlNamspace.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);

Items calendarItems = AppointmentFolder.Items;

AppointmentItem item = calendarItems["Subject/Item Name"] as AppointmentItem;

item.Delete(); MessageBox.Show("Calendar event has been deleted.");

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top