Программно добавить приглашение на собрание ics в Календарь Google - PullRequest
0 голосов
/ 14 апреля 2020

Я работаю с приглашением на встречу с помощью c#. Когда мы отправляем приглашение по электронной почте в Outlook, оно автоматически добавляет приглашение на собрание в календарь Outlook, но оно не добавляет автоматически приглашение в Календарь Google, пока мы не примем приглашение, нажав «Да» в Gmail. Я хочу добавить приглашение на собрание в Календарь Google автоматически. Как этого добиться, используя c#?

Это работает в outlook: (Здесь я еще не нажимал "да", но приглашение на собрание было добавлено в outlook как как только я получил письмо) outlook

Вот мой код:

string startTime1 = TimeZoneInfo.ConvertTimeToUtc(Convert.ToDateTime(data.START_TIME)).ToString("yyyyMMddTHHmmssZ");
string endTime1 = TimeZoneInfo.ConvertTimeToUtc(Convert.ToDateTime(data.END_TIME)).ToString("yyyyMMddTHHmmssZ");

SmtpClient sc = SmtpSettings();
MailMessage msg = new MailMessage();

msg.From = new MailAddress("fromemail@gmail.com", "Screen Detailing");
msg.To.Add(new MailAddress(data.TO_EMAIL));              

msg.Subject = data.SUBJECT;
msg.Body = "Zoom URL: " + data.ZOOM_URL + "n/ Zoom Pwd: " + data.ZOOM_PWD; //emailbody

StringBuilder str = new StringBuilder();
str.AppendLine("BEGIN:VCALENDAR");

//PRODID: identifier for the product that created the Calendar object
str.AppendLine("PRODID:-//ABC Company//Outlook MIMEDIR//EN");
str.AppendLine("VERSION:2.0");
str.AppendLine("METHOD:REQUEST");

str.AppendLine("BEGIN:VEVENT");

str.AppendLine(string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}", startTime1));
str.AppendLine(string.Format("DTSTAMP:{0:yyyyMMddTHHmmssZ}", DateTime.Now));
str.AppendLine(string.Format("DTEND:{0:yyyyMMddTHHmmssZ}", endTime1));
str.AppendLine(string.Format("LOCATION: {0}", "Location"));

// UID should be unique.
str.AppendLine(string.Format("UID:{0}", Guid.NewGuid()));
str.AppendLine(string.Format("DESCRIPTION:{0}", msg.Body));
str.AppendLine(string.Format("X-ALT-DESC;FMTTYPE=text/html:{0}", msg.Body));
str.AppendLine(string.Format("SUMMARY:{0}", msg.Subject));

str.AppendLine("STATUS:CONFIRMED");
str.AppendLine("BEGIN:VALARM");
str.AppendLine("TRIGGER:-PT15M");
str.AppendLine("ACTION:Accept");
str.AppendLine("DESCRIPTION:Reminder");
str.AppendLine("X-MICROSOFT-CDO-BUSYSTATUS:BUSY");
str.AppendLine("END:VALARM");
str.AppendLine("END:VEVENT");

str.AppendLine(string.Format("ORGANIZER:MAILTO:{0}", msg.From.Address));
str.AppendLine(string.Format("ATTENDEE;CN=\"{0}\";RSVP=TRUE:mailto:{1}", msg.To[0].DisplayName, msg.To[0].Address));

str.AppendLine("END:VCALENDAR");
System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType("text/calendar");
ct.Parameters.Add("method", "REQUEST");
ct.Parameters.Add("name", "meeting.ics");
AlternateView avCal = AlternateView.CreateAlternateViewFromString(str.ToString(), ct);
msg.AlternateViews.Add(avCal);
sc.Send(msg);

Существует ли какой-либо скрипт или код, который автоматически добавит приглашение на собрание в любой календарь? на дайвисе? то есть Googl, ios et c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...