Для настройки будильника используйте Alarm-manager класс. Вы можете установить будильник, используя ожидающие намерения и с помощью календаря вы можете установить время. Проверьте следующий код, в этом AlarmReceiever есть широковещательный приемник, который получает намерение от ожидающего намерения в определенное время, которое вы можете установить в методе set как второй параметр.
Intent alaram=new Intent(FirstActivity.this,AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(FirstActivity.this, 0, alaram,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),pendingIntent);
//cal.setTimeInMillis(System.currentTimeMillis());