public static void Run()
        {
            try
            {
                // ExStart: SendCalendarInvitation
                using (IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain"))
                {
                    // delegate calendar access permission
                    ExchangeDelegateUser delegateUser = new ExchangeDelegateUser("*****@*****.**", ExchangeDelegateFolderPermissionLevel.NotSpecified);
                    delegateUser.FolderPermissions.CalendarFolderPermissionLevel = ExchangeDelegateFolderPermissionLevel.Reviewer;
                    client.DelegateAccess(delegateUser, "*****@*****.**");

                    // Create invitation
                    MapiMessage           mapiMessage = client.CreateCalendarSharingInvitationMessage("*****@*****.**");
                    MailConversionOptions options     = new MailConversionOptions();
                    options.ConvertAsTnef = true;
                    MailMessage mail = mapiMessage.ToMailMessage(options);
                    client.Send(mail);
                }
                // ExEnd: SendCalendarInvitation
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public static void Run()
        {
            // ExStart: SendCalendarInvitation
            /// <summary>
            /// This exmpale shows how an Exchange user can share his/her calendar with someone using the EWS client of the API.
            /// Available from Aspose.Email for .NET 6.4.0 onwards
            /// </summary>

            using (IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain"))
            {
                // delegate calendar access permission
                ExchangeDelegateUser delegateUser = new ExchangeDelegateUser("*****@*****.**", ExchangeDelegateFolderPermissionLevel.NotSpecified);
                delegateUser.FolderPermissions.CalendarFolderPermissionLevel = ExchangeDelegateFolderPermissionLevel.Reviewer;
                client.DelegateAccess(delegateUser, "*****@*****.**");

                // Create invitation
                MapiMessage mapiMessage = client.CreateCalendarSharingInvitationMessage("*****@*****.**");

                // send invitation
                MailMessageInterpretor messageInterpretor = MailMessageInterpretorFactory.Instance.GetIntepretor(mapiMessage.MessageClass);
                MailMessage            mailMessage        = messageInterpretor.InterpretAsTnef(mapiMessage);
                client.Send(mailMessage);
            }
            // ExEnd: SendCalendarInvitation
        }