Agregar evento semanal al calendario

Me gustaría añadir un evento a Calendar nativo, aquí quiero repetir este evento todos los Tuesday hasta el 31 December 2015 :

 btnWeekly.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Calendar calendar = Calendar.getInstance(); Intent intent = new Intent(Intent.ACTION_INSERT) .setData(Events.CONTENT_URI) .setType("vnd.android.cursor.item/event") .putExtra(Events.TITLE, "Tuesdays") .putExtra(Events.DESCRIPTION, "Tuesday Specials") .putExtra(Events.EVENT_LOCATION, "Lixious Bench") .putExtra(Events.RRULE, "FREQ=WEEKLY;BYDAY=Tu;UNTIL=20151231") .putExtra(Events.DTSTART, calendar.getTimeInMillis()) .putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, true) .putExtra(CalendarContract.Events.HAS_ALARM, 1) .putExtra(Events.AVAILABILITY, Events.AVAILABILITY_BUSY); startActivity(intent); } } 

Problema: En Calendario muestra este evento para cada Thursday , mientras que he utilizado " tu " en mi código

Y una cosa más que si yo también quiero dar tiempo de duración para este evento como: from 6:00 pm to 9:00 pm solamente.

3 Solutions collect form web for “Agregar evento semanal al calendario”

Dijiste que se repetía el jueves, pero lo que conseguí fue un día de inicio del jueves con una repetición cada martes. Así que estoy bastante seguro de que la parte RRULE es correcta.

Creo que todo lo que tienes que hacer es establecer las horas reales de inicio y fin con Calendar para obtener los milisegundos correctos, luego el usuario "beginTime" en lugar de "dtstart" y "endTime" en lugar de "dtend".

 @Override public void onClick(View v) { // If you want the start times to show up, you have to set them Calendar calendar = Calendar.getInstance(); // Here we set a start time of Tuesday the 17th, 6pm calendar.set(2015, Calendar.MARCH, 17, 18, 0, 0); calendar.setTimeZone(TimeZone.getDefault()); long start = calendar.getTimeInMillis(); // add three hours in milliseconds to get end time of 9pm long end = calendar.getTimeInMillis() + 3 * 60 * 60 * 1000; Intent intent = new Intent(Intent.ACTION_INSERT) .setData(Events.CONTENT_URI) .setType("vnd.android.cursor.item/event") .putExtra(Events.TITLE, "Tuesdays") .putExtra(Events.DESCRIPTION, "Tuesday Specials") .putExtra(Events.EVENT_LOCATION, "Lixious Bench") .putExtra(Events.RRULE, "FREQ=WEEKLY;BYDAY=TU;UNTIL=20150428") // to specify start time use "beginTime" instead of "dtstart" //.putExtra(Events.DTSTART, calendar.getTimeInMillis()) .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, start) .putExtra(CalendarContract.EXTRA_EVENT_END_TIME, end) // if you want to go from 6pm to 9pm, don't specify all day //.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, true) .putExtra(CalendarContract.Events.HAS_ALARM, 1) .putExtra(Events.AVAILABILITY, Events.AVAILABILITY_BUSY); startActivity(intent); } 

Para el martes las Iniciales tienen que ser todas las capitales, es decir. TU

 .putExtra(CalendarContract.Events.RRULE, "FREQ=WEEKLY;BYDAY=TU;UNTIL=20151231") 

Para dar tiempo de duración para el evento que necesita agregar

 .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME,getMillis(begintime)) .putExtra(CalendarContract.EXTRA_EVENT_END_TIME, getMillis(endtime)) 

Puede obtener más información acerca de la regla de recurrencia aquí y aquí

Aquí te estoy compartiendo un simple código de esperanza que te ayudará o te guiará:

 Intent intentAlarm = new Intent(getActivity(), AlarmReceiver.class); intentAlarm.putExtra("name", data.getName()); intentAlarm.putExtra("desc", data.getDescription()); intentAlarm.setData(Uri.parse("custom://" + data.getId())); intentAlarm.setAction(String.valueOf(data.getId())); // Create the AlarmManager AlarmManager alarmManager = (AlarmManager) getActivity() .getSystemService(Context.ALARM_SERVICE); // Set the alarm for a particular time alarmManager.set(AlarmManager.RTC_WAKEUP, Calendar_Object .getTimeInMillis(), PendingIntent.getBroadcast( getActivity(), Integer.parseInt(data.getId()), intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT)); 
  • Problema en la generación de eventos de calendario utilizando zxing
  • ¿Cuál es el rango de HOUR_OF_DAY?
  • Cómo eliminar o editar el evento de G-calendario de mi aplicación Android?
  • Android: selector de fechas del calendario popdown
  • ¿Cómo obtener todos los eventos del calendario?
  • Cambio de color de un solo día en calendarview, android
  • Crear un evento repetitivo con recordatorio hasta el día específico sin Intent en Android?
  • Android: Fecha (año, mes, día)
  • Cómo agregar por programación suscripciones de calendario en Android?
  • Obtener la fecha actual como advertencia de cadena obsoleta toGmtString () issue
  • El estilo de Holo de DatePickerDialog falló en Android 7 Turrón
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.