I hate reminders. Why do I have to set a time that it is due? Why can't I just set a date? I like to have a list of when my test/projects are due but I really don't care if my paper is due at 8 or 9, I know what time the class period. If they would add the ability to just set a date with no alert that would be fantastic.
Since reminders lacks that major functionality, I use GoTasks, I like it a lot and it syncs between my iPad and my iPhone.
For agenda I just use the stock calendar, I like that one a lot.