/// <summary>
        /// Metoda pobiera z WebServisu informacje o użytkowniku, którego nie ma w Usłudze.
        /// </summary>
        /// <param name="guest">Parametr z którego pobierane są informacje, którego użytkownika dodać.</param>
        private async Task AddNewUser(SimpleBookingUser guest)
        {
            Logs.WriteErrorLog("AddNewUser");
            Logs.WriteErrorLog("guest.UserId: " + guest.UserId.ToString() + ", Booking title: " + guest.BookingTitle);

            GetUserInfoResponse userInfo = null;

            userInfo = await WebServiceConnection.SendGet <GetUserInfoResponse>("user/" + guest.UserId + "/info");

            if (userInfo == null)
            {
                Logs.WriteErrorLog("UserInfo zwrocilo null z WebSerwisu");
            }
            if (userInfo.Email == null)
            {
                Logs.WriteErrorLog("UserEmil zwrocil null");
            }
            var userNew = new User(userInfo.Email, guest.UserId);

            //userNew.UserId = guest.UserId;
            Logs.WriteErrorLog("UserNew.UserEmail: " + userNew.UserEmail + ", UserNew.UserId" + userNew.UserId);
            //Autoryzuj użytkownika, zakładając że jego token istnieje.
            userNew.Calendar.AuthorizeTask();
            if (userNew.Calendar.IsCalendarAuthorized == false)
            {
                return;
            }
            Logs.WriteErrorLog("uzytkownik " + userNew.UserEmail + " zostal zautoryzowany.");
            userNew.Calendar.Service.Events.QuickAdd("primary", "Testujemy poprawnosc autoryzacji").ExecuteAsync();

            _usersList.Add(userNew);
            Logs.WriteErrorLog("Pierwszy uzytkownik w kolejce to: " + _usersList.First().UserEmail);
        }
        /// <summary>
        /// Metoda odpytująca WebService o nowe zdarzenia w przedziale czasowym określonym w jako argumenty metody.
        /// </summary>
        /// <param name="timeBefore">Początek przedziału czasowego.</param>
        /// <param name="timeNow">Koniec przedziału czasowego.</param>
        /// <returns></returns>
        private async void AskAboutNewEventsTask(DateTime timeBefore, DateTime timeNow)
        {
            // Obiekt metody WebServisu pozwalająca zainicjalizować żądanie pobrania rezerwacji WYKONANYMI między określonym czasem.
            _bookingsRequest = new GetBookingsCreatedBetweenDatesRequest()
            {
                BeginTime = timeBefore,
                EndTime   = timeNow,
                SenderId  = LoginToWebServiceData.WebServiceId,
                Token     = LoginToWebServiceData.WebServiceToken
            };

            // Obiekt metody WebServisu przyjmujący odpowiedź na zapytanie o rezerwację sal,
            // wykonane w podanym przedziale czasowym.
            var bookingsResponse = await WebServiceConnection.
                                   SendPost <GetBookingsCreatedBetweenDatesRequest, GetBookingsCreatedBetweenDatesResponse>(_bookingsRequest, "booking/dates");

            if (bookingsResponse != null)
            {
                if (bookingsResponse.Status == 0)
                {
                    foreach (var booking in bookingsResponse.BookingsList)
                    {
                        Logs.WriteErrorLog("Ilosc rezerwacji w booking: " + booking.GuestList.Count.ToString());
                        foreach (var guest in booking.GuestList)
                        {
                            var userInfo =
                                await WebServiceConnection.SendGet <GetUserInfoResponse>("user/" + guest.UserId + "/info");

                            if (userInfo == null)
                            {
                                Logs.WriteErrorLog("Nie odzyskalem odpowiedzi od WS");
                            }
                            if (userInfo.Email.EndsWith("@gmail.com") == false)
                            {
                                continue;
                            }
                            Logs.WriteErrorLog("guest.BookingTitle: " + guest.BookingTitle);
                            Logs.WriteErrorLog("guest.userId: " + guest.UserId.ToString());

                            var userItem = _usersList.FirstOrDefault(u => u.UserId == guest.UserId);

                            if (userItem == null)
                            {
                                Logs.WriteErrorLog("Uzytkownika nie ma w kolejce, ani na liscie. Dodaje go...");
                                await AddNewUser(guest);
                            }
                            Logs.WriteErrorLog("Dodalem uzytkownika, tutaj sie zacinam.");
                            userItem = _usersList.FirstOrDefault(u => u.UserId == guest.UserId);
                            AddNewEvent(guest, userItem);
                            await UpdateAllCalendars();
                        }
                        //Dodaj Kalendarz i wywołaj metodę booking dla kalendarza użytkownika.
                        //booking.GuestList[0].Confirmation
                        //Logs.WriteErrorLog(booking.Title + ": " + booking.Description);
                    }
                    await UpdateAllCalendars();
                }
                else
                {
                    Logs.WriteErrorLog(bookingsResponse.Status + ": " + bookingsResponse.Message);
                }
            }
            else
            {
                Logs.WriteErrorLog("Nie udalo sie otrzymac odpowiedzi od WebService'u");
            }
        }