33import android .content .ActivityNotFoundException ;
44import android .content .Intent ;
55import android .provider .CalendarContract ;
6+ import android .icu .util .TimeZone ;
67
78import com .facebook .react .bridge .Promise ;
89import com .facebook .react .bridge .ReactApplicationContext ;
@@ -22,14 +23,22 @@ public String getName() {
2223 return "CalendarManager" ;
2324 }
2425
26+ private TimeZone getTimeZone (ReadableMap eventDetails ) {
27+ return eventDetails .hasKey ("timeZone" ) ? TimeZone .getTimeZone (eventDetails .getString ("timeZone" )) : TimeZone .getDefault ();
28+ }
29+
2530 @ ReactMethod
2631 public void addEvent (ReadableMap eventDetails , Promise promise ) {
32+ final Double startTime = eventDetails .getDouble ("startTime" );
33+ final Double endTime = eventDetails .getDouble ("endTime" );
34+
2735 final Intent intent = new Intent (Intent .ACTION_INSERT )
2836 .setData (CalendarContract .Events .CONTENT_URI )
29- .putExtra (CalendarContract .EXTRA_EVENT_BEGIN_TIME , eventDetails . getDouble ( " startTime" ) .longValue ())
30- .putExtra (CalendarContract .EXTRA_EVENT_END_TIME , eventDetails . getDouble ( " endTime" ) .longValue ())
37+ .putExtra (CalendarContract .EXTRA_EVENT_BEGIN_TIME , startTime .longValue ())
38+ .putExtra (CalendarContract .EXTRA_EVENT_END_TIME , endTime .longValue ())
3139 .putExtra (CalendarContract .Events .TITLE , eventDetails .getString ("name" ))
32- .putExtra (CalendarContract .Events .EVENT_LOCATION , eventDetails .getString ("location" ));
40+ .putExtra (CalendarContract .Events .EVENT_LOCATION , eventDetails .getString ("location" ))
41+ .putExtra (CalendarContract .Events .EVENT_TIMEZONE , this .getTimeZone (eventDetails ).getID ());
3342
3443 try {
3544 getCurrentActivity ().startActivity (intent );
0 commit comments