Please provide the following:
- SDK Version:46.0.16
- Platforms:Android
- Add the appropriate “Tag” based on what Expo library you have a question on.
I created a new event on the calendar.But my device doesn’t show notification when to startDate
import { StatusBar } from "expo-status-bar";
import React, { useState, useEffect } from "react";
import { StyleSheet, Text, View, TextInput, Button, Alert } from "react-native";
import * as Calendar from "expo-calendar";
import moment from "moment";
async function getDefaultCalendarSource() {
const calendars = await Calendar.getCalendarsAsync(
Calendar.EntityTypes.EVENT
);
const defaultCalendars = calendars.filter(
(each) => each.source.name === "Default"
);
return defaultCalendars.length
? defaultCalendars[0].source
: calendars[0].source;
}
async function createCalendar() {
const defaultCalendarSource =
Platform.OS === "ios"
? await getDefaultCalendarSource()
: { isLocalAccount: true, name: "Expo Calendar" };
const newCalendarID = await Calendar.createCalendarAsync({
title: "Expo Calendar",
color: "blue",
entityType: Calendar.EntityTypes.EVENT,
sourceId: defaultCalendarSource.id,
source: defaultCalendarSource,
name: "internalCalendarName",
ownerAccount: "personal",
accessLevel: Calendar.CalendarAccessLevel.OWNER,
});
console.log(`Your new calendar ID is: ${newCalendarID}`);
return newCalendarID;
}
export default function App() {
const getAppointementDate = (date) =>
moment(date, "YYYY-MM-DD'T'HH:mm:ss.sssZ").toDate();
useEffect(() => {
(async () => {
const { status } = await Calendar.requestCalendarPermissionsAsync();
if (status === "granted") {
const calendars = await Calendar.getCalendarsAsync(
Calendar.EntityTypes.EVENT
);
console.log("Here are all your calendars:");
console.log({ calendars });
}
})();
}, []);
const addNewEvent = async () => {
try {
const calendarId = await createCalendar();
const res = await Calendar.createEventAsync(calendarId, {
endDate: getAppointementDate("2022-11-04T14:00:00.000Z"),
startDate: getAppointementDate("2022-11-04T13:13:00.000Z"),
title: "Hi",
alarms: [{ relativeOffset: -60 }],
});
Alert.alert("Event Created!");
} catch (e) {
console.log(e);
}
};
return (
<View style={styles.container}>
<StatusBar style="auto" />
<Button title={"Add to calendar"} onPress={addNewEvent} />
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#fff",
alignItems: "center",
justifyContent: "center",
},
});