Umbrella task for moving Calendar from a prototype application to a released application. Major goals are:
- **Modernization**: Calendar uses older infrastructure for some things, and generally hasn't been updated in a while. It should be moved to newer infrastructure and made to work more like other modern applications work. This is at least partially a prerequisite for adding new features.
- **Events**: Calendar started as "Status", which just let you mark yourself away (on vacation, at an offsite, etc). The major immediate goal is to make Calendar work more like a normal calendar application, and let you schedule events (like meetings), invite users, and perform most of the general calendar tasks you'd expect from an application like iCal or Google Calendar. This set of features is a superset of the old "Status" functionality.
Completing those is probably sufficient to move Calendar out of the prototype phase. Some followup goals which may or may not make sense to address in this iteration are:
- **Date Services**: Let other applications show objects on calendars. For example, tasks might have a "Due Date"; projects might have a "Feature Cutoff" date, then a "Gold Master" date, then a "Launch Date". There are various forms this integration might take, but the general goal is to give other applications tools for managing and displaying date and scheudling information.
- **Triggers**: Integrate with trigger infrastructure so that events can send invitees reminders ("You have a meeting in 15 minutes."; "You have a meeting right now."; "You are currently in a meeting.").
Future goals, which probably make sense to push out to a later iteration but may be useful to think about now include:
- **External Integrations**: Integrate Calendar with Google Calendar, support ".ics" exports, etc., so that Calendar can be useful even if you use some other application to manage your calendar.
- **Recurring Events**: Support recurring events.