Overview
Goals and Objectives
The primary driver for the 0.6 release is to get a usable calendar out to the public quicker in order to satisfy a key need as well as build adoption momentum. What do we mean by a usable calendar? Supporting a usable calendar involves prioritizing features that fit into 3 key areas.
- Conventional Calendaring: Basic features that are part of a basic
calendar application like recurrence and calendar overlays. This also
includes addressing some key performance scenarios.
- Interoperability: Using iCalendar format for import/export as well as sharing of calendar data.
- Collaborative Calendaring: Allow users to publish and subscribe to read-write and read only calendars.
Background
Our original 0.5 goal was to achieve some form of calendar dogfood.
By the time we reached the end of 0.5, we realized that although we had
introduced many new calendar features such as Anytime Events, there
were quite a few bugs that needed to be addressed in order to make
things work in a more complete manner. A substancial part of the 0.6
calendar work items center around fixing these bugs and getting what
features we have today working well before adding additional features.
High Level Use Cases
The following is a list of the most common basic workflows that we want to support in the 0.6 release.
1. Managing a personal calendar. This includes running Chandler out of the box, locating your calendar and performing all basic calendaring tasks.
2. Creating a new calendar
- A user can perform a one-time import of their calendar data (exported via another app) into Chandler by adding it to their Personal Calendar or by importing into a new separate collection (created automatically)
- A user creates a second personal Calendar for work items and drag events to it or creates events directly on that calendar.
3. Subscribing to an Office Calendar
- A user subscribes to an Office Calendar which was published or shared using Chandler. This calendar could have any combination of readers and/or writers. This calendar will be viewed on a periodic basis, ie: when we want to check something. Esther creates an office calendar and publishes it using Chandler. Blue creates a calendar for scheduling events in Arcadia and publishes it using Chandler.
- A user subscribes to an Office Calendar published using an external method ie:iCal
4. Viewing more than one calendar at a time.
- A user has more than one calendar and wants to overlay them. These could be calendars created from importing events, subscribing to a share or creating a new personal calendar from scratch.
5. Subscribing to someone else's personal calendar.
- A user subscribes to a read-write or read only calendar shared by their spouse or partner who is also using Chandler
- A user subscribes to a read-write or read only calendar shared by their spouse or partner who uses another client other than Chandler
Definitions
Requirements
Recurrence: For 0.6 we need to support the display, creation, deletion and modification of recurring events.
Event Types: We need to support the full range of event types available on conventional calendars such as multi-day events.
UI Polish and Improvements: The calendar is required to
support a higher level of UI polish than other areas of Chandler which
will be addressed by fixing a number of existing bugs.
Sharing: There should be display support for read only calendars as well as read write.
Overlays: In 0.6 we will have the ability for a user to active multiple calendars and overlay them in the calendar view. This includes a widget in the sidebar to activate and deactive a calendar as well as a visual representation in the calendar view that shows which calendar is selected (on top) and which ones are in the background.
Colors: For 0.6 we will have colors associated with all calendars. Colors are assigned automatically by default but the user will have an affordance for changing the color of a calendar. There will be a visual on the sidebar that displays that displays the color associated with a specific collection
Timezones: We should support some ability to display and
manipulate timezone information in 0.6 (this feature is still being
defined and scoped).
Mini Calendar: We are going to extend the mini calendar to
have a preview area, display busy bars and show multiple months.
Assumptions
High-level Decisions
Since the 0.6 release is focused on achieving a usable calendar we
will be attempting to optimize for the basic calendar workflows in
order to prioritize features for this release. In order to focus on
this goal there may be a need to simplify some of the features as they
apply to other areas of the application. For instance, although
our architecture supports a more general feature such as overlaying
collections of items, we will spend more time on the details with
respect to the calendar behavior. More general behavior will be
addressed in another document.
Terminology
This is a list of some new terminology introduced in this document.
- Activated Calendars
- Is a calendar that has been included to be displayed in the
calendar view (overlayed).
- Selected Calendars
- This is the calendar that is on top and corresponds to the highlighted/selected collection in the sidebar.
- Selected Event
- This is the event that is currently selected (clicked on) in the
calendar view
with the corresponding detail view displayed.
User Interface / Interaction
Calendar Cleanup and Bugs
The following are a list of bugs that are part of the initial 0.6 calendar cleanup tasks.
These items are related to fixing query bugs.
- Bug 2749: Removing a calendar item doesn't cause it to disappear.
- Bug 2756: Query bug related to above.
- Bug 2699: Notification but related to above.
- Bug 2510: Unstamped items continue to show in the filtered collection resultset.
- Bug 2682: Detail view doesn't correspond to the item selected in summary view when changing app.
These are printing related issues.
- Bug 2670: Selecting Print or Close on Print Preview throws an unhandled exception.
- Bug 2211: Close button on print preview causes crash.
- Bug 2462: Cancel on print throws a Printer not setup correctly message.
- Bug 2668: Print Preview screen shows some extra lines on the right margin.
These bugs relate to the calendar header area.
- Bug 2636: Get rid of Today button in the main calendar view.
- Bug 2578: Fix the calendar Month label so that it displays both months when straddling 2 months (ie. April-May 2005). Currently it only displays one month name.
- Bug 2792: As you resize the calendar view the column header text should adjust ie: Sun 13 -> Su 13 if the headers become smaller. See iCal for example.
- Bug 2793: Add visual properties for the column header of Today. Need to define specific behavior for all 3 platforms.
- Bug 2644: - Integrate header widget (Make sure the appropriate MouseDown state is happening on the Mac - Darkened grey). Need to close on plan for selection and mouse over states for PC.
These bugs relate to the main calendar view and body.
- Bug 2750: In-place event edits not saving when you click on another event.
- Bug 2742: Detail view duration field resets itself to blank upon edit.
- Bug 2804: The following behavior should be added to the All-day area. Do not display all-day area at the top unless there are items in there. Each additional all-day event should widen the all-day area...up to 3 events on the same day. If there are more than three rows of events, Plus button activates so that the user clicks to see the full list. The Plus button will change to a Minus button. Clicking the Minus button retracts back to three rows of all-day events. Plus button is automatically clicked to display all events when users create new all-day events (beyond 3 in one day).
- Bug 2579: Overlapping events should be staggered.
- Bug 2801: DnD events around. Within the calendar summary view. To and from the all-day event area and the main calendar summary view. To and from the summary view and sidebar collections.
- Bug 2802: Cut and paste events. Click to select event item. Cmd / Ctrl - click to multi-select events. Hit Cmd / Ctrl - C OR select copy from the Edit menu OR right-click and select copy from the context menu. Click on a blank half-hour slot anywhere in the summary calendar view (all-day event area included). Detail view does not change like it does in iCal. Feedback should be provided when user clicks on blank half-hour slot. Hit Cmd / Ctrl - V OR select paste from the Edit menu OR right-click and select paste from the context menu. Event(s) are pasted accordingly (ie. If user copies 2 events that are 3 hours a part and pastes them on a different day starting half an hour earlier, the 2 events should remain 3 hours a part, but start half an hour earlier. Pasting events with duration into the all-day event area simply turns them into all-day or multi-day events.
- Bug 1936 AM and PM should never appear together. Only one of them should be visible. Same behavior as Apple iCal.
- Bug 2803 The color / boldness of the time font needs to be treated differently on the 3 platforms. The bold treatment on PC looks okay, but is too thick on the Mac. • Add the behavior so that if the duration of the event is too short to display both the Start time and the Event title, we should display the Event title. This can be reproduced by making the event duration 15min, 30min or 0 duration.
- Bug 2762: Reminders shouldn't fire while you're dragging events in the calendar. Calendar view visual feedback.
- Bug 2806: Add a drop shadow for distinguishing the selected event.
- Bug 2806: Improve on Confirmed, Tentative, FYI, Conflicted status displays. Change the thickness of the line.
- Bug 2806: Improve on shape, texture and rendering of lozenge.
- Bug 2806: Anytime events should sit on a Mac style lozenge not a square one.
- Bug 2805: Add an @ sign before the start time 3:00PM on the event lozenge to distinguish events with no duration.
- Bug 2645: Add feedback for when users selects a blank half-hour time slot in the main-cal. Select the cell to indicate the user has clicked on something.
- Bug 2794: On import of calendar file, create new collection and add all events to it. The events should also appear in the All collection.
Creating Events on a Calendar
Events can be created in Chandler using a number of different
scenarios which are described below. I have also addressed the creation
of other types of items since there really wasn't another appropriate
place to put this information.
Calendar app area:
If we are currently viewing a calendar, ie: the calendar app button
is selected and we are displaying the week or day view, all events are
created in-place on the selected calendar using the following
mechanisms.
The selected calendar is in-front and is defined by the collection
selected in
the sidebar.
When creating new items, the selected collection in the sidebar DOES
NOT change and we assume that any new event we create is added to that
particular collection.
Selecting Ctrl-N OR clicking the File->New item->New Event menu creates a new event in-place on the calendar. Depending on the current state of the calendar (what we have selected), the event is created in the following location.
- If currently have an event selected on the calendar, the new
event is created after the end time of the current event. If there is
already another event at that time, the new event is created anyhow and
overlaps with the existing event. The default event duration is 1 hour.
- If we have selected the calendar background (selected a time slot), the event is created at that particular time.
- If nothing is selected, we add a new event to the current visible date and time range (what we have scrolled in the view). If we are looking at a week view we put the event on a Wednesday.
- In the first 2 scenarios (selected event or background cell) if
we have scrolled the calendar view so that we CANNOT see the current
selected item, or area, the calendar will scroll automatically to show
the new event in the view.
Double click directly on the calendar view itself to create a new
event
in-place on particular day at that specific time. All 4 date time
fields are filled in with data. The default event duration is 1 hour.
If we are in the calendar app and create a mail, task or note item
we are automatically jumped to the All app area and the new item
displays in the summary table view. The selected collection remains the
same.
Mail, Task or All app areas:
If we have any other application bar button selected (All, Mail, Tasks) creating new items has the following behavior.
- Clicking on the File->New item->New Event menu item automatically selects the All app bar button (if it isn't already) and the current collection remains selected. An event appears in the summary table view as an Anytime TODAY event. The start date and end date default to today and the start time and end time appear in HH:MM hint format.
- If we use File->New Item->New XXX to create an item that DOES NOT match the type of app area we are in (ie: in Mail and create new Task), we automatically jump to the All area, and the new item appears in the summary table view. Once again, the selected collection does not change.
- If the File->New Item->New XXX matches the current
App area
(ie: we are in the Mail app and create a new Mail). We should remain in
that app area.
- Selecting Ctrl-N automatically creates a new item of type "Kind" corresponding to the App bar button that we have currently selected. If we are in the Mail app, Ctrl-N creates a new mail message in the summary table view. If we are in the Task app, Ctrl-N creates a new task in the summary table view. If we are in the All app area, Ctrl-N creates a new note in the summary table view.
- (Stretch goal) It would be nice to have an in-place creation of
items when you are in the other App areas. For instance, in Mail, you
could double-click on the white space to create a new mail in-place.
Since we are focussing on the Calendar view for 0.6, this is a nice to
have but not required.
Calendar Views and Overlays
For 0.6, we are introducing 2 new concepts for the calendar;
Selected Calendars and Activated Calendars.
The properties for selected calendars are as follows
- The selected calendar is the one corresponding the highlighted item in the sidebar.
- By changing the highlight, we change the selected calendar.
- The display of an selected calendar will have special properties. All events that appear in that calendar will have a gradient (see visual below).
- When in the calendar app area, you must always have a selected calendar at all times ie: a collection highlighted in the sidebar.
- Only one collection in the sidebar can be selected at a time.
- All event lozenges on a selected calendar (the one in front),
should have a small line dividing the time information and the event
title. This is similar to Apple iCal only the area is not filled in.
The properties for activated calendars are as follows.
- In Chandler, a user can have 0...N activated calendars.
- Activating a calendar means that the data for this calendar is displayed behind the selected calendar in the calendar view. If we have more than one calendar activated the events are overlayed (all of them appear).
- Overlayed calendars have different view properties. The events associated with the activated calendars don't have a gradient and are less saturated (seel visual below).
- The activated but not selected calendars should display overlayed
in the order in which they appear in the sidebar.
- A calendar is activated and deactiveated by clicking the checkbox to the left of the calendar name in the sidebar.
- Selecting a calendar automatically overlays a calendar on top of all the activated ones but does not automatically activate it (check the checkbox).
- By default when you run Chandler out of the box, nothing is
activated.
The properties for selected events are as follows.
- We do not require that a selected calendar have an associated selected event (detail view can be blank).
- If we click on an event in the calendar view, that is a member of an activated but not the currently selected calendar, this calendar automatically gets selected (highlighted in the sidebar) and the event is in the selected state.
- ie: Using the calendar below, if we click on the item "Game" at
10:00 on May 22, the work calendar is selected (highlighted) in the
sidebar, and all blue items would display with the gradient (on
top mode). The "Game" event would be the selected event and the detail
view updated.
- There is a ui affordance for distinguishing the selected event on the display.
The following screenshot displays both selected and activated
calendars. The legend is as follows.
- Selected Calendar: The selected calendar is the "My Calendar" collection displayed in pink in the on top state.
- Activated Calendars:There are 3 activated calendars, Home(purple), Work(blue) and Freada(yellow). Those are shown in the background.
- The calendar view displays the composite of all activated and selected calendars.
- Selected Event:The currently selected event is the Dinnah item at 10:40am on May 19th.
- Activation Checkboxes:The checkboxes in the sidebar show both activated(Home,Work,Freada) and unactivated(My Calendar) states.
- Calendar Colors:The checkboxes also indicate the color associated with the particular calendar.

Calendar Colors
For 0.6 we are going to support the assignment of colors to a
particular calendar. Out of the box, a color is automatically assigned
to the user's personal calendar. Any new collections that are created
and populated with events will also be assigned a color from a
pre-defined list. This color is displayed at the top left hand corner
of the calendar view for a particular collection.
The user can use the color selector in the top left hand corner to
change the color of any calendar. There is nothing preventing the user
from choosing the same color for 2 different calendars.
As indicated above, in 0.6 we will be giving the user the ability to
view more than
one
calendar by overlaying them on top of one another. In Chandler, this
ability will apply to any collection however only the calendar behavior
will be described in this spec. It does not matter whether or not these
are personal calendars or shared calendars. The colors for non-active
calendars will be a different saturation than those for the active
calendar.
As mentioned in a section above, events in the All collection should
behave like any other calendar. If that calendar has the focus, we
should display all events that exist in the All collection in the
assigned color.
[Sheila] We are not going to add the specific list of
all colors and hues that will be part of our pick list of colors. Mimi
and Alec will be iterating on this for some time as well as tweaking
them so they look right on all platforms. Due to this constant change,
it doesn't seem worthwhile to keep updating them in the spec.
Calendar Lozenge
There will be several visual changes to the calendar lozenge for 0.6 that are listed below.
- There should be a colored line (appropriately consistent with calendar color) under the time information.
- Above the line and under the time info will be a darker band of color.
- Make the all-day and anytime lozenges the same as the events with duration
- Tweaks to lozenge shape (iterative)
- Tweaks to lozenge text color (iterative)
Activation Checkbox Behavior
The checkboxes to the left of the sidebar items display which calendars are activated as well as the current color assigned to a particular calendar.
Due to the icons present for All, In and Out, the behavior is slightly different than for other collections. Since the primary use cases for 0.6 will involve overlaying the My Calendar collection as well as user-defined calendars, we didn't feel that this was an issue.
Checkbox behavior for other calendars (My Calendar, imported, user-defined)
- The activation checkbox appears the left of the calendar name in the sidebar. The default is the unchecked state and has the associated calendar color. This state is represented by the My Calendar collection in the above diagram.
- The activated state is represented by the Home collection, a
darker checkbox with the color of the calendar.
- Mouseover on this icon (or on the sidebar name text) has no
effect regardless of whether or not it's in the checked or unchecked
state.
- Selecting the text of the sidebar name highlights (selects) this
calendar but does not alter the checkbox state.
- Clicking the checkbox directly changes the activation state.
Checkbox behavior for All, In, Out
- By default, these 3 collections appear with an icon next them in
the sidebar.
- Mouseover anywhere on the text or icon for a row in the sidebar
causes the icon to change to the "unselected" checkbox with the color
of the calendar.
- Clicking directly on the unselected icon causes the collection to be activated (the darkened checkbox with the calendar color).
- The activated checkbox persists if we select another collection
in the sidebar.
Events on More Than One Calendar
Currently Chandler supports the ability for items to live in more
than one collection. We would like to continue to support this feature
for 0.6. When we support activated calendars we will have to address
the display of events that may live in more than one calendar that is
overlayed.
A few important notes about event display and calendar hierarchy.
- If you view a calendar individually, an event should inherit the color of the calendar we are looking at.
- Using the calendar above, if the "Lunch" event on May 23rd at noon were on both the Home (purple) and Work (blue) calendars, we would see it in purple is we selected the Home calendar and in blue if we selected the Work calendar.
- In the overlayed state above, it shows up
in purple since the Home calendar preceeds the Work calendar list of
activated calendars.
- The hierarchy order is based on the sidebar order.
- If the event "Lunch" were on the Home calendar and the Freada calendar, it would appear in blue.
- If we remove it from one collection (ie:purple one), we should continue to see it in blue in the other calendar since this is the next calendar in the order.
- If the event "Lunch" were on the Home, Work and Freada calendars and we removed it, it would still appear in blue.
- In above scenario, if we remove the "Lunch" event from the Home
calendar and deactivated the Work calendar (unchecked it), the "Lunch"
event would show up in yellow.
If we select the All collection it should display a composite of all events.
- If an event is only a member of the all collection it appears in the color of the "All my events" calendar.
- If an event is on some other calendar as well as the "All my events" calendar then it should display in the color of the other calendar.
- If an event is on multiple (3 calendars) including the "All my events" calendar, it displays in the color of the first calendar in the list that isn't the "All my events" calendar.
[Sheila] PLEASE NOTE: we are still closing on the specific design and behavior for the All collection for 0.6. For now, this is still unreasolved and the behavior described above may change. We expect to close on this in the next couple of weeks.
[Sheila] There has been some discussion around a 0.6
simplifying assumption to allow events to only exist on a single
calendar. We have decided not to go ahead and impose this constraint
for events in 0.6. Currently our app and architecture supports the
ability to have items in more than one collection and there is some
concern that the cost of preventing this will be higher than addressing
the use cases for which this might be problematic (ie: overlays above).
For now we would like to proceed by addressing any issues caused by
having events on multiple calendars in a very simple, straightforward
manner. If we run into a number of difficult problems that will cause
distraction and interfere with acheiving our 0.6 goals, we will revisit
this simplifying assumption again. In the meantime, design will work
with engineering to understand the exact cost of restricting items to a
single collection so we can better compare the tradeoffs.
Displaying a Read Write vs a Read Only Calendar
In 0.6, we will be supporting the ability to subscribe to calendars
for which we may have read only or read write privileges. This will
have to be handled in the display so it's apparent to the user what
they can and cant' do.
If a user subscribes to a read write calendar, there will be no special handling in the UI. A sharing icon will appear in the sidebar and the user will be able to manipulate all aspects of the calendar, add events, colors, change event detail, delete items and perform all other tasks that they would be able to had they created this calendar in Chandler. All fields in the detail view will be editable.
If a user subscribes to a read only calendar, there will be an
indication in the detail view for each event that you cannot edit this
event. There will be no visual indication on the main calendar view
that this is a read only calendar. The icon for read only event appears
at the top of the detail view next to the mark-up bar and is shown
below.
Detail view read only icon:

For a read only calendars the following actions/edits are allowed.
- Selecting an event.
- Changing the color of a calendar.
- Renaming the calendar in the sidebar.
- Removing the calendar/collection from the sidebar.
For a read only calendars, the following actions will popup a dialog indicating to the user that they do not have permissions to edit events this calendar.
- Edit any data in the detail view.
- Removing an event.
- Double clicking in the calendar view to create an event in-place.
- Double clicking on an event in the detail view to edit in-place.
- Drag and drop events to/from this calendar.
- Drag events around the calendar view.
- Creating events using the File menu or Ctrl-N.
All the detail view fields should appear with data in read only
mode. The stamping buttons should be disabled. Alternatively we could
popup a readonly dialog when the user attemps to stamp this event.
Display of Chandler Event Types
The following is an inventory of all the types of events we will support in Chandler and how they should look on the main calendar view.
| Event Type | Example | Display Details |
|---|---|---|
| Regular Events | 4 datetime fields have values 05/01/05 1:00pm to 05/01/05 2:00pm |
D shaped lozenge on the main calendar area |
| Regular Multi-day Events | 4 datetime fields have values 05/01/05 2:00pm - 05/02/05 9:00am |
D shaped lozenge style on main calendar area |
| @ Time Events | Specific date and start time values, end date= start date but
no end time specified |
Round lozenge on main calendar area |
| Anytime Event | Specific start and
end date (same) but no time in either time field. |
Round lozenge in anytime area at the top of the calendar |
| All-Day Events | All-day checkbox selected, start date=end date, time fields
are hidden |
D shaped lozenge in anytime area at the top of the calendar |
| All-Day Multi-Day Events | All-day checkbox selected, end date later than start date,
time fields hidden |
D shaped lozenge in top anytime area spanning multiple days |
| Anytime Multi-day Events | End date later than start date, no start time or end time | Round shaped lozenge in top anytime area spanning multiple days |
Keyboard Shortcuts and Event Selection
It will greatly enhance the user experience if all the standard keyboard shortcuts were available for selecting, deleting, copying and pasting events within the Chandler calendar view. The delete behavior should be according to the Item Removal and Deletion spec. This list was added to the calendar spec since we are most concerned with usability of the calendar for 0.6. If it seems appropriate to have this work for any summary table view, then we should support that. We should be able to.
- 1. Ctrl / Cmd - X, C, V to Cut, Copy, Paste events within the same calendar and between calendars.
- 2. Ctrl / Cmd - A to select all the items in the "selected" calendar in order to: Delete all items, Remove all items, Drag and drop all items, Cut, Copy, Paste all items.
- 3. Ctrl / Cmd - Click to multi-select items in the calendar in order to: Delete selected items, Remove selected items, Drag and drop selected items, Cut, Copy, Paste selected items.
Recurring Events
We are going to support a logical subset of recurring events in 0.6. This includes the display of imported recurring events as well as creating and modifying recurring events in Chandler. There is a separate spec available that details the recurrence UI as well as the underlying architecture.
Timezones
We are still defining the timezone workflows for 0.6. This section will be updated or refer to a more detailed spec.
[Sheila] I have a request to move forward with a
timezone UI design and spec for us to discuss and scope out. Mimi and
Sheila need to sit down and think about the design so the details are
not yet available.
Anytime/All-day Area
The anytime or all-day area at the top of the calendar is where the
user's anytime, all-day and multi-day events appear. Events appear in
this area by.
In order to have events appear in this area, you can create them in
place by double-clicking or you can modify information in the detail
view (ie:select the all day checkbox).
There a 3 states for the all-day area: min (1/2 an event is visible
- just enough for you to add in-place), max - all events are visible
with a small space at the end so you can add a new one, user defined
drag - where the user can position the bottom divider to any position
within min/max.
If you run Chandler OOTB (new repository), the all-day area should
be minimized and have a maximize arrow on the right that you can click
on. In this case, if we have no events in the area, maximizing simply
makes it a bit large ie: 2x, only enough to give the user some visual
feedback. When you maximize, the arrow is replaced by the minimize one
and clicking this will return the area to it's min state.
As you create new events in the all-day area, the size should adjust
to fit them as they are created. In this case, it adjust to the max
size so the arrow should be replaced by the min arrow.
As you change collections or go forward and back weeks in the
calendar, the all-day area should adjust to display only the events
that are in that particular view. For example, if I have a week
with 4 items on one day, it maximizes to this. If I go forward one week
and I have no events in the all-day area, it should be minimized since
there is nothing for that particular week view. This is very difficult
for 0.6 and we have decided not to do it.
If the user adjusts the size, this should stick as we change weeks,
views.
Mini Calendar
The mini calendar work for 0.6 falls into 2 categories. The first involves fixing a number of existing bugs and adding some enhancements to improve the visual feedback. The set of work items include the addition of new features such as the busy bars, the preview area and multiple month display.
The visual tweaks and enhancements for the mini calendar are summarized in the following bugs.
- Bug 2643: Clicking on the mini calendar forward and back buttons should not affect the week/month displayed on the main calendar. It is meant simply to give the user the ability to browse the months via the mini calendar independently. In this case, we should also NOT change the selection of the date in the mini calendar until the user. For instance, if I have April 1 selected, I can move forward in the mini calendar to May, June and the day selected stays on April 1 until I click on something else specifically.
- Bug 2646: The selection on the mini calendar should
handle
selecting an entire week as well as a single day depending on whether
or not we have the associated day or week view chosen in the calendar
view. See Apple iCal for example. The selection for the week range
should only appear if we are in the calendar app area. If we click back
to the All, Task or Mail app areas, we should go back to a single day
selection in the mini calendar. The easiest thing to do is simply pick
the Monday of the week that we were looking at. We really only care
about this because the preview area will redisplay and we only want to
have preview on a day level only.
Bug 2795: This involves adding a 1 pixel border around
today.
If we integrate the header widget into the mini calendar (bug below),
we may not need to fix this bug. - Bug 2796: The mini calendar bar with the back/forth arrows and Today label should draw in the same style as the column header on each platform using the new wxWidgets header control.
- Bug 2760: Today's date on Linux is not bold.
- Bug 2586: The margins around the mini calendar should be even. Currently, there is a gap on the right and below.
- Bug 2586: Light grey dates are too light on the Mac.
- Bug 2586: Make selected date selector not rounded.
- Bug 2586: Make the MONTH YEAR label not all caps, keep it bold.
- Bug 2586: Smaller font on the Mac.
The new preview area above the mini calendar allows the user to view their confirmed events for a particular day when they are not in the calendar application and using other areas of the application. The preview area has the following behavior.
- The events appearing in the preview area are confirmed only. We do not include FYI or tentative events.
- The list of events displayed are those confirmed that appear in
the All collection. We do not display a subset of that day's events as
we select different collections in the sidebar.
- The layout of the preview area for the different types of events
appears below.
- The preview area is only displayed if we are NOT in the
calendar
app area. It should hide if we click the calendar app bar button and
reappear if we click the All, Tasks or Mail app bar buttons.
- The preview events only apply to a single day, the one selected in the mini calendar.
- If there are no confirmed events for that day, the preview area is hidden.
- The preview area should max out at around 7 lines. We are a bit
vague on this so we might tweak it when it's up and running. If we have
more events than can fit in the max space we should show an ellipse
(....). We will not support the ability to expand or collapse this area.
The mini calendar busy bars are used to give a user an
at-a-glance
view of how busy their days are for a particular month. The busy bars
appear on the mini
calendar at all times regardless of what summary table view is
displayed (calendar or list view). The busy bars indicate relative
busyness on a particular day
based on all the users confirmed events (everything in the All
collection). This is constant and is not affected by what collection
is selected in the sidebar or what collections are overlayed.
Rather than detail an exact algorithm for calculating the busy bars display, Mimi and Jed will iterate on this to determine the best representation.
Currently, we can only display a single month at a time
in the mini
calendar. This will be expanded to allow for the display of multiple
months by sliding up the bar above the preview area in the mini
calendar. We will allow the user to slide this bar up to 80% of the
sidebar height. There should be a snap feature that automatically snaps
the mini calendar up or down a month so only full months are
displayed. We will allow the user to slide the mini calendar bar down
to the bottom (less than 1 calendar height). In this case, it will snap
the mini calendar closed.
[Sheila] Mimi feels we can stage this multiple month display feature a number of ways. We decided that she and Jed will iterate on this together and we will update the spec as needed.
Importing and Exporting Calendars
Although Chandler 0.5 supports some import/export
capabilities, this
should be expanded to support the full range of event types available
in Chandler 0.6. This includes All-Day, Multi-Day, Anytime, @ Time and
Regular events. We will also support importing and exporting recurrence
information which is also addressed in detail in the 0.6 recurrence
spec.
Code Design
[Sheila] Alec can determine what info should go here if appropriate.
