Flutter Google 日历 Api 列表事件

Flutter Google Calendar Api list Events

Flutter,Google 日历 API v3 https://pub.dartlang.org/packages/googleapis

作品:

  Future<List<Event>> getEvents() =>
  calendarApi.events.list("primary",
  )
  .then((Events events){
    return events.items;
  }).catchError((e){
    print("error encountered");
    print("${e.toString()}");
  });

无效:

DateTime start = new DateTime.now().subtract(new Duration(days: 10));
DateTime end = new DateTime.now().add(new Duration(days: 10));
..
  Future<List<Event>> getEvents() =>
  calendarApi.events.list("primary",
    timeMin: start,
    timeMax: end,
  )
  .then((Events events){
    return events.items;
  }).catchError((e){
    print("error encountered");
    print("${e.toString()}");
  });

为什么?

根据 Google 日历 API,timeMin 和 timeMax 值必须遵循 RFC3339 日期标准。

日历在您传入的 DateTimes 上应用 .toIso8601String()。但是,这并不能使它们成为有效的 RFC3339 日期。

在传入它们之前调用 .toUtc() 将使它们成为有效的 RFC3339。您可以在 DartPad togheter with Googles Api explorer 中尝试,您会看到不同的响应。

可能有更多方法可以使 DateTime RFC3339 兼容,但这至少应该指出错误。