Description:
The react-native-add-calendar-event component allows you to start an activity (Android) or show a modal window (iOS) for adding events to calendar. Through a promise, you can find out if a new event was added and get its id.
Installation:
# Yarn $ yarn add react-native-add-calendar-event # NPM $ npm install react-native-add-calendar-event --save
Sample React Native App with adding events to calendar:
import React, { Component } from 'react';
import { StyleSheet, Text, View, Button } from 'react-native';
import * as AddCalendarEvent from 'react-native-add-calendar-event';
import moment from 'moment';
const utcDateToString = (momentInUTC: moment): string => {
let s = moment.utc(momentInUTC).format('YYYY-MM-DDTHH:mm:ss.SSS[Z]');
// console.warn(s);
return s;
};
export default class EventDemo extends Component {
render() {
const eventTitle = 'Lunch';
const nowUTC = moment.utc();
return (
<View style={styles.container}>
<Text style={styles.welcome}>Event title: {eventTitle}</Text>
<Text>
date:{' '}
{moment
.utc(nowUTC)
.local()
.format('lll')}
</Text>
<Button
onPress={() => {
EventDemo.addToCalendar(eventTitle, nowUTC);
}}
title="Add to calendar"
/>
</View>
);
}
static addToCalendar = (title: string, startDateUTC: moment) => {
const eventConfig = {
title,
startDate: utcDateToString(startDateUTC),
endDate: utcDateToString(moment.utc(startDateUTC).add(1, 'hours')),
};
AddCalendarEvent.presentNewCalendarEventDialog(eventConfig)
.then(eventId => {
//handle success (receives event id) or dismissing the modal (receives false)
if (eventId) {
console.warn(eventId);
} else {
console.warn('dismissed');
}
})
.catch((error: string) => {
// handle error such as when user rejected permissions
console.warn(error);
});
};
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
});





