Table of Contents

K-lendars Manual (Draft)
1 Overview 2 Year View Resources 3 Day View Resources
K-lendars Manual (Draft)

K-lendars Manual (Draft)

1 Overview

K-lendars is a multi user / multi calendar diary. Multi user means that you can set a note in a calendar and propagate it to people sharing this calendar with you. Multi calendar means that you can creatye and manage several calendars, for example, you can have a private calendar, and a team calendar. A calendar where you are the only member will be said private, else, it will be a public calendar (but it is not really public, because only trusted people will see this calendar). A public calendar will also be referred as "group". A private calendar is also a group with only one user.

K-lendars uses a distributed architecture, that means that every member of a group (every person sharing the same calendar) will have a copy of this calendar. Calendar update are made using email, that is the most common communication mechanism; so k-lendars is really an asynchronous application.

1. 1 Getting started

When starting, k-lendars will search for a dispatch mechanism installed. If nothing is found, it will automaticaly disable the group communication features. Anyway k-lendars is still usable in single user mode.

The first operation is to create a group (i.e a calendar), using the Groups / Create menu. Just type in the group name then press Ok.

To add a note, you must click-left on an hour in the Day View. Then the note dialog appears, just type in a note and press apply, the note should appear in the day view, and a border should be drawn in the year view around the "appointed" day.

1. 2 Setting up a public calendar

Using public groups requires an email dispatch mechanism (see email configuration).

Every one may wish to set up a public group. This requires to create a group, and then, using the Groups / Members menu, add email address for each member of the group. Every member will receive a notification of the group creation (but should restart k-lendars to see the new group). Then you can add / modify / remove notes like if it was a private group. Each group member will receive all the modifications.

1. 3 The Note dialog

This dialog will appear to enter a new note or to modify an old one. You can click on a note when the dialog is displayed, it will be updated in the dialog (cancelling previous modifications if they were not applyed). Note modifications will be comited when pressing the Apply button. To dismiss the dialog, press the dismiss button, this will cancel modifications too.

At the top of the dialog, there is the day and the hour displayed. You can change the hour, using the two arrow buttons placed at the right of the hour. You can change the day by pressing the day button and then clicking on a day int the Year View.

Then, there is the note text, where you can type in the appointment description. The Group option menu presents all the available calendars, choose the one where you want to set the appointment.

The private toggle button may be used for a publioc group to hide the note text. Members will see that you have added a note, but they won't be able to see the description and/or modify/remove the note.

The Origin field shows the note owner, and the last modification date.

The Repeats box may be used to set up a repeating appointment. First choose the repeat rate, then you can (if necessary) sets the first and last date for this appointment. This is done by clicking on the "first date" and "last date" buttons and then clicking on a day in the year view. Press a none button to cancel first or last date.

The Alarms button pops up the alarms dialog. You can set an alarm up to 7 days before an appointment. If the appointment is repeated, the alarm will trigger for every involved date.

If you are currently viewing an old note, the Delete button allows you to remove the note.

1. 4 Email configuration

k-lendars uses email as media for inter-process communications; every mail involved in the Cm protocol should be forwarded to two shell scripts:

CmProtocol: cm-dispatch

CmAdministration: cm-admin

where CmProtocol and CmAdministrations are given as mail subject.

If you do not configure your email environment to do this job you won't be able to use the multi user k-lendars capabilities.

1. 5 Setting closed days

Closed days may be displayed with specific graphical attributes (see "Year View Resources" on page 3), there is no dialog to interactively define closed days. Closed days are given in a file (resource XtNclosedDaysFile) with the following format:

*<year>.<month>.<weekday>.<day>.closed: true

Eluding a level means "do not care with this level", for example:

*saturday*closed: true

means that every saturday is closed.

*december*25.closed: true

means that Dec 25 is closed.

2 Year View Resources

The Year view is implemented as a widget, that uses uses many resources to define the Year view appearance. The Year widget class name is "Year", to that resources may be set in a resource file, simply with:

*Year.<resource>: <value>


