Hi IQ users,
The last big piece missing before releasing v1.0 is support for online calendars.
As I'm working on the changes required for this new feature, I'll share design notes with you.
Feel free to comment and / or ask questions. It is your chance to chip in and influence IQ dev.
Calendar Design Notes
- IQ Calendars
- IQ will be able to display one or more calendars, each in its own tab
- Calendars have 1, 2, 3, 5, 7 day, month and year preset ranges. In addition, the mini-calendar can be used to select custom ranges (i.e. 2 weeks, only Mondays and Tuesdays, etc)
- Visually, calendars can have the following views:
- Typical day view with week days as columns and hours as rows
- Typical month view with week days as columns and week numbers as rows
- Horizontal scrolling view, scrollable from Jan 1st to Dec 31st
- Vertical scrolling view, scrollable from Jan 1st to Dec 31st
- Timeline view (eventually) for busy calendars with lots of overlapping events
- Any date field-value can be shown in calendars, either automatically (if set in Field Properties) or for individual items (right-click -> Show in Calendar)
- For each calendar, users can select what events to show / hide (show / hide the corresponding date field)
- Synced Calendars
- Calendars from Google et al can be displayed inside any IQ Calendar
- Each synced calendar gets a dedicated date field (with the field property "In Calendar by default" checked)
- For each synced calendar, users can select to show / hide it (show / hide the corresponding date field)
- Events
- All events are linked to an IQ item
- Items can be displayed more than once in the calendar, once per date field-value
- Events can be one of: All day, Unscheduled, or Scheduled.
- All day and Unscheduled events are shown at the top of the calendar. They don't have a start time
- Unscheduled events have a defined duration (i.e. 2 hours) but have not been assigned a start time. Basically, they can represent events / tasks that can occur anytime during that day
- Scheduled events have defined start time and duration. When the Calendar shows the time scale, they are shown in the correct spot
- Dragging an event from the top part to the time scale are changes it to Scheduled type. Dragging a scheduled event to the top part changes it to Unscheduled type
- Key event properties have corresponding field-values (Start, Duration, Where, Description, Repeating, etc)
- Repeating Events
- Repeat patterns can be specified for events:
- Preset repeat patterns can be defined using the Event dialog (daily, weekly, monthly, yearly)
- Custom repeat patters can be defined by manually editing the ICalendar string, such as:
- On the third to the last day of the month: FREQ=MONTHLY;BYMONTHDAY=-3
- All work day of February: FREQ=DAILY;BYMONTH=2;BYDAY=MO,TU,WE,TH,FR
- The last work day of the month: FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
- Every work day on week 5 and 20: FREQ=YEARLY;BYWEEKNO=5,20;BYDAY=MO,TU,WE,TH,FR
- Moving an event that is part of a series creates an Exception event
- Deleting an event that is part of a series creates an Exception event
- Exception events can be deleted, hence restoring the event in its series
- Any event in a series can be converted to a distinct item (and then have distinct HTML and field values, distinct parents and sub-items)
- Repeat patterns can be specified for events:
- Synced Events
- IQ will regularly poll calendar servers to retrieve the list of New / Modified / Deleted events and apply changes to the IQBase:
- For each event created in a synced calendar, an IQ item will be created. Event date/time is saved in the date field associated with this synced calendar.
- Changes to events made inside IQ, where the date field is linked to a synced calendar, will be sent to the calendar server
- When changes have been made on both IQ and server sides, the most recent will win
- IQ will regularly poll calendar servers to retrieve the list of New / Modified / Deleted events and apply changes to the IQBase:
Comments
EDIT; a few other suggestions, more "IQ specific" :
- F7-F8 to move from one event to the other while properties pane is open.
- "Color" option in the calendar context menu.
I'll have another close look at your list later tomorrow.
(Just mentioned the Outlook workaround for it what it is... a workaround.)