expo-calendar 56.0.6 → 56.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/calendar/next/AddEventWithFormContract.kt +66 -0
  4. package/android/src/main/java/expo/modules/calendar/next/CalendarNextModule.kt +16 -5
  5. package/android/src/main/java/expo/modules/calendar/next/mappers/EventMapper.kt +3 -3
  6. package/android/src/main/java/expo/modules/calendar/next/records/AddEventWithFormOptionsRecord.kt +20 -0
  7. package/build/Calendar.d.ts +80 -1056
  8. package/build/Calendar.d.ts.map +1 -1
  9. package/build/Calendar.js +180 -841
  10. package/build/Calendar.js.map +1 -1
  11. package/build/ExpoCalendar.d.ts +28 -1
  12. package/build/ExpoCalendar.d.ts.map +1 -1
  13. package/build/ExpoCalendar.js +6 -2
  14. package/build/ExpoCalendar.js.map +1 -1
  15. package/build/{next/ExpoCalendar.types.d.ts → ExpoCalendar.types.d.ts} +2 -3
  16. package/build/ExpoCalendar.types.d.ts.map +1 -0
  17. package/build/{next/ExpoCalendar.types.js.map → ExpoCalendar.types.js.map} +1 -1
  18. package/build/ExpoCalendar.web.d.ts +31 -4
  19. package/build/ExpoCalendar.web.d.ts.map +1 -1
  20. package/build/ExpoCalendar.web.js +55 -4
  21. package/build/ExpoCalendar.web.js.map +1 -1
  22. package/build/ExpoGoCalendarNextStub.d.ts.map +1 -0
  23. package/build/ExpoGoCalendarNextStub.js.map +1 -0
  24. package/build/index.d.ts +2 -0
  25. package/build/index.d.ts.map +1 -0
  26. package/build/index.js +2 -0
  27. package/build/index.js.map +1 -0
  28. package/build/legacy/Calendar.d.ts +1081 -0
  29. package/build/legacy/Calendar.d.ts.map +1 -0
  30. package/build/legacy/Calendar.js +892 -0
  31. package/build/legacy/Calendar.js.map +1 -0
  32. package/build/legacy/ExpoCalendar.d.ts +3 -0
  33. package/build/legacy/ExpoCalendar.d.ts.map +1 -0
  34. package/build/legacy/ExpoCalendar.js +3 -0
  35. package/build/legacy/ExpoCalendar.js.map +1 -0
  36. package/build/legacy/ExpoCalendar.web.d.ts +9 -0
  37. package/build/legacy/ExpoCalendar.web.d.ts.map +1 -0
  38. package/build/legacy/ExpoCalendar.web.js +22 -0
  39. package/build/legacy/ExpoCalendar.web.js.map +1 -0
  40. package/build/legacy/index.d.ts +2 -0
  41. package/build/legacy/index.d.ts.map +1 -0
  42. package/build/legacy/index.js +2 -0
  43. package/build/legacy/index.js.map +1 -0
  44. package/build/legacyWarnings.d.ts +126 -0
  45. package/build/legacyWarnings.d.ts.map +1 -0
  46. package/build/legacyWarnings.js +192 -0
  47. package/build/legacyWarnings.js.map +1 -0
  48. package/build/next/index.d.ts +1 -1
  49. package/build/next/index.d.ts.map +1 -1
  50. package/build/next/index.js +1 -1
  51. package/build/next/index.js.map +1 -1
  52. package/build/{next/types → types}/RecurrenceRule.d.ts +1 -1
  53. package/build/types/RecurrenceRule.d.ts.map +1 -0
  54. package/build/types/RecurrenceRule.js.map +1 -0
  55. package/expo-module.config.json +1 -1
  56. package/legacy.ts +1 -0
  57. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/{56.0.6/expo.modules.calendar-56.0.6-sources.jar → 56.0.8/expo.modules.calendar-56.0.8-sources.jar} +0 -0
  58. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8-sources.jar.md5 +1 -0
  59. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8-sources.jar.sha1 +1 -0
  60. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8-sources.jar.sha256 +1 -0
  61. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8-sources.jar.sha512 +1 -0
  62. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8.aar +0 -0
  63. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8.aar.md5 +1 -0
  64. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8.aar.sha1 +1 -0
  65. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8.aar.sha256 +1 -0
  66. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8.aar.sha512 +1 -0
  67. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/{56.0.6/expo.modules.calendar-56.0.6.module → 56.0.8/expo.modules.calendar-56.0.8.module} +22 -22
  68. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8.module.md5 +1 -0
  69. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8.module.sha1 +1 -0
  70. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8.module.sha256 +1 -0
  71. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8.module.sha512 +1 -0
  72. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/{56.0.6/expo.modules.calendar-56.0.6.pom → 56.0.8/expo.modules.calendar-56.0.8.pom} +1 -1
  73. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8.pom.md5 +1 -0
  74. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8.pom.sha1 +1 -0
  75. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8.pom.sha256 +1 -0
  76. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.8/expo.modules.calendar-56.0.8.pom.sha512 +1 -0
  77. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/maven-metadata.xml +4 -4
  78. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/maven-metadata.xml.md5 +1 -1
  79. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/maven-metadata.xml.sha1 +1 -1
  80. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/maven-metadata.xml.sha256 +1 -1
  81. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/maven-metadata.xml.sha512 +1 -1
  82. package/next.ts +1 -1
  83. package/package.json +23 -5
  84. package/plugin/index.d.ts +1 -0
  85. package/plugin/index.js +1 -1
  86. package/src/Calendar.ts +273 -1570
  87. package/src/ExpoCalendar.ts +48 -2
  88. package/src/{next/ExpoCalendar.types.ts → ExpoCalendar.types.ts} +2 -3
  89. package/src/ExpoCalendar.web.ts +79 -4
  90. package/src/index.ts +1 -0
  91. package/src/legacy/Calendar.ts +1648 -0
  92. package/src/legacy/ExpoCalendar.ts +3 -0
  93. package/src/legacy/ExpoCalendar.web.ts +23 -0
  94. package/src/legacy/index.ts +1 -0
  95. package/src/legacyWarnings.ts +278 -0
  96. package/src/next/index.ts +1 -1
  97. package/src/{next/types → types}/RecurrenceRule.ts +1 -1
  98. package/build/next/Calendar.d.ts +0 -137
  99. package/build/next/Calendar.d.ts.map +0 -1
  100. package/build/next/Calendar.js +0 -263
  101. package/build/next/Calendar.js.map +0 -1
  102. package/build/next/ExpoCalendar.d.ts +0 -30
  103. package/build/next/ExpoCalendar.d.ts.map +0 -1
  104. package/build/next/ExpoCalendar.js +0 -7
  105. package/build/next/ExpoCalendar.js.map +0 -1
  106. package/build/next/ExpoCalendar.types.d.ts.map +0 -1
  107. package/build/next/ExpoCalendar.web.d.ts +0 -36
  108. package/build/next/ExpoCalendar.web.d.ts.map +0 -1
  109. package/build/next/ExpoCalendar.web.js +0 -73
  110. package/build/next/ExpoCalendar.web.js.map +0 -1
  111. package/build/next/ExpoGoCalendarNextStub.d.ts.map +0 -1
  112. package/build/next/ExpoGoCalendarNextStub.js.map +0 -1
  113. package/build/next/types/RecurrenceRule.d.ts.map +0 -1
  114. package/build/next/types/RecurrenceRule.js.map +0 -1
  115. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6-sources.jar.md5 +0 -1
  116. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6-sources.jar.sha1 +0 -1
  117. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6-sources.jar.sha256 +0 -1
  118. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6-sources.jar.sha512 +0 -1
  119. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6.aar +0 -0
  120. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6.aar.md5 +0 -1
  121. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6.aar.sha1 +0 -1
  122. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6.aar.sha256 +0 -1
  123. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6.aar.sha512 +0 -1
  124. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6.module.md5 +0 -1
  125. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6.module.sha1 +0 -1
  126. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6.module.sha256 +0 -1
  127. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6.module.sha512 +0 -1
  128. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6.pom.md5 +0 -1
  129. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6.pom.sha1 +0 -1
  130. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6.pom.sha256 +0 -1
  131. package/local-maven-repo/host/exp/exponent/expo.modules.calendar/56.0.6/expo.modules.calendar-56.0.6.pom.sha512 +0 -1
  132. package/plugin/tsconfig.tsbuildinfo +0 -1
  133. package/src/next/Calendar.ts +0 -384
  134. package/src/next/ExpoCalendar.ts +0 -49
  135. package/src/next/ExpoCalendar.web.ts +0 -98
  136. /package/build/{next/ExpoCalendar.types.js → ExpoCalendar.types.js} +0 -0
  137. /package/build/{next/ExpoGoCalendarNextStub.d.ts → ExpoGoCalendarNextStub.d.ts} +0 -0
  138. /package/build/{next/ExpoGoCalendarNextStub.js → ExpoGoCalendarNextStub.js} +0 -0
  139. /package/build/{next/types → types}/RecurrenceRule.js +0 -0
  140. /package/src/{next/ExpoGoCalendarNextStub.ts → ExpoGoCalendarNextStub.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -10,6 +10,26 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 56.0.8 — 2026-05-21
14
+
15
+ ### 🐛 Bug fixes
16
+
17
+ - Fix an ES module import error in the typed config plugin. ([#46089](https://github.com/expo/expo/pull/46089) by [@zoontek](https://github.com/zoontek))
18
+
19
+ ## 56.0.7 — 2026-05-20
20
+
21
+ ### 🛠 Breaking changes
22
+
23
+ - Promote the object-oriented Calendar API to the root `expo-calendar` import and move the legacy API to `expo-calendar/legacy`. ([#46030](https://github.com/expo/expo/pull/46030) by [@Wenszel](https://github.com/Wenszel))
24
+
25
+ ### 🎉 New features
26
+
27
+ - [Android][next] Add `calendar.addEventWithForm()` ([#46004](https://github.com/expo/expo/pull/46004) by [@Wenszel](https://github.com/Wenszel))
28
+
29
+ ### 🐛 Bug fixes
30
+
31
+ - [next] Remove legacy exports ([#45739](https://github.com/expo/expo/pull/45739) by [@Wenszel](https://github.com/Wenszel))
32
+
13
33
  ## 56.0.6 — 2026-05-19
14
34
 
15
35
  ### 🐛 Bug fixes
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'host.exp.exponent'
7
- version = '56.0.6'
7
+ version = '56.0.8'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.calendar"
11
11
  defaultConfig {
12
12
  versionCode 17
13
- versionName '56.0.6'
13
+ versionName '56.0.8'
14
14
  }
15
15
  }
16
16
 
@@ -0,0 +1,66 @@
1
+ package expo.modules.calendar.next
2
+
3
+ import android.content.Context
4
+ import android.content.Intent
5
+ import android.content.Intent.ACTION_INSERT
6
+ import android.provider.CalendarContract
7
+ import android.provider.CalendarContract.EXTRA_EVENT_ALL_DAY
8
+ import android.provider.CalendarContract.EXTRA_EVENT_BEGIN_TIME
9
+ import android.provider.CalendarContract.EXTRA_EVENT_END_TIME
10
+ import expo.modules.calendar.CalendarUtils
11
+ import expo.modules.calendar.dialogs.CreateEventIntentResult
12
+ import expo.modules.calendar.next.mappers.EventMapper
13
+ import expo.modules.calendar.next.records.AddEventWithFormOptionsRecord
14
+ import expo.modules.kotlin.activityresult.AppContextActivityResultContract
15
+ import java.io.Serializable
16
+
17
+ internal class AddEventWithFormContract(private val eventMapper: EventMapper) :
18
+ AppContextActivityResultContract<AddEventWithFormContract.Input, CreateEventIntentResult> {
19
+ data class Input(
20
+ val calendarId: String,
21
+ val options: AddEventWithFormOptionsRecord
22
+ ) : Serializable
23
+
24
+ override fun createIntent(context: Context, input: Input): Intent =
25
+ Intent(ACTION_INSERT)
26
+ .setData(CalendarContract.Events.CONTENT_URI)
27
+ .apply {
28
+ input.calendarId.toLongOrNull()?.let {
29
+ putExtra(CalendarContract.Events.CALENDAR_ID, it)
30
+ }
31
+ input.options.title?.let { putExtra(CalendarContract.Events.TITLE, it) }
32
+ input.options.allDay?.let { putExtra(EXTRA_EVENT_ALL_DAY, it) }
33
+ input.options.notes?.let { putExtra(CalendarContract.Events.DESCRIPTION, it) }
34
+ input.options.location?.let { putExtra(CalendarContract.Events.EVENT_LOCATION, it) }
35
+ input.options.startDate?.let {
36
+ putExtra(EXTRA_EVENT_BEGIN_TIME, getTimestamp(it))
37
+ }
38
+ input.options.endDate?.let {
39
+ putExtra(EXTRA_EVENT_END_TIME, getTimestamp(it))
40
+ }
41
+ input.options.timeZone?.let {
42
+ putExtra(CalendarContract.Events.EVENT_TIMEZONE, it)
43
+ }
44
+ input.options.availability?.let {
45
+ putExtra(CalendarContract.Events.AVAILABILITY, with(eventMapper) { it.toDomain().value })
46
+ }
47
+ input.options.recurrenceRule?.let {
48
+ with(eventMapper) {
49
+ it.toDomain().toRuleString()
50
+ }
51
+ }?.let {
52
+ putExtra(CalendarContract.Events.RRULE, it)
53
+ }
54
+ input.options.startNewActivityTask.takeIf { it }?.let {
55
+ addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
56
+ }
57
+ }
58
+
59
+ private fun getTimestamp(value: String): Long {
60
+ val maybeTimestamp = CalendarUtils.sdf.parse(value)?.time
61
+ return maybeTimestamp ?: throw IllegalArgumentException("Invalid date format")
62
+ }
63
+
64
+ override fun parseResult(input: Input, resultCode: Int, intent: Intent?): CreateEventIntentResult =
65
+ CreateEventIntentResult()
66
+ }
@@ -1,9 +1,7 @@
1
1
  package expo.modules.calendar.next
2
2
 
3
3
  import android.Manifest
4
- import expo.modules.calendar.dialogs.CreateEventContract
5
4
  import expo.modules.calendar.dialogs.CreateEventIntentResult
6
- import expo.modules.calendar.dialogs.CreatedEventOptions
7
5
  import expo.modules.calendar.dialogs.ViewEventContract
8
6
  import expo.modules.calendar.dialogs.ViewEventIntentResult
9
7
  import expo.modules.calendar.dialogs.ViewedEventOptions
@@ -13,8 +11,10 @@ import expo.modules.calendar.next.domain.repositories.instance.InstanceRepositor
13
11
  import expo.modules.calendar.next.domain.repositories.attendee.AttendeeRepository
14
12
  import expo.modules.calendar.next.domain.repositories.reminder.ReminderRepository
15
13
  import expo.modules.calendar.next.domain.repositories.calendar.CalendarRepository
14
+ import expo.modules.calendar.next.exceptions.CalendarNotFoundException
16
15
  import expo.modules.calendar.next.mappers.AttendeeMapper
17
16
  import expo.modules.calendar.next.records.AttendeeRecord
17
+ import expo.modules.calendar.next.records.AddEventWithFormOptionsRecord
18
18
  import expo.modules.calendar.next.mappers.CalendarMapper
19
19
  import expo.modules.calendar.next.mappers.EventMapper
20
20
  import expo.modules.calendar.next.mappers.ReminderMapper
@@ -34,7 +34,8 @@ import expo.modules.kotlin.modules.Module
34
34
  import expo.modules.kotlin.modules.ModuleDefinition
35
35
 
36
36
  class CalendarNextModule : Module() {
37
- private lateinit var createEventLauncher: AppContextActivityResultLauncher<CreatedEventOptions, CreateEventIntentResult>
37
+ private lateinit var addEventWithFormLauncher:
38
+ AppContextActivityResultLauncher<AddEventWithFormContract.Input, CreateEventIntentResult>
38
39
  private lateinit var viewEventLauncher: AppContextActivityResultLauncher<ViewedEventOptions, ViewEventIntentResult>
39
40
 
40
41
  private val context
@@ -99,8 +100,8 @@ class CalendarNextModule : Module() {
99
100
  Name("CalendarNext")
100
101
 
101
102
  RegisterActivityContracts {
102
- createEventLauncher = registerForActivityResult(
103
- CreateEventContract()
103
+ addEventWithFormLauncher = registerForActivityResult(
104
+ AddEventWithFormContract(eventMapper)
104
105
  )
105
106
  viewEventLauncher = registerForActivityResult(
106
107
  ViewEventContract()
@@ -220,6 +221,16 @@ class CalendarNextModule : Module() {
220
221
  expoCalendar.createEvent(record)
221
222
  }
222
223
 
224
+ AsyncFunction("addEventWithForm") Coroutine { expoCalendar: ExpoCalendar, options: AddEventWithFormOptionsRecord? ->
225
+ val result = addEventWithFormLauncher.launch(
226
+ AddEventWithFormContract.Input(
227
+ calendarId = expoCalendar.id ?: throw CalendarNotFoundException("Calendar ID is null"),
228
+ options = options ?: AddEventWithFormOptionsRecord()
229
+ )
230
+ )
231
+ return@Coroutine result
232
+ }
233
+
223
234
  AsyncFunction("update") Coroutine { expoCalendar: ExpoCalendar, updateCalendarInput: CalendarUpdateRecord ->
224
235
  permissionsDelegate.requireSystemPermissions(true)
225
236
  expoCalendar.update(updateCalendarInput)
@@ -52,20 +52,20 @@ class EventMapper {
52
52
  rrule = eventRecord.recurrenceRule?.toDomain()
53
53
  )
54
54
 
55
- private fun EventAvailability.toDomain() = when (this) {
55
+ fun EventAvailability.toDomain() = when (this) {
56
56
  EventAvailability.BUSY -> Availability.BUSY
57
57
  EventAvailability.FREE -> Availability.FREE
58
58
  EventAvailability.TENTATIVE -> Availability.TENTATIVE
59
59
  }
60
60
 
61
- private fun EventAccessLevel.toDomain() = when (this) {
61
+ fun EventAccessLevel.toDomain() = when (this) {
62
62
  EventAccessLevel.PUBLIC -> AccessLevel.PUBLIC
63
63
  EventAccessLevel.PRIVATE -> AccessLevel.PRIVATE
64
64
  EventAccessLevel.CONFIDENTIAL -> AccessLevel.CONFIDENTIAL
65
65
  EventAccessLevel.DEFAULT -> AccessLevel.DEFAULT
66
66
  }
67
67
 
68
- private fun RecurrenceRuleRecord.toDomain() = RecurrenceRule(
68
+ fun RecurrenceRuleRecord.toDomain() = RecurrenceRule(
69
69
  frequency = frequency
70
70
  ?: throw IllegalArgumentException("Frequency is required for recurrence rule"),
71
71
  interval = interval,
@@ -0,0 +1,20 @@
1
+ package expo.modules.calendar.next.records
2
+
3
+ import expo.modules.kotlin.records.Field
4
+ import expo.modules.kotlin.records.Record
5
+ import expo.modules.kotlin.types.OptimizedRecord
6
+ import java.io.Serializable
7
+
8
+ @OptimizedRecord
9
+ data class AddEventWithFormOptionsRecord(
10
+ @Field val title: String? = null,
11
+ @Field val location: String? = null,
12
+ @Field val notes: String? = null,
13
+ @Field val timeZone: String? = null,
14
+ @Field val availability: EventAvailability? = null,
15
+ @Field val allDay: Boolean? = null,
16
+ @Field val startDate: String? = null,
17
+ @Field val endDate: String? = null,
18
+ @Field val recurrenceRule: RecurrenceRuleRecord? = null,
19
+ @Field val startNewActivityTask: Boolean = true
20
+ ) : Record, Serializable