public IActionResult Create()
        {
            var now   = DateTime.Now.AddHours(1);
            var later = now.AddHours(2);

            CalendarSogo.Models.Event ev = new CalendarSogo.Models.Event()
            {
                Start = now,
                End   = later,
            };
            return(View(ev));
        }
        public async Task <IActionResult> Create(CalendarSogo.Models.Event ev)
        {
            try
            {
                CalendarEvent e = new CalendarEvent()
                {
                    Description = ev.Description,
                    Summary     = ev.Summary,
                    Start       = new CalDateTime(ev.Start),
                    End         = new CalDateTime(ev.End),
                    Location    = "301 cabinet",
                    Comments    = new List <string>()
                    {
                        "comment1"
                    },
                    Contacts = new List <string>()
                    {
                        "Contacts"
                    },
                    GeographicLocation = new GeographicLocation(),

                    Organizer = new Organizer()
                    {
                        CommonName = "Organizer name",
                        Value      = new Uri("mailto:[email protected]")
                    },
                    Attendees = new List <Attendee>()
                    {
                        new Attendee(new Uri("mailto:[email protected]"))
                        {
                            CommonName = "test1 name",
                            Role       = ParticipationRole.RequiredParticipant
                        },
                        new Attendee(new Uri("mailto:[email protected]"))
                        {
                            CommonName = "test2 name",
                            Role       = ParticipationRole.RequiredParticipant
                        },
                    }
                };


                string readAll;
                //HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://mx.sailau09.kz/SOGo/dav/[email protected]/Calendar/personal/" + e.Uid + ".ics");
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://mx.sailau09.kz/SOGo/dav/[email protected]/Calendar/dddd" + e.Uid + ".ics");
                request.Credentials = new NetworkCredential("*****@*****.**", "!QAZ3edc");
                request.ContentType = "text/calendar";
                request.Headers.Add("If-None-Match", "*");
                request.Method = "PUT";
                request.ServerCertificateValidationCallback = delegate { return(true); };// при публикации на боевой сервер убрать

                Ical.Net.Calendar calendar = new Ical.Net.Calendar();
                calendar.Events.Add(e);
                CalendarSerializer calendarSerializer = new CalendarSerializer();
                // возьмем поток и запишем туда наше мероприятие
                using (var stream = request.GetRequestStream())
                {
                    calendarSerializer.Serialize(calendar, stream, Encoding.UTF8);
                }
                HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();

                using (Stream stream = response.GetResponseStream())
                {
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        var statusCode = response.StatusCode;
                        readAll = reader.ReadToEnd();
                    }
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(new { message = ex.Message }));
            }
            return(RedirectToAction("Index"));
        }