Google Calendar API会返回日期范围之外的事件

时间:2010-10-18 23:07:43

标签: google-calendar-api date-range

我正在尝试从今天的日期开始选择接下来两周的活动。 使用的逻辑非常简单。我得到所有日历,然后选择一个我需要从中提取事件并提供日期范围。我从所选日历中提取日期,但它看起来不像日期范围。现在,我有两个活动安排在以下日期。

  • 10月8日
  • 10月20日

我应该只在10月20日举行活动,但我得到了两个。

        CalendarService calService = new CalendarService(calendarAppName);
        calService.setUserCredentials(username, password);

        CalendarQuery calQuery = new CalendarQuery();
        calQuery.Uri = new Uri("https://www.google.com/calendar/feeds/default/owncalendars/full");
        CalendarFeed calFeed = (CalendarFeed)calService.Query(calQuery);

        var activeCalendar = calFeed.Entries.Where(x => x.Title.Text == calendarName).FirstOrDefault();
        if (activeCalendar != null)
        {
           EventQuery evtQuery = new EventQuery(GetCalendarFeed(activeCalendar));
           evtQuery.StartDate = DateTime.Now.AddDays(-1);
           evtQuery.EndDate = DateTime.Now.AddDays(14);
           evtQuery.FutureEvents = false;

           EventFeed evtFeed = calService.Query(evtQuery);
        }

        ...

        private static string GetCalendarFeed(AtomEntry calendarEntry)
        {
           string feedstring = calendarEntry.Id.AbsoluteUri.Substring(63);
           return string.Format("http://www.google.com/calendar/feeds/{0}/private/full", feedstring);
        }

有人能发现什么问题吗?

修改 事实证明StartTime / EndTime正常工作。我真的不明白它的区别是什么,我似乎无法在文档中找到任何东西。

1 个答案:

答案 0 :(得分:0)

我只需要使用StartTime / EndTime。仍然不知道何时使用StartDate和EndDate,但这确实解决了我的问题。