Фид Календаря Google - Показывать только сегодняшние события - PullRequest
1 голос
/ 08 октября 2009

Это мой первый пост здесь в stackoverflow. У меня вопрос, как изменить фид календаря Google, чтобы он автоматически отображал только события за текущий день?

По сути, я хочу вывести канал на веб-страницу, которая показывает только события на сегодня. Канал будет меняться день ото дня. Я делал что-то подобное с другими фидами (не с календарем Google) раньше, за исключением тех случаев, когда я буду выводить самые последние "#" постов. Это не сработало бы, если бы я показывал события только сегодня.

Я искал на трубах Yahoo и нашел несколько, где он фильтрует канал с датой, которую вы должны ввести. Это работает, за исключением того, что я хочу сделать это автоматическим, вместо того, чтобы кто-то вводил дату. Читая API календаря Google, я также могу указать диапазон дат, но это та же проблема, мне нужно было бы указать диапазон вручную. Есть ли способ автоматизировать эту или какую-то другую альтернативу?

Есть ли какая-нибудь магия xslt, которую я могу сделать или что-то еще?

Спасибо за помощь!

Ответы [ 3 ]

2 голосов
/ 10 октября 2009

Вы можете сделать это в Yahoo Pipes :

  1. Получить канал iCal из вашего календаря Google. (Как отмечали другие, каналы Atom, которые предоставляет календарь Google, похоже, не содержат дату события в разумно структурированном формате.)
  2. Фильтр подачи на основе значений DTSTART / DTEND. Вы можете использовать модуль Date Builder , чтобы получить текущую дату, просто введите «сегодня» в качестве даты.

Пример канала (отображаются только события, начинающиеся в течение следующих 24 часов):

iCal next 24 h

0 голосов
/ 06 августа 2012

Что вы делаете, так это устанавливаете параметры URL для подачи атома - старт-мин на сегодня и старт-макс на завтра - также обратите внимание, что вам нужно пройти аутентификацию, чтобы это работало.

0 голосов
/ 06 сентября 2011

это дано по образцу gdata

private static void dateRangeQuery(CalendarService service,
  DateTime startTime, DateTime endTime) throws ServiceException,
  IOException {
CalendarQuery myQuery = new CalendarQuery(eventFeedUrl);
myQuery.setMinimumStartTime(startTime);
myQuery.setMaximumStartTime(endTime);

// Send the request and receive the response:
CalendarEventFeed resultFeed = service.query(myQuery,
    CalendarEventFeed.class);

System.out.println("Events from " + startTime.toString() + " to "
    + endTime.toString() + ":");
System.out.println();
for (int i = 0; i < resultFeed.getEntries().size(); i++) {
  CalendarEventEntry entry = resultFeed.getEntries().get(i);
  System.out.println("\t" + entry.getTitle().getPlainText());
}
System.out.println();

}

в котором я думаю, что вы можете просто установить минимальное и максимальное время в один и тот же день?

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