Pages

Monday, August 24, 2009

Send a Calendar Invitation from c# using vCalendar view plaincopy to clipboardprint?

1. using System;
2. using System.Collections.Generic;
3. using System.Text;
4. using System.Net.Mail;
5. using System.IO;
6.
7. namespace CalendaringScheduling
8. {
9. class Program
10. {
11. static void Main(string[] args)
12. {
13. StringBuilder sbCalendar = new StringBuilder();
14. DateTime dtStart = DateTime.Now;
15. DateTime dtEnd = DateTime.Now.AddHours(2);
16.
17. sbCalendar.AppendLine("METHOD: REQUEST");
18. sbCalendar.AppendLine("BEGIN:VCALENDAR");
19. sbCalendar.AppendLine("PRODID:-//Ian Chivers//NET");
20. sbCalendar.AppendLine("MIMEDIR//ENVERSION:1.0");
21. sbCalendar.AppendLine("METHOD:REQUEST");
22. sbCalendar.AppendLine("BEGIN:VEVENT");
23. sbCalendar.AppendLine("DTSTAMP:" + dtStart.ToUniversalTime().ToString("yyyyMMdd\\THHmmss\\Z"));
24. sbCalendar.AppendLine("DTSTART:" + dtStart.ToUniversalTime().ToString("yyyyMMdd\\THHmmss\\Z"));
25. sbCalendar.AppendLine("DTEND:" + dtEnd.ToUniversalTime().ToString("yyyyMMdd\\THHmmss\\Z"));
26. sbCalendar.AppendLine("LOCATION:Minstead");
27. sbCalendar.AppendLine("DESCRIPTION;ENCODING=QUOTED-PRINTABLE:My first meeting");
28. sbCalendar.AppendLine("SUMMARY:Learning Calendaring and Scheduling");
29. sbCalendar.AppendLine("PRIORITY:3");
30. sbCalendar.AppendLine("UID:" + Guid.NewGuid().ToString() + "@ianchivers.com");
31. sbCalendar.AppendLine("ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION:MAILTO:ian.chivers@triangle-group.com");
32. sbCalendar.AppendLine("ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:MAILTO:ian@ianchivers.com");
33. sbCalendar.AppendLine("CLASS:PUBLIC");
34. sbCalendar.AppendLine("ORGANIZER:MAILTO:ian@ianchivers.com");
35. sbCalendar.AppendLine("SEQUENCE:0");
36. sbCalendar.AppendLine("STATUS:TENTATIVE");
37. sbCalendar.AppendLine("END:VEVENT");
38. sbCalendar.AppendLine("END:VCALENDAR");
39.
40. byte[] byteArray = Encoding.UTF8.GetBytes(sbCalendar.ToString());
41.
42. Stream contentStream = new MemoryStream(byteArray);
43.
44. SmtpClient smtp = new SmtpClient("mx1.hotmail.co.uk");
45. MailMessage memo = new MailMessage("ian@ianchivers.com", "ian_chivers@hotmail.co.uk");
46. Attachment attachment = new Attachment(contentStream, "calendar.ics", "text/calendar");
47. attachment.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;
48. memo.Attachments.Add(attachment);
49. smtp.Send(memo);
50.
51. }
52. }
53. }