Table 1: Year Resources Set 
Name                    Class                Default            Type           Access  
XtN"month"              XtC"Month"           "Month"            String         CSG     
XtN"month"Color         XtC"Month"Color      black              Pixel          CSG     
XtN"week-day"           XtC"Week-day"        "3 first letters"  String         CSG     
XtNlayout               XtCLayout            1x12               String         CSG     
XtNstartWeekOn          XtCStartWeekOn       monday             WeekDay        CSG     
XtNleftMargin           XtCLeftMArgin        20                 int            CSG     
XtNtopMargin            XtCTopMargin         50                 int            CSG     
XtNdayWidth             XtCDayWidth          25                 int            CSG     
XtNdayHeight            XtCDayHeight         25                 int            CSG     
XtNdayMargin            XtCDayMargin         2                  Position       CSG     
XtNmonthFont            XtCFont              XtDefaultFont      XFontStruct *  CSG     
XtNdayFont              XtCFont              XtDefaultFont      XFontStruct *  CSG     
XtNappointmentColor     XtCAppointmentColor  blue               Pixel          CSG     
XtNdayForeground        XtCDayForeground     black              Pixel          CSG     
XtNdayBackground        XtCdayBackground     grey80             Pixel          CSG     
XtNclosedDayForeground  XtCDayForeground     red                Pixel          CSG     
XtNclosedDayBackground  XtCDayBackground     grey80             Pixel          CSG     
XtNtodayForeground      XtCDayForeground     green              Pixel          CSG     
XtNtodayBackground      XtCDayBackground     grey80             Pixel          CSG     
XtNclosedDaysFile       XtCString            ~/.closed.days     String         CSG     
Allows to set the month string. For example:
*Year.january: Janvier
Defaults are: January, February, March, April, May, June, July, August, September, October, November, december

Allows to set month colors. For example:
*Year.januaryColor: green
Default is black.

Allows to set weekday strings. For example:
*Year.monday: Lun
Defaults are: Mon, Tue, Wen, Thu, Fri, Sat, Sun

Sets the Year months layout. Default is 1x12, that means 1 row and 12 columns. This should better be set using the "Year Layout" menu. Possible values are: 1x12, 2x6, 3x4, 4x3, 6x2, 12x1.

This define the first day of the week. Possible values are: monday. tuesday. wednesday, thursday, friday, saturday, sunday. This resource should be set using the Options / Start Week On menu.

Sets the margins between the left side of the Year widget and the months left sides.

Sets the margin between the top side of the Year widget and the months top sides.

Sets the day width in pixels. This size should be enough to contain the day string.

Sets the day height in pixels. This size should be enough to contain the day string.

Sets the horizontal and vertical margins between two days, inside a month.

Sets the font used to draw the month string.

Sets the font used to draw the day string.

Sets the color used to draw the day's bounding box when an appointment is set.

Sets the color used to draw a day's string.

Sets the color used to draw a day's box.

Same as XtNdayForeground, for closed days.

Same as XtNdayBackground, for closed days.

Sets the file name containing the closed days. (see "Setting closed days").

3 Day View Resources

The Day View is implemented as a widget and has its own resources to define the view appearance. The Day widget class name is "Day", so that resources may be set in a resource file simply with:

*Day.<resource>: <value>

Table 2: DayResources Set 
Name                 Class                Default        Type           Access  
XtNfirstHour         XtCFirstHour         8              int            CSG     
XtNlastHour          XtCLastHour          17             int            CSG     
XtNmilTime           XtCMilTime           True           Boolean        CSG     
XtNdevideHourIn      XtCDevideHourIn      4              int            CSG     
XtNhourFont          XtCFont              XtDefaultFont  XFontStruct *  CSG     
XtNappointmentFont   XtCFont              XtDefaultFont  XFontStruct *  CSG     
XtNhourColor         XtCHourColor         black          Pixel          CSG     
XtNappointmentColor  XtCAppointmentColor  red            Pixel          CSG     
Sets the first hour displayed in the day view. Warning, if an appointment is set out of the day range, you will not see it. This should be set using the "Day range" menu instead.

Sets the last hour displayed in the day view. Warning, if an appointment is set out of the day range, you will not see it. This should be set using the "Day Range" menu instead.

Controls whenever an hour should be displayed in 24 hour format (milTime True) or am/pm format (milTime False).

Sets the default height (in appointment number) of each hour.

Sets the font used to draw the hour string.

Sets the font used to draw an appointment string.

Sets the color used to draw an hour string.

Sets the color used to draw an appointment string.