I have already found questions about this but for my case nothing is happening. Event added through Calendar Provider is not showing up on the Android Calendar App I try to follow this but obviously I missed something since it doesn't work
I want to add several events in the calendar. I'm already trying with 1 but nothing happens
I am currently under android 10
public void addEventToCalendar(){
long calID = 3;
long startMillis = 0;
long endMillis = 0;
Calendar beginTime = Calendar.getInstance();
beginTime.set(2021, 10, 22, 15, 30);
startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(2021, 10, 22, 16, 45);
endMillis = endTime.getTimeInMillis();
ContentResolver cr = getActivity().getContentResolver();
ContentValues values = new ContentValues();
values.put(CalendarContract.Events.DTSTART, startMillis);
values.put(CalendarContract.Events.DTEND, endMillis);
values.put(CalendarContract.Events.TITLE, "Hackathon");
values.put(CalendarContract.Events.DESCRIPTION, "do some code");
values.put(CalendarContract.Events.CALENDAR_ID, calID);
values.put(CalendarContract.Events.EVENT_TIMEZONE, TimeZone.getDefault().getID());
Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);
long eventID = Long.parseLong(uri.getLastPathSegment());
}
I just put it on a class, I'm using a CSV file where I just add my differents events, it's working for me on differents devices android and tested on Oreo, Pie and Android 10
public class EventCalendar {
String startEvent;
String endEvent;
String title;
String description;
public String getStartEvent() {
return startEvent;
}
public void setStartEvent(String startEvent) {
this.startEvent = startEvent;
}
public String getEndEvent() {
return endEvent;
}
public void setEndEvent(String endEvent) {
this.endEvent = endEvent;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public void addEventCalendar(Context myContext, InputStream is) {
List<EventCalendar> mesEvent = new ArrayList<>();
BufferedReader reader = new BufferedReader(
new InputStreamReader(is, StandardCharsets.UTF_8));
String line;
try {
reader.readLine();
while ((line = reader.readLine()) != null) {
Log.d("MyEventCalendar", "Line : " + line);
String[] tokens = line.split(",");
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date startDate;
Date endDate;
startDate = sdf.parse(tokens[0]);
endDate = sdf.parse(tokens[1]);
EventCalendar myEventCalendar = new EventCalendar();
myEventCalendar.setTitle(tokens[2]);
if (tokens.length >= 4){
myEventCalendar.setDescription(tokens[3]);
}else {
myEventCalendar.setDescription(null);
}
myEventCalendar.setStartEvent(String.valueOf(startDate.getTime()));
myEventCalendar.setEndEvent(String.valueOf(endDate.getTime()));
mesEvent.add(myEventCalendar);
ContentResolver cr = Objects.requireNonNull(myContext.getContentResolver());
ContentValues values = new ContentValues();
values.put(CalendarContract.Events.DTSTART, myEventCalendar.getStartEvent());
values.put(CalendarContract.Events.DTEND, myEventCalendar.getEndEvent());
values.put(CalendarContract.Events.TITLE, myEventCalendar.getTitle());
values.put(CalendarContract.Events.DESCRIPTION, myEventCalendar.getDescription());
values.put(CalendarContract.Events.CALENDAR_ID, 1);
values.put(CalendarContract.Events.EVENT_LOCATION,0);
values.put(CalendarContract.Events.EVENT_TIMEZONE, TimeZone.getDefault().getID());
Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);
}
} catch (IOException | ParseException e) {
Log.i("Tag", "Insert failed");
e.printStackTrace();
}
}