Events
class Events : BaseColumns, CalendarContract.SyncColumns, CalendarContract.EventsColumns, CalendarContract.CalendarColumns
kotlin.Any | |
↳ | android.provider.CalendarContract.Events |
Constants and helpers for the Events table, which contains details for individual events.
Operations
All operations can be done either as an app or as a sync adapter. To perform an operation as a sync adapterCALLER_IS_SYNCADAPTER
should be set to true and ACCOUNT_NAME
and ACCOUNT_TYPE
must be set in the Uri parameters. See Uri.Builder#appendQueryParameter(java.lang.String, java.lang.String)
for details on adding parameters. Sync adapters have write access to more columns but are restricted to a single account at a time.
- Insert
- When inserting a new event the following fields must be included:
- dtstart
- dtend if the event is non-recurring
- duration if the event is recurring
- rrule or rdate if the event is recurring
- eventTimezone
- a calendar_id
- Update
- To perform an update of an Event the
Events#_ID
of the event should be provided either as an appended id to the Uri (ContentUris#withAppendedId
) or as the first selection item--the selection should start with "_id=?" and the first selectionArg should be the _id of the event. Updates may also be done using a selection and no id. Updating an event must respect the same rules as inserting and is further restricted in the fields that can be written. See the section on Writing to Events. - Delete
- Events can be deleted either by the
Events#_ID
as an appended id on the Uri or using any standard selection. If an appended id is used a selection is not allowed. There are two versions of delete: as an app and as a sync adapter. An app delete will set the deleted column on an event and remove all instances of that event. A sync adapter delete will remove the event from the database and all associated data. - Query
- Querying the Events table will get you all information about a set of events except their reminders, attendees, and extended properties. There will be one row returned for each event that matches the query selection, or at most a single row if the
Events#_ID
is appended to the Uri. Recurring events will only return a single row regardless of the number of times that event repeats.
Writing to Events
There are further restrictions on all Updates and Inserts in the Events table:- If allDay is set to 1 eventTimezone must be "UTC" and the time must correspond to a midnight boundary.
- Exceptions are not allowed to recur. If rrule or rdate is not empty, original_id and original_sync_id must be empty.
- In general a calendar_id should not be modified after insertion. This is not explicitly forbidden but many sync adapters will not behave in an expected way if the calendar_id is modified.
CALENDAR_ID
ORGANIZER
TITLE
EVENT_LOCATION
DESCRIPTION
EVENT_COLOR
DTSTART
DTEND
EVENT_TIMEZONE
EVENT_END_TIMEZONE
DURATION
ALL_DAY
RRULE
RDATE
EXRULE
EXDATE
ORIGINAL_ID
ORIGINAL_SYNC_ID
ORIGINAL_INSTANCE_TIME
ORIGINAL_ALL_DAY
ACCESS_LEVEL
AVAILABILITY
GUESTS_CAN_MODIFY
GUESTS_CAN_INVITE_OTHERS
GUESTS_CAN_SEE_GUESTS
CUSTOM_APP_PACKAGE
CUSTOM_APP_URI
UID_2445
DIRTY
MUTATORS
_SYNC_ID
SYNC_DATA1
SYNC_DATA2
SYNC_DATA3
SYNC_DATA4
SYNC_DATA5
SYNC_DATA6
SYNC_DATA7
SYNC_DATA8
SYNC_DATA9
SYNC_DATA10
Summary
Inherited constants | |
---|---|
Properties | |
---|---|
static Uri! |
The content:// style URI for recurring event exceptions. |
static Uri! |
The content:// style URL for interacting with events. |
static Uri |
The content:// style URL for querying Events table in the managed profile. |
Properties
CONTENT_EXCEPTION_URI
static val CONTENT_EXCEPTION_URI: Uri!
The content:// style URI for recurring event exceptions. Insertions require an appended event ID. Deletion of exceptions requires both the original event ID and the exception event ID (see Uri.Builder#appendPath
).
CONTENT_URI
static val CONTENT_URI: Uri!
The content:// style URL for interacting with events. Appending an event id using ContentUris#withAppendedId(Uri, long)
will specify a single event.
ENTERPRISE_CONTENT_URI
static val ENTERPRISE_CONTENT_URI: Uri
The content:// style URL for querying Events table in the managed profile. Appending an event id using ContentUris#withAppendedId(Uri, long)
specifies a single event.
The following columns are allowed to be queried via this uri:
_ID
CALENDAR_ID
TITLE
EVENT_LOCATION
EVENT_COLOR
STATUS
DTSTART
DTEND
EVENT_TIMEZONE
EVENT_END_TIMEZONE
DURATION
ALL_DAY
AVAILABILITY
RRULE
RDATE
LAST_DATE
EXRULE
EXDATE
SELF_ATTENDEE_STATUS
DISPLAY_COLOR
CALENDAR_COLOR
VISIBLE
CALENDAR_TIME_ZONE
IS_PRIMARY
IllegalArgumentException
is thrown if there exists columns in the projection of the query to this uri that are not contained in the above list.
This uri returns an empty cursor if the calling user is not a parent profile of a managed profile, or the managed profile is disabled, or cross-profile calendar is disabled in Settings, or this uri is queried from a package that is not allowed by the profile owner of the managed profile via DevicePolicyManager#setCrossProfileCalendarPackages(ComponentName, Set)
.
Apps can register a android.database.ContentObserver
for this URI to listen to changes.