Protected User Data: Calendar Entries

Adversaries may utilize standard operating system APIs to gather calendar entry data. On Android, this can be accomplished using the Calendar Content Provider. On iOS, this can be accomplished using the EventKit framework.

If the device has been jailbroken or rooted, an adversary may be able to access Calendar Entries without the user’s knowledge or approval.

ID: T1636.001
Sub-technique of:  T1636
ⓘ
Tactic: Collection
ⓘ
Platforms: Android, iOS
ⓘ
MTC ID: APP-13
Version: 1.1
Created: 01 April 2022
Last Modified: 24 October 2025

Procedure Examples

ID Name Description
S0405 Exodus

Exodus Two can exfiltrate calendar events.[1]

S0408 FlexiSpy

FlexiSpy can collect the device calendars.[2]

S0407 Monokle

Monokle can retrieve calendar event information including the event name, when and where it is taking place, and the description.[3]

S0316 Pegasus for Android

Pegasus for Android accesses calendar entries.[4]

S0328 Stealth Mango

Stealth Mango uploads calendar events and reminders.[5]

S1082 Sunbird

Sunbird can exfiltrate calendar information.[6]

Mitigations

ID Mitigation Description
M1011 User Guidance

Calendar access is an uncommonly needed permission, so users should be instructed to use extra scrutiny when granting access to their device calendar.

Detection Strategy

ID Name Analytic ID Analytic Description
DET0674 Detection of Calendar Entries AN1774

For Android, detect Calendar Entries by correlating analyst-visible device/network evidence and management state; use streaming or batched telemetry only where the documented collector is deployed. Correlate API Calls via Application Vetting / Instrumented Dynamic Analysis [Dynamic API/runtime trace: ContentResolver.query(CalendarContract) with query_count > $CalendarQueryThreshold$ by app NOT IN $ApprovedCalendarApps$]; Network Traffic Flow via Android Enterprise Network Logging / Enterprise VPN [DevicePolicyManager.retrieveNetworkLogs(): DnsEvent / ConnectEvent; VPN flow metadata]; Permissions Request via Android Enterprise DPC / Application Vetting [DevicePolicyManager.getPermissionGrantState(); PackageManager manifest/requested-permission review]. Alert on a sequence or state change inconsistent with the device/app baseline, approved management policy, or expected user workflow; do not infer unobserved API calls, file/process activity, or payload content from management state alone.

AN1775

For iOS, detect Calendar Entries by correlating analyst-visible device/network evidence and management state; use streaming or batched telemetry only where the documented collector is deployed. Correlate API Calls via Application Vetting / Instrumented Dynamic Analysis [Dynamic API/runtime trace: EKEventStore.fetchEvents() or enumerateEvents() with date_range > $CalendarDateRangeThreshold$ days by app NOT IN $ApprovedCalendarApps$]; Network Traffic Flow via Apple Network Extension / Enterprise VPN [NEFilterFlow / per-app VPN / secure-web-gateway flow metadata]; Permissions Request via Application Vetting [Code-signing entitlements and Info.plist privacy usage-description keys]. Alert on a sequence or state change inconsistent with the device/app baseline, approved management policy, or expected user workflow; do not infer unobserved API calls, file/process activity, or payload content from management state alone.

References