I want to create a reminder in Google Calendar from my Android app.
Creating events is well-documented, there’s a Calendar content provider for that. However there seems to be no content provider contract for these standalone reminders (not to be confused with event reminders, aka event notifications).
In the app, "Reminders" is listed as a separate calendar along "Events", but when I query the CalendarContract.Calendars table, it’s not on the list. Querying the CalendarContract.Events also doesn’t list reminder events. So I guess they’re stored somehow differently, yet I cannot find any info on that.
Is there a way to create these reminders programmatically?
Okay, after some more looking, answering my own question.
There’s no way to do this. Despite those reminders being a cross-application feature, there's no API to access them.
There's a feature request for this.
My question basically duplicates questions: [1] [2], I didn't find them because they mentioned other apps, which share the same reminders with Calendar.
Related
I'm looking to add a feature to a mobile app that lets its users schedule events (including recurring ones). An example of an event could be Event A repeats every month on the 3rd of the month starting on March 3, 2011.
To be honest I don't know where to begin. After searching SO for a while I came across this answer to a question about representing and detecting recurring events in a relational DB. Briefly, the answer suggests creating two SQL tables (events & meta) where meta holds onto the repeat information for each record inside the events table. Using a join statement and a given date the provided SQL query will return those events that match the given date.
My question is, in relation to a mobile app, what are some meaningful approaches to implementing a scheduling system with support for recurring events? is the answer from the above link the right way to do this?
Use the following libraries: Background Fetch and/or Workmanager. Bear in mind those are easy searchable libraries. Mobile clients have limits over what you can and can't do in background and you can read about it using their officials docs.
iOS: Background Tasks
Android: Background Processing
I created an Android app that read all the events of the calendar, it's work fine but I can't read the list of reminders: the simplified event in the Google calendar identified by this icon (knot on the finger)
Google Calendar Reminder
Someone can tell me how can I read this type of event or where can I find a tutorial or a guide where this is explained?
If you want to fetch list of reminders, use Events.list. It returns events and the accompanying reminders.
Default reminders
Default reminders are also returned when
doing an Events list query.
I discovered that the reminders aren't only on calendar but are in different Google app (keep for example).
Unfortunately it's not possible to access a this kind of data.
This the link of the answer in Stackoverflow: How to read reminders in google calendars
According to OferR The Reminders data is held in a database and accessible by the 'com.google.android.gms.reminders.provider.RemindersProvider' content provider.
So, the provider is not exported and therefore is not accessible to third party apps.
Last month Google Added the ability to add standalone Reminders into their Calendar app (see article), i have tried to get those events through the standard Calendar Content provider but without any success, those items are not returned by the CalendarContract.Instances.CONTENT_URI query and also are not listed as alerts in the CalendarContract.CalendarAlerts.CONTENT_URI.
Maybe this data is not exported at all.
P.S. I know how to query reminders associated to events, this is not what i am asking here
I am new at android this, so this might sound a bit confusing..
i am making an app that requires to have calendars showing events in week, day and month views (like google calendar). I have implemented this is a testing version but i want to change the implementation to make it more flexible. currently the event are stored in database and are edited and used in various activities in the app. Can i have android manage the events in it's calendar? but i would still need to be able to manipulate it from the app and store extra info other than the time and date and description. These extra info will be used for calculations. We also need to have a calendar in the app. Can we retrieve the events specific to the app for doing all this?
This tutorial might be of help.
Background: I am working on an Android Honeycomb (v3.0) application that has a requirement of communicating with the Google Calendar API. I would like to allow my application to access a particular Google account's Calendar data in order to read and create events. I have figured out how to to this through the help of this tutorial and this thread that I have previously posted on stackoverflow.
My requirements: I would like to allow a user to add guests to the events. There are two types of guests: people and (meeting) rooms. I know how to add people as guests to an event, but I have no idea how to add rooms. The way room invitations are supposed to work are as follows:
1) Room is added to the event
2) The event is created
3) Room automatically responds to the invitation by either:
Accepting the invitation to the event and displaying it on the room's own calendar
Rejecting the invitation
The screenshot below displays how the Google Calendar in-browser UI handles this:
As you can see, I have added room 109 as a guest. If room 109 is available (which it is, because only available rooms are shown), it will accept the event invitation and add the event to its own calendar.
My problem: I have learned that I can check the free/busy times of a particular calendar by using the Google Calendar API as described here. However, I am not sure whether there is a special procedure for inviting the room to be a location for the event (see the "Where" textbox in the screenshot). Does anyone have some suggestions? Thank you very much for your help!
I have figured out the solution - a room can simply be invited by including its email address into the guest list. The room will then automatically respond to the request. I will have to check whether the room is available before sending it the request to warn the user that the room cannot be reserved if a reservation is already present for that time.