Синхронизировать с Календарем Google в обе стороны - PullRequest
5 голосов
/ 02 декабря 2010

Ребята, вы знаете, есть ли в календаре Google какие-либо "push" сервисы? Есть ли способ получить все изменения в календаре пользователя, начиная с определенной отметки времени?

Ответы [ 4 ]

3 голосов
/ 23 марта 2011

если вы используете Обновлено-min = lastsynctime, вы получите правильные новые, обновленные, удаленные события также ..

 string formatedDate = "";
        EventQuery query = new EventQuery();
        DateTime? time;
        if (!string.IsNullOrEmpty(startDate))
        {
            time = Convert.ToDateTime(startDate);
            formatedDate = string.Format("{0:s}", time);

            // Create the query object:
            query.Uri = new Uri("http://www.google.com/calendar/feeds/" + service.Credentials.Username + "/private/full?updated-min=" + formatedDate);
        }
        else
        {
            query.Uri = new Uri("http://www.google.com/calendar/feeds/" + service.Credentials.Username + "/private/full");
        }


        // Tell the service to query:
        EventFeed calFeed = service.Query(query);
        return calFeed.Entries.Cast<EventEntry>();
3 голосов
/ 02 декабря 2010

Эта страница: http://code.google.com/apis/calendar/data/2.0/developers_guide_dotnet.html Содержит всю необходимую информацию, включая примеры.

Он покажет вам, как выбирать и отправлять элементы, и как запрашивать элементы, как вы предлагали.

Надеюсь, это поможет.

2 голосов
/ 16 октября 2013

вопрос задавался с 2010 года, но, как и в 2013 году, я google выпустил сервис push-уведомлений, который позволяет уведомлять URL-адрес вашей службы при любых изменениях вручную в Событиях

Проверить документ от Google

https://developers.google.com/google-apps/calendar/v3/push?hl=en

0 голосов
/ 02 декабря 2010

1001 * уверен *

var service = new CalendarService(domainName);
service.setUserCredentials(email, pwd);

// Create the query object:
EventQuery query = new EventQuery();
query.Uri = new Uri(string.Format("https://www.google.com/calendar/feeds/{0}/private/full", email));

// Tell the service to query:
EventFeed calFeed = service.Query(query);
return calFeed.Entries.AsEnumerable().Cast<EventEntry>().Where(entry => ???);

в объекте 'query' вы можете добавить желаемое условие, например 'query.StartDate'

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