使用Google Calendar API v3获取下一个重复活动的实例

问题描述 投票:3回答:2

我正在尝试将日历范围内的事件(单个或重复事件)发送到我的日历中。现在,我不一定知道下一个重复事件实例的确切日期时间。对于重复发生的事件,我想要下一次出现的日期而不是第一个实例的日期,因为我得到了下面的请求。我该怎么做呢?

https://www.googleapis.com/calendar/v3/calendars/ {calendarid} /事件?字段=项(ID,摘要,开始)键= {APIkey}&timeMax = {结束日期}&时间min = {} STARTDATE

javascript google-calendar-api
2个回答
9
投票

添加URL参数singleEvents=True。这会将所有重复活动扩展到各自的项目中。如果您还不知道它是什么时间,那么没有任何方法可以专门获取系列中的第二个事件,但使用该参数将允许您解析所有实例并获得所需的实例。

资料来源:https://developers.google.com/google-apps/calendar/v3/reference/events/list


0
投票
long now = System.currentTimeMillis();

Uri.Builder eventsUriBuilder = CalendarContract.Instances.CONTENT_URI.buildUpon();
ContentUris.appendId(eventsUriBuilder, Long.MIN_VALUE);
ContentUris.appendId(eventsUriBuilder, Long.MAX_VALUE);
String[] projection = new String[]{CalendarContract.Instances.CALENDAR_ID, CalendarContract.Instances.TITLE,
        CalendarContract.Instances.DESCRIPTION, CalendarContract.Instances.BEGIN,
        CalendarContract.Instances.END, CalendarContract.Instances.EVENT_LOCATION,
        CalendarContract.Instances.EVENT_ID};

Uri eventsUri = eventsUriBuilder.build();
Cursor instance_cursor = getActivity().getContentResolver().query(
        eventsUri, projection, CalendarContract.Instances.BEGIN + " >= " + now + " and " + CalendarContract.Instances.BEGIN
                + " <= " + (now + 2592000000L) + " and " + CalendarContract.Instances.VISIBLE + " = 1",
        null, CalendarContract.Instances.DTSTART + " ASC");
© www.soinside.com 2019 - 2024. All rights reserved.