What I need or require:
- An AJAX-based iCal file parser/viewer that offers a weekly and a monthly view.
- Event descriptions should appear in an accordion-like manner when an event description title is clicked.
- The weekly/monthly viewers should be able be able to go back and forth in time easily.
- To be clear: We just looking for an iCal file parser/viewer and not a full-fledged calendaring program. We've already built that application, and just need something to display the iCal feeds that it produces on our website(s).
Other context/requirements that providers will need to know:
- There will be multiple dynamic iCal feeds to be read by the viewer, so there should be a way to define in a runtime fashion the calendar feed to be parsed/viewed.
- Ideally, the viewer should incorporate some sort of caching mechanism to keep from loading an entire iCal file each time the page is loaded.
- The monthly view does not have to be anything complicated (like a dynamic table or what have you). It could simply be a dynamic list of events with descriptions which clearly delineates weeks, and which can be moved forward and back a month at a time.
- An alternative for the weekly/monthly format would be a scrolling agenda list that populates dynamically in the way that Google Calendar's "agenda view" does. We figure that this would be more difficult to create, but if that is easier for you, then you can go that route as well.
What I already have versus what the provider will deliver:
- We have a custom-built, AJAX-based iCal parser (viewable at [url removed, login to view]), but it doesn't play nicely with Internet Explorer. Furthermore, event descriptions appear in a "popup" manner that is not compatible with future usage environments. This viewer also does not have a monthly view. This viewer does have some advanced functionality (caching, runtime calendar definitions); as such, we would be willing to share the source code of this script to help the developer along.
Specific expertise/background that I am seeking:
- PHP/MySQL (MySQL is probably not needed)