
XDiary
======
  
  You are looking at Xdiary, your own personal desktop diary. 
  
  This simple help tool will provide you with some information about 
  Xdiary. For your 'navigation', the following hints might be helpful:
  
   * You browse through the tool by selecting a topic with the mouse.
  
   * On each 'level', there is a topic called Back that takes you back 
     to the level above.
  
   * The 'Navigate Menu' contains some 'short cuts'. 
  
   * You exit by clicking on 'Close' at the bottom of the window.
  
  Have fun!
  

Introduction
============
  
  XDiary is your personal organizer that combines the functions of 
  a desktop calendar, an appointment book and an alarm clock. XDiary 
  will help you keep track of your meetings, appointments and plan 
  your time.
  
  XDiary is a Motif/X Windows application which allows you to manage 
  one or more calendars with a 'few clicks with the mouse'.
  
  XDiary can be used as a stand-alone tool but it also contains all 
  the functions necessary to be used as a group calendar. As a group 
  calendar, XDiary will help you to plan meetings, distribute information 
  to specific groups etc.
  
  XDiary contains the following:
  
   * A calendar which displays a month at a time.
  
   * A day view where your schedule for one or more days is displayed. 
     You can easily define, move, change and remove entries. In the day 
     view, you can also include entries from other XDiary calendars.
  
   * An appointment editor which lets you enter and change appointments 
     or notes. For an appointment, you can define alarms, if it should 
     be repeated, the number of lines to be displayed in the day view 
     etc.
  
   * A summary window which displays selected appointments and notes from 
     one or more calendars.
  
   * A print window which lets you print selected parts of your diary 
     on any ASCII or PostScript printer.
  
   * A reminder window where you can set 'light-weight' alarms.
  
   * A customize window that allows you to easily customize XDiary to 
     suit your needs.
  
   * An access control window that allows you to grant or deny other people 
     access to your calendar(s).
  
   * Various tools that make it easy to write separate programs or scripts 
     that access the XDiary calendars.
  
  The following chapters will take you through the "complete XDiary 
  tour". After the tour is completed, you should be able to use XDiary 
  efficiently.
  
  Have fun!
  

History
=======
  
  XDiary has a long history as an internal IBM tool. I started
  developing XDiary in January 1990, the goal was to lean Xt/Motif
  programming and to provide the AIX installation in the IBM Research
  Laboratory in Rueschlikon, Switzerland with a calendar program.
  
  A first version was running in March and released within the
  laboratory. Most of the users were positive and lots of useful
  feedback was provided. My manager at that time, Ernst Rothauser
  encouraged me to continue working on XDiary (on my spare time :-), and
  after some enhancements, it was released internally within IBM.
  
  A few more people and IBM sites picked up XDiary and even more
  feedback dropped in and I continued enhancing XDiary. The tool was
  also noticed by people outside of IBM but since it was still 'IBM
  Property', it could not be released outside of IBM and it was not
  clear what IBM wanted to do with it. After lots of going back and
  forth, it was decided in August 1993 that XDiary could be released to
  'registered users' and XDiary was for the first time distributed
  outside IBM (at least officially).
  
  In spring 1994, I decided to leave IBM for another job (with a bank
  this time). Since XDiary still belonged to IBM, it was left with the
  company but this time without a "parent". IBM still didn't know what
  to do with XDiary and in September I was offered the ownership of
  XDiary and it was mine again!
  
  The problem was that at this time, I was pretty "tired" of XDiary and
  didn't have the energy to do anything and it was just sitting there.
  Finally, during the winter of 1994-1995, I started to look at what
  would be needed to release it to the public domain. After fixing a few
  bugs and re-packaging XDiary, the result is now what rests on your
  hard-disk. If you decide to compile and install XDiary, you can also
  enjoy the results.
  
  As you see, XDiary has a long history but now it starts a new life as
  a surfer of the (still almost free) Internet.
  
  Happy XDiarying from
  
  Roger Larsson
  Thalwil, Switzerland, February 1995
  

Concepts
========
  
  Before you start to get to know XDiary , there are some words which 
  will appear again and again; a kind of calendar 'jargon' which is 
  useful to know:
  
  acl; Access Control List. An ACL is a list of users where each user 
  in the list is given or denied access rights. For example, you could 
  grant user 'joe' and the group 'managers' read access, the user 'cathy' 
  write access and no access for other users.
  
  appointment; An appointment is a calendar entry which is bound to 
  a day and time, e.g. 'June 12, 2 pm; Car repair'.
  
  calendar; A single XDiary database makes up a calendar.  In your 
  calendar, entries like appointments and notes are defined. In XDiary, 
  you can have multiple calendars defined and you can access other 
  users' calendars (provided you have the needed access rights ).
  
  calendar entry; An appointment or note you have saved in a calendar.
  
  diary database; Your calendar entries are saved in a diary database. 
  The database in XDiary consists of several files in a normal UNIX 
  directory (normally Diary in your home directory).
  
  entry tag; You can mark each entry (notes and appointments) with 
  a text tag (max 4 characters). When you search for entries, for example 
  in the summary window, you can use the tag as search item.
  
  included calendar; If you have access to several XDiary calendars, 
  you can select to include one or more calendars into the day view, 
  summary window, when you print a calendar etc. Entries from included 
  calendars are marked (the name is within (...)) or they have a different 
  color (in the day view). In the customize window, you can define 
  the calendars to include and the colors to use; see the chapter 'Customize'.
  
  MB1, MB2 and MB3; Mouse button one (left), two (middle) and three 
  (right). On a two-button mouse, you get MB2 by pressing MB1 and MB3 
  simultaneously.
  
  note; A note is a calendar entry with a date but without a time; 
  i.e. it is something that does not happen a certain time during the 
  day.
  
  private entry; Private entries are what the name says, private. If 
  you give other people access to your calendar(s), they will not be 
  able to read or change your private entries.
  
  repeated entry; Notes and appointments can be repeated, i.e. they 
  will re-appear at certain time intervals (twice a week, once a month, 
  every Wednesday etc).
  
  schedule; Your schedule is a view of all your appointments and notes 
  over one or more days. The schedule is displayed in the day view 
  window.
  
  sticky note; A sticky note is a normal note with a special characteristic; 
  it will continue to re-appear 'today' until you mark the note as 
  'done'.
  
  tear-off entry; If you have a repeated entry, you can "tear off" 
  one entry in a week. The entry you tear off is saved as a separate 
  entry and has nothing in common with the original repeated entry.
  

Starting XDiary
===============
  
  To start XDiary, you simply type
  
    $ xdiary
  
  in a terminal window (aixterm or xterm). XDiary will now start and 
  the main calendar window is displayed.
  
  If this is the first time you run XDiary, a window will be displayed 
  asking you if your personal XDiary calendar should be created. Confirm 
  by clicking on 'Ok' (to run XDiary, you MUST have a personal calendar 
  defined). The calendar is created in the Diary directory in your 
  home directory.
  
  When you start XDiary, you can select between several color palettes 
  and different fonts. You select colors and fonts with the following 
  flags:
  
    -palette gray   : Colors in gray (a cloudy day in Switzerland).
    -palette lila   : Colors in lila (a modern touch).
    -palette motif  : Motif colors (minimal set of colors, boring).
    -palette neon   : In the heat of the night... .
    -palette nordic : From the cold northern sky.
    -palette red    : Colors from Moscow.
    -palette sea    : Nice sand and sea colors.
    -palette sky    : High flying colors in blue and yellow. (default)
    -palette wood   : Colors from the green forest.
  
    -fmap large     : Large font size.
    -fmap medium    : Medium font size.
    -fmap small     : Small font size. (default)
  
  For example, to start XDiary with the 'wood' palette and with a large 
  font, use the command:
  
    $ xdiary -palette wood -fmap large
  
  To get some help, use the command:
  
    $ xdiary -usage
  
  XDiary is now ready to be used. The next part of the tour will teach 
  you the XDiary basics.
  

Calendar
========
  
  The calendar window is the main window in XDiary; if this window 
  is removed, XDiary will exit. This window displays your default calendar.
  
  

Window
======
  
  At the top of the window, you see today's date and the current time. 
  Below is the current month with the days of the months arranged in 
  weekly rows. The week numbers (W) are displayed to the left.
  
  The current day, 'today', is displayed in a different color and days 
  where you have entries defined are surrounded by a small 'box'. Sundays 
  and other holidays are marked in a different color.
  
  You can select to display an "extended" month, i.e. you will see 
  the days from the last and first weeks in the previous and next month.
  
  To display another month or year, click on the "tabs" to the right 
  or at the bottom of the calendar. If you click on the scroll buttons, 
  you flip to another set of year tabs. To return to the current month, 
  click on today's date.
  
  

Opening the day view
====================
  
  If you want to open a day view for a particular day, click (once) 
  on the date in the calendar and a day view window opens (the day 
  view window is described in the chapter 'Day view'). Depending on 
  the number of calendars you have included, this might take some time.
  
  If you already have a day view open, the day view will display the 
  day you clicked on. To open a second day view, keep the SHIFT key 
  down when you click on the date.
  

Menu bar
========
  
  In the menu bar, you have the 'File', 'Actions' and 'Help' selections.
  

File
====
  
  Open day view...; Displays a selection list with your defined calendars. 
  If you select a calendar name in the list, a day view for this calendar 
  is displayed. The day view window is described in the chapter 'Day 
  view'.
  
  If the calendar you want to display is not in the list, you can type 
  the name and location of the calendar in the 'Name' and 'Location' 
  field. If you do not know the location, you can select from pre-defined 
  calendars with 'Pick calendar...' or let XDiary 'guess' the location 
  with 'Guess location'. The pick and guess option must be customized 
  for your site to work.
  
  Active alarms...; A window is displayed with a list of your calendars. 
  After the calendar name, a label indicates if you will receive alarms 
  for the calendar (on) or not (off).
  
  To start / stop alarms for a calendar, click on the name in the list 
  and then on one of the 'On' or 'Off' buttons. After the action is 
  completed, the list is re-displayed.
  
  Print...; Opens the print window, see the chapter 'Print'.
  
  Exit; Exits XDiary.
  

Actions
=======
  
  Edit appointment...; Opens the appointment editor window, see the 
  chapter 'Appointment editor'.
  
  Set reminder...; Opens the reminder window, see the chapter 'Reminder'.
  
  Customize XDiary...; Displays the customize window, see the chapter 
  'Customize'.
  
  Show summary...; Displays the summary window, see the chapter 'Summary'.
  
  Make master plan...; Displays the Master plan window, see the chapter 
  'Master plan'.
  
  Send message...; Opens the window to send messages to other XDiary 
  users; see the chapter 'Messages'.
  
  Receive message...; Opens the window to read received messages; see 
  the chapter 'Messages'.
  
  Toggle extra days; Displays extra days from the previous and next 
  month.
  
  Refresh; Redisplays the calendar and day view windows. Do a redisplay 
  if you want to be sure your calendar and day view windows are up-to-date.
  
  Reread custom file; Reads the customize file ($HOME/XDiary.custom) 
  and updates the parameters and flags. Do this if you have changed 
  any 'General parameters' in the Customize window and want to activate 
  the changes.
  

Help
====
  
  Opens the help window; see the chapter 'On-line help'.
  

Day view
========
  
  The day view is the most important window in XDiary. In the day view, 
  you see today's and tomorrow's schedule and you can add, change and 
  remove appointments and notes.
  
  The title of the window contains the name of the (main) calendar 
  in the day view.
  
  

Display mode
============
  
  You appointments can be displayed in two modes, 'button mode' (default) 
  and 'list mode'.
  
  In button mode, you have a time scale to the left and the appointments 
  (displayed as buttons) are positioned according to their starting 
  time. The height of each appointment button corresponds to the duration 
  of the appointment. With the help of the 'Zoom' button, the distance 
  (in hours:minutes) between each tick in the time scale can be selected.
  
  In this mode, appointments may overlap and you might only see a small 
  part of an appointment. To help you control the 'stacking' order, 
  each appointment has a vertical marker displayed to the right. If 
  an appointment is covering another appointment, you can click on 
  the marker and the button will 'be lifted to the top'. Try it out, 
  it is easier when you see it.
  
  You can control the default stacking order for a single appointment 
  or for an included calendar. You can select that an appointment should 
  always be displayed in the background or in the foreground.
  
  To control the stacking order for a single entry, see the chapter 
  'Appointment editor'; for all entries in an included calendar, see 
  the chapter 'Customize'.
  
  In list mode, there is no time scale to the left since appointments 
  are displayed in a list (sorted in time order). The list mode offers 
  only a subset of the 'point-and-click' functions described below.
  

Window
======
  
  In the day view window, you will see three areas; the date area, 
  the schedule area and the navigation area.
  

Date area
=========
  
  The date area contains the dates for the days displayed. You can 
  change the start date by typing another date in the field 'Date range' 
  and pressing Enter. The new schedule is now displayed.
  

Schedule area
=============
  
  The schedule area displays your notes and appointments for one or 
  more days. If more than one day is displayed, use the scroll bar 
  at the bottom of the window to see the other days.
  
  The schedule area is divided into two panes; the top pane displays 
  your notes and the bottom pane your appointments. You can adjust 
  the size of the two panes with the 'pane sash' to the right (the 
  little rectangle on the divider).
  
  The name and date of the day is displayed on the top of the schedule 
  area and 'Today' is marked with a special color.
  

Navigation area
===============
  
  Use the navigation buttons to flip to next or previous day, week,month 
  or year. You can also type the starting date directly into the 'Date 
  range' field, see 'Date area' above.
  

Working with entries
====================
  

Selecting an entry
==================
  
  You can select any entry (note or appointment) by clicking (once) 
  on it with the mouse. If you click on an already selected entry, 
  the entry is unselected.
  
  If you double-click on an entry (note or appointment), the appointment 
  editor window (containing the entry) is displayed.
  

Adding a new entry
==================
  
  You add new entries in the appointment editor (select 'Edit appointment...' 
  in the 'Actions' menu).
  
  If your schedule is displayed in 'button mode', you can define a 
  new appointment with the help of the mouse as follows:
  
   * Move the mouse pointer to the time scale or to the appointments window 
     and place the pointer over the time when the appointment should start.
  
   * Press and keep down the left (MB1) mouse button.
  
   * Drag the mouse pointer (keep the left (MB1) button down) to the time 
     when the appointment should stop. When you move the mouse, a rectangle 
     is displayed showing the extent of the appointment and you also see 
     the start time and duration.
  
   * Release the left mouse button when you are satisfied. If you marked 
     the time in the time scale, you must now click on the day to select 
     the date for the new entry. The appointment editor window will now 
     be displayed and the date, start time and duration are filled in 
     automatically .
  

Changing an entry
=================
  
  To change an existing entry (note or appointment), double-click on 
  the entry and the appointment editor is displayed (with the entry 
  included).
  

Changing duration of an appointment
===================================
  
  You can change the duration in the 'Appointment editor', see above.
  
  If your schedule is displayed in 'button mode', you can change the 
  duration with the help of the mouse as follows:
  
   * Select the appointment to be changed (a selected entry is displayed 
     with a different background color) and keep the left (MB1) mouse 
     button down.
  
   * Move the mouse pointer to the new starting time. A box will show 
     the new duration of the appointment.
  
   * Release the left (MB1) mouse button when you are satisfied and a 
     confirmation window with the new duration will be displayed. Select 
     'Ok' to save the new duration or 'Cancel' to cancel the operation.
  

Moving / copying an entry to new day / time
===========================================
  
  To move or copy an entry to a new day or time, select the entry and 
  select 'Move' or 'Copy' from the 'Edit' menu. A window is displayed 
  where you can enter the new date and/or start time.
  
  You can also move an entry with the help of the mouse as follows:
  
   * Move the mouse pointer over the entry you want to move or copy.
  
   * Press and keep down the middle (MB2) mouse button. If you want to 
     copy the entry, keep the Shift key on the keyboard down.
  
   * Move the mouse pointer to the new date and time for the entry. When 
     you move the mouse, the new date is displayed and a rectangle follows 
     the mouse movements.
  
   * Release the middle (MB2) mouse button when you are satisfied and 
     a confirmation window with the new date and time will be displayed. 
     Select 'Ok' to save the entry or 'Cancel' to cancel the operation.
  

Deleting an entry
=================
  
  To remove an entry (note or appointment), select the entry and select 
  'Remove' from the 'Edit' menu.
  

Menu bar
========
  
  In the menu bar, you have the 'File', 'Edit', 'Controls', 'Actions' 
  and 'Help' selections.
  

File
====
  
  Open same; Opens a new day view window with the same calendar as 
  the current day view.
  
  New view...; Replaces the current calendar in the day view with a 
  new calendar. A window with your defined calendars is displayed and 
  you select the new calendar from the list.
  
  Print...; Opens the print window, see the chapter 'Print'.
  
  Upload...; Upload the calendar in the day view window to an external 
  system. See the chapter 'Upload/download' for more information.
  
  Download...; Download a calendar from an external system to the calendar 
  in the day view. See the chapter 'Upload/download' for more information.
  
  Close window; Closes the day view window.
  

Edit
====
  
  All the actions in the 'Edit' menu affect the selected entry. If 
  an entry is not selected, most actions in the menu are disabled. 
  For some entries, not all actions are valid. For example, you cannot 
  remove an entry in a read-only calendar.
  
  Many of the actions in the 'Edit' menu are also available from a 
  popup menu in the schedule area. To activate the popup menu, select 
  an entry and press and keep down the right mouse button (MB3). You 
  can now select the appropriate action from the menu.
  
  Edit; Opens the appointment editor with the selected entry.
  
  Delete; Removes the selected entry.
  
  Move; Moves the selected entry to a new date and/or time. In the 
  displayed window, fill in the new date and time, select the calendar 
  to save the entry in and confirm the action with 'Move'.
  
  Copy; Copies the selected entry to a new date and/or time. In the 
  displayed window, fill in the new date and time, select calendar 
  and confirm the action with 'Copy'.
  
  Duplicate; You can duplicate the selected entry. If you duplicate 
  an entry, you will be making a copy of the entry and the copy is 
  added to the days you have selected. You select the range of days 
  the entry should be duplicated, the valid days (e.g. you can select 
  not to insert the entry on Tuesdays and Wednesdays) and the calendar.
  
  Note! It is not possible to make an undo! If you duplicated the entry 
  to the wrong days or too many days, you must remove the entries by 
  hand! To make sure this does not happen, you must confirm the duplication 
  and the date range cannot exceed 31 days.
  
  Archive; You can archive any selected entry. An archive is a simple 
  text (ASCII) file and the entry is appended to this file. In the 
  customize window, you can define your archive files (see the chapter 
  'Customize').
  
  Select the archive file from the list or type another file name in 
  the 'File:' field. When you click on 'Ok', the entry is archived.
  
  Tear off...; If you have a repeated entry, you can select to "tear 
  off" one entry in a week. The entry you tear off is saved as a separate 
  entry and has nothing in common with the original repeated entry. 
  When you tear off an entry, you can select to hide the repeated entry 
  for the current week.
  
  When can this be useful? For example, you have a meeting every Wednesday. 
  One week, the meeting is moved to Tuesday. What do you do? Easy, 
  just select the actual week, mark the entry and select "Tear off" 
  from the Edit menu. Select a new date and/or time for the meeting 
  and hide the original repeated entry. That's all!
  
  Entry info; Displays information about the selected entry.
  
  Clipboard; You can copy the selected entry to the day view clipboard. 
  The entry in the clipboard can then be pasted into the same or another 
  day view. The clipboard is a convenient way to duplicate entries.
  
  Copy entry; Makes a copy of the selected entry and stores it in the 
  clipboard. The entry remains in the calendar.
  
  Cut entry; Copies the selected entry to the clipboard and removes 
  the entry from the calendar.
  
  Paste entry; Pastes the entry from the clipboard to the day view. 
  The clipboard is unchanged so you can make multiple pastes.
  

Controls
========
  
  Confirm actions; XDiary normally requires a confirmation when you 
  perform 'dangerous' actions such as deleting an entry, moving an 
  entry etc.
  
  Show overlapping; In button mode, appointments have a vertical marker 
  to the right of the appointment button. If you deselect the overlapping 
  mode, no markers are displayed.
  
  Display list layout; Toggles between 'list mode' and 'button mode'.
  
  Use grid; When you use the mouse to define and move entries, a grid 
  is used that allows you to make stepwise changes (e.g. every 15 min.). 
  If you deselect the grid, all movements are floating. Try it, it 
  is easier to understand when you see it!
  
  Display flags; For the entries in the day view, you can select to 
  see the flags for each entry. The flags displays attributes defined 
  for the entry, for example if alarms are active, if a note is done 
  etc.
  
  Display 'true' colors; For an entry, you can define foreground and 
  background colors. When entries from included calendars are displayed, 
  you can select to display the 'true' colors for the entries or they 
  can be displayed with the calendar colors.
  
  Display days...; The number of days displayed in the day view.
  
  Set day width...; The width (in pixels) of each day in the day view. 
  You can make each day as wide or narrow as you like.
  
  Filter...; Displays a window with the current filter. You can use 
  the filter to display selected entries like notes, notes not done, 
  or entries containing the word 'meeting'. See the chapter 'Filter' 
  for more information.
  
  Include calendar...; Allows you to select the calendars included 
  in the day view.
  
  Select hidden...; XDiary allows you to hide entries in the day view. 
  Once an entry is hidden, you cannot select and edit it anymore (you 
  will not see it). In the 'Select hidden' window, all entries will 
  displayed (also the hidden entries) and you can select the entry 
  you want to modify.
  

Actions
=======
  
  Edit appointment...; Opens the appointment editor window. If an entry 
  is selected, the entry is included in the appointment window.
  
  Show summary...:; Displays the summary window (see the chapter 'Summary').
  
  Send message...; Opens the window to send messages to other XDiary 
  users; see the chapter 'Messages'. If you have selected an entry, 
  the entry is inserted into the message window.
  
  Make master plan...; Displays the Master plan window, see the chapter 
  'Master plan'.
  
  Refresh; Refreshes the day view window.
  

Help
====
  
  Opens the help window; see the chapter 'On-line help'.
  

Appointment editor
==================
  
  In the appointment editor window, you add, change and remove notes 
  and appointments.
  
  

Window
======
  

When area
=========
  
  In the 'when area', you define date, time and duration for the entry. 
  You also select what kind of entry you want; appointment, repeated 
  appointment, note, repeated note or sticky note.
  

Flags area
==========
  
  The 'flags area' contains the flags you can set:
  
   * Reminder alarm; Displays alarms for this entry.
  
   * Important; Important entries are displayed with a different color 
     in the day view.
  
   * Done; Marks a note as 'Done'.
  
   * Private; Defines the entry as private. Private entries cannot be 
     read by other users even if they have read access to your calendar.
  

Entry tag and calendar
======================
  
  For each entry, you can define a tag consisting of up to four characters. 
  You can use the tag to identify or to classify certain entries. When 
  you display a calendar summary or print entries, you can use the 
  entry tag as selection criteria.
  
  The entry can be saved in any of the calendars where you have write 
  access. Select the appropriate calendar in the pulldown list.
  

Entry text
==========
  
  The text for an entry can be of any length but it is recommended 
  to keep the lines shorter than 65 characters; the entry will look 
  better when you print it.
  

Actions
=======
  
  Use the following action buttons to:
  
  Ok; Saves the current entry and closes the window.
  
  Apply; Saves the current entry but keeps the window open.
  
  Cancel; Discards the entry and closes the window.
  

Menu bar
========
  
  In the menu bar, you have the 'File' and 'Help' selections.
  

File
====
  
  Include a file...; Includes a text file into the entry text. A standard 
  file selection window is displayed and you can pick the file to include.
  
  Close window; Closes the appointment editor window (all changes are 
  discarded).
  

Help
====
  
  Opens the help window; see the chapter 'On-line help'.
  

Alarms...
=========
  
  In the alarms window, you control the alarms defined for the appointment 
  (notes cannot have alarms).
  

Alarms
======
  
  You can have up to 5 alarms for each appointment (notes cannot have 
  alarms) and each alarm can sound up to seven days before or after 
  the appointment time. The alarm time is given in days, hours and 
  minutes (days hours:minutes) before or after the appointment time. 
  If you want to remove an alarm, leave the alarm time field blank.
  

Tunes
=====
  
  When the alarm sounds, you can select the tune to play. Use the 'Play 
  melody' button to get a sample of the various melodies.
  

Alarm action
============
  
  Alarm actions are only for 'advanced users'.
  
  When an alarm sounds, you can let XDiary run a shell script. The 
  shell script is a standard UNIX shell script (ksh, bsh or csh) and 
  can be of two kinds:
  
   * A normal shell script file. The name of the file is defined with 
     the X Windows resource 'XDiary*launchDefScript'. The shell script 
     receives the following parameters: 
       Entry tag
       Entry date
       Entry time
       Entry text
     In the XDiary distribution, check the file Xdiary/actionScript.Templ 
     for an example of a shell script you can use.
  
   * Use the entry text as shell script. The entry text is interpreted 
     as a shell script, i.e. sent to the shell as standard input. The 
     kind of shell interpreter used is defined with the X Windows resource 
     'XDiary*launchUseShell'. The default shell is /bin/sh.
  

Preferences...
==============
  
  For each entry, you can define further preferences.
  

Lines per entry
===============
  
  The number of lines of the entry text displayed in the day view or 
  alarm window.
  

Entry color
===========
  
  You are free to select the background and foreground color for the 
  appointment (when displayed in the day view). Use the 'Color sample' 
  label to select a nice combination of colors.
  

Hide entry
==========
  
  You might want to hide some of your entries, for example if you have 
  a standing entry every day at 5 pm. reminding you to go home. This 
  entry should not be visible in the calendar or the day view. You 
  can select to hide the entry in the following windows:
  
   * Calendar
  
   * Day view
  
   * Summary window
  
   * Print window
  
   * Alarm window
  
   * Dump output
  

Access control
==============
  
  You can control if only the owner is allowed to change or delete 
  an entry. Default is that all users with write access to a calendar 
  can change or delete all entries.
  

Stacking order
==============
  
  When appointments are displayed in the day view window, some appointments 
  might overlap. For each appointment, you can select if the appointment 
  should always be kept in the background or in the foreground.
  

When..
======
  
  If your appointment or note is a repeated entry (or a sticky note), 
  you can define when the entry is valid. You have a large selection 
  of possibilities; so many that it might be confusing! If you do not 
  really understand the description, just try it out!
  

Repeat when
===========
  
  In this window, you define when a repeated entry is valid.
  
  Valid between:
  First, a repeated entry can be valid all dates, from a specific date, 
  to a specific date or both. Fill the dates the entry is valid.
  
  Valid days:
  You can select which days in the week that are valid, select one 
  or more weekdays. It is also possible to select every nth weekday 
  in a month. You can pick the first, second or third time the day 
  occur in the month (counted from the beginning or from the end).
  
  Entry interval:
  If you have entries that occur with a certain interval, you can select 
  the interval and the steps (day, week, month, last in month and year).
  
  Non-workdays:
  If a repeated entry occurs on a non-workday (weekend or holiday), 
  you can keep the entry, skip the day or move the entry to the previous 
  or next workday.
  

Skip weeks
==========
  
  In the 'Skip weeks' window, you can mark the weeks not valid for 
  a repeated entry. You can select one or more weeks. Remember that 
  if you skip a week this year, the same week will be skipped all years!
  

My editor
=========
  
  If you do not like the rather limited editing capabilities offered 
  by the standard text input window, you can call your own editor. 
  Click on the 'My editor' button and a new window will open with your 
  favorite editor. When you have finished editing, save the file and 
  exit the editor. You will now see the new text in the text input 
  window.
  
  The standard editor called is 'vi' (the standard UNIX editor but 
  in my opinion 'the editor from hell'). To select a better editor 
  (for example Emacs!), change the X-Windows resource 'userEditor' 
  to:
  
    XDiary*userEditor:  emacs %s
  
  in your $HOME/.Xdefaults file (the %s will be replaced with a temporary 
  file name).
  

Display day view
================
  
  If you click on this button, the day view for this day is displayed.
  

Master plan
===========
  
  The primary use for XDiary is as your personal calendar and as such,it 
  does it's job well. But this is just one side of XDiary, there is 
  also another quite interesting side, XDiary as a group calendar. 
  After you have configured as a group calendar, you can very easy 
  access other users calendars.
  
  When you use XDiary as a group calendar, you will (of course) want 
  XDiary to assist you when you plan meetings and this is just what 
  the 'Master plan' window does!
  
  The Master plan window displays the times that are blocked out for 
  one or more users a week at a time. To plan a meeting, you proceed 
  as follows:
  
   * Select the participants in the meeting by clicking on the appropriate 
     calendars or groups.
  
   * Select the week when the meeting should take place.
  
   * The schedule window will now show the times that are free and you 
     can pick a time that suites you.
  
   * With the XDiary message facility, you can then send an agenda to 
     the participants.
  
  Sounds easy, doesn't it? Try it out!
  
  

Window
======
  
  The Master plan window contains the following:
  

Date area
=========
  
  Here you select the week that is displayed.
  

Schedule area
=============
  
  In the schedule area, the times that are blocked out by the participants 
  are displayed. As you add or remove participants, the schedule is 
  updated.
  
  The schedule displays a week at a time and you can easily switch 
  between weeks.
  
  For performance reasons, the schedule is "cached", i.e. for each 
  calendar, the schedule is read once and every time a week is displayed. 
  You can at any time click on the 'Refresh' button to get the latest 
  information from the selected calendars.
  

Participants
============
  
  You pick the calendars and groups to include in the schedule window. 
  The schedule window is only updated when you click on the 'Apply' 
  button (this can be changed with Controls -> Instant update).
  

Menu bar
========
  
  In the menu bar, you have the 'File', 'Controls', 'Actions' and 'Help' 
  selections.
  

File
====
  
  Close window; Closes the Master plan window.
  

Controls
========
  
  Instant update; When you select or deselect calendars and groups, 
  the schedule is not updated until you click on 'Apply'. If you select 
  instant update, the changes are displayed immediately.
  

Actions
=======
  
  Send message; Sends an XDiary message to the participants. You can 
  also do this by clicking with the mouse on the desired day name.
  
  Refresh; Redisplays the schedule.
  

Help
====
  
  Opens the help window; see the chapter 'On-line help'.
  

Summary
=======
  
  The summary window displays a summary (what else?) of your calendar. 
  You can select the date range, the calendars to include and you can 
  also use a filter to select specific entries and notes.
  
  

Window
======
  
  In the title of the window, you see the calendar currently used. 
  In the calendar field, you can select any of your calendars.
  
  You select between which dates the summary should be displayed. The 
  date range cannot exceed a year (366 days).
  
  In the 'No of lines' field, you enter the number of lines to display 
  for each entry in the summary window.
  

Actions
=======
  
  Use the following action buttons to:
  
  Apply; Displays the summary for the dates given.
  
  Print...; Opens the print window and uses the dates, filter and included 
  calendars as default values; see the chapter 'Print'.
  
  Filter...; Displays a window with the current filter. You can use 
  the filter to display selected entries like notes, notes not done 
  or entries containing the word 'meeting'. See the chapter 'Filter' 
  for more information.
  
  Close; Closes the summary window.
  

Menu bar
========
  
  In the menu bar, you have the 'File', 'Controls' and 'Help' selections.
  

File
====
  
  Close window; Closes the summary window.
  

Controls
========
  
  Display flags; For the entries in the summary window, you can select 
  to display the flags for each entry. The flags display attributes 
  defined for the entry, for example if alarms are active, if a note 
  is done etc.
  
  Filter...; Displays a window with the current filter. You can use 
  the filter to display selected entries like notes, notes not done, 
  or entries containing the word 'meeting'. See the chapter 'Filter' 
  for more information.
  
  Include calendar...; Allows you to select the calendars included 
  in the summary.
  

Help
====
  
  Opens the help window; see the chapter 'On-line help'.
  

Print
=====
  
  In the print window, you can print selected entries from a calendar. 
  You can select between which dates to print, calendars to include, 
  printer, printer type (ASCII or PostScript), style and paper format.
  
  The title of the window contains the main calendar used.
  
  

Window
======
  
  In the list of printers, select a suitable printer. If the printer 
  you want to use is not in the list, enter the name of the printer 
  in the 'Printer' field. You must also select a printer type (ASCII 
  or PostScript).
  
  If you have the environment variable PRINTER defined, the 'Printer' 
  field contains your default printer. For a description of how to 
  add your own printers to the printer list, see the chapter 'Private 
  printers'.
  
  You select between which dates the entries should be printed. The 
  date range cannot exceed a year (366 days).
  
  In the 'No of lines' field, you enter the number of lines to print 
  for each entry. If this field is empty, all lines in the entry text 
  will be printed.
  
  You can use any of the styles available if you have selected a PostScript 
  printer. If you are using an ASCII printer, the styles are not used; 
  instead a simple ASCII printout will be generated. The different 
  styles you can use are described in the help window (Help -> On window).
  
  If you have selected a PostScript printer, you can select any of 
  the paper formats given. If you selected an ASCII printer, the paper 
  format of the printer will be used.
  
  For PostScript printer output, you can select to print only workdays 
  (Monday - Friday) and also to use the very fancy 3D-look.
  
  The output can be sent to the printer, saved in a file or both. If 
  the output is saved in a file, the name of the file is XDiary.out 
  in your home directory ($HOME/XDiary.out).
  

Actions
=======
  
  Print; Prints the selected entries.
  
  Filter...; Displays a window with the current filter. You can use 
  the filter to print selected entries like notes, notes not done, 
  or entries containing the word 'meeting'. See the chapter 'Filter' 
  for more information.
  
  Close; Closes the print window.
  

Menu bar
========
  
  In the menu bar, you have the 'File', 'Controls' and 'Help' selections.
  

File
====
  
  Close window; Closes the print window.
  

Controls
========
  
  Filter...; Displays a window with the current filter. You can use 
  the filter to print selected entries like notes, notes not done, 
  or entries containing the word 'meeting'. See the chapter 'Filter' 
  for more information.
  
  Include calendar...; Allows you to select the calendars included 
  in the printout.
  

Help
====
  
  Opens the help window; see the chapter 'On-line help'.
  

Filter
======
  
  In some windows, for example the day view or the summary window, 
  you can define a filter. If you define a filter, only a sub-set of 
  the entries will be shown.
  
  When you define the filter, you can select the type of entries you 
  want to see, you can search for a text string within the entry text 
  and you can select entries which contain one or more tags.
  
  

Type of entry
=============
  
  You can select if you want to search for appointments, notes or both.
  
  Among the different entries (appointments and/or notes) selected, 
  search for entries with one or more of the following defined:
  
   * Reminder alarm.
  
   * Important.
  
   * Private.
  
   * Note is done
  
   * Note is not done.
  
   * Repeated entry.
  
   * Sticky note.
  
  For example, to search for all private notes that are marked as done, 
  select the following:
  
    Note, Private and Note done.
  

Search string
=============
  
  You can search for a text string within the entry text. If you select 
  the flag 'Case sensitive', a case sensitive search is done.
  

Search tag
==========
  
  You can search for entries containing one or more tags. If you select 
  the flag 'Case sensitive', a case sensitive search is done.
  
  It is possible to search for multiple tags, just enter the tags you 
  want to search for separated by a space. During the search operation, 
  then tag for an entry is compared to the tags you are looking for, 
  for example, the tag 'Meet' is compared to the searched tags 'Meet 
  Imp Conf'. If a match is found, the entry will be displayed.
  

Messages
========
  
  In XDiary, you can send entries (appointments and notes) as messages 
  to XDiary users or as mail to other users. This is a convenient way 
  to distribute invitations to meetings etc.
  
  A message consists of two parts; a remark (which can be any text) 
  and a calendar entry (note or appointment). If you receive a message 
  from another XDiary user, you can directly transfer the message to 
  a calendar you select.
  
  When you receive messages, you see the message symbol (a small envelope) 
  up to the right in the main calendar window. If you click on the 
  message symbol, the message selection window is opened. The message 
  symbol is displayed as long as you have messages in the XDiary mail 
  box.
  
  To read XDiary messages you receive; see the chapter 'Message selection'. 
  If you want to send an entry as XDiary message or mail, see the chapter 
  'Sending a message'.
  
  

Message selection
=================
  
  The message selection window shows the messages you have left in 
  your XDiary mailbox. If you do not discard or save received messages 
  in a calendar, the messages stay in your XDiary mailbox.
  
  

Actions
=======
  
  If you have one or more messages in the selection window, select 
  the message and one of the following actions:
  
  Read; Opens a window where the selected message is displayed; see 
  the chapter 'Reading a message'.
  
  Remove; Removes the selected message. If you do not remove the message, 
  it will always appear in the selection window (even if you have saved 
  the message).
  
  You can also select one of the following actions:
  
  Redisplay; Checks if you have received any new messages.
  
  Close; Closes the selection window.
  

Reading a message
=================
  
  You read messages you have received by selecting a message in the 
  message select window and clicking on the 'Read' button. The read 
  message window containing the message is now displayed.
  
  The message is displayed in a scrollable text window. The following 
  information is displayed for the message:
  
   * message originator
  
   * remark attached to the message
  
   * date, time and duration for the appointment or note
  
   * the message text
  
  

Actions
=======
  
  With the message, you can do the following:
  
  Save; Saves the message in one of your calendars. The 'Appointment 
  editor' window is displayed and the date, time, duration and the 
  message text is inserted. You can now save the entry in any of the 
  calendars where you have write access.
  
  Answer; Sends a reply to the message you are reading. The reply is 
  sent to the originator of the message and you can include a remark 
  with the answer. In the 'Answer window', add any text to the remark 
  field and click on 'Send' to send the answer.
  
  Close; Closes the message window (no action is taken).
  

Sending a message
=================
  
  In the 'Send message' window, you compose your messages. If you select 
  'Send message...' from the day view and you have an entry selected, 
  the entry will be used as a message template.
  
  To send a message, you will be using two windows; the 'Message Recipients' 
  window and the 'Compose Message' window.
  
  

Message recipients
==================
  
  First you need to select the recipients of your message. A recipient 
  can be another XDiary calendar, a group containing XDiary calendars 
  and/or mail addresses or a mail address. When you send messages directly 
  to a calendar, the owner of the calendar can take your message and 
  insert it directly into an appropriate calendar.
  
  The 'Recipient list' will contain your selected recipients. The list 
  'Calendars' contains the calendars you know of (defined in the Customize 
  window) and the list 'Groups' includes the groups you have defined 
  (also in the Customize window).
  
  To add a recipient, select a recipient from the calendar list or 
  from the group list. You can also enter a calendar or a mail address 
  in the 'Calendar/Mail address' field. When you have made your selection, 
  click on the 'Add recipient' button. Your selections will now be 
  added to the 'Recipient list'.
  
  If you enter a calendar or mail address in the 'Calendar/Mail address' 
  field, XDiary tries to 'guess' (is it a calendar or mail address) 
  what you have entered.
  
  If you want to remove a recipients from 'Recipient list', select 
  the recipient and click on the 'Remove' button. To remove all recipients, 
  click on the 'Clear' button.
  
  When you have entered all the recipients, it is time to compose the 
  message. To do this, click on the 'Compose msg' button.
  

Composing the message
=====================
  
  In the 'Compose Message' window, you write your message. If you had 
  an entry selected in the day view when you selected 'Send message', 
  the window will now contain the entry.
  
  You can attach a remark to your message. The remark can be something 
  like 'Don't forget...' or 'Have you made the reservation?'. 
  

When and how
============
  
  You can enter the date, time and duration for the entry you send.
  
  You can also define how the message should be sent. Normally, XDiary 
  tries to send messages as XDiary messages. If this fails (the calendar 
  does not exist, you do not have access to the calendar, etc.), a 
  mail is sent instead. With the following flags, you can change this 
  behavior:
  
   * Only mail; Send the message as mail (only) to all recipients.
  
   * Mail if fail; Try to send the message as mail if it cannot be sent 
     directly to a calendar. If this flag is not set and the message could 
     not be sent to a calendar, an error message is displayed.
  

Text
====
  
  This is the 'real' entry text. The text follows the same rules as 
  the text for a normal note or appointment. If you send the message 
  as mail, the mail system you use might impose some restrictions (for 
  example, 8-bit characters cannot be sent).
  

Actions
=======
  
  Send; Once you have completed the necessary fields, click on the 
  'Send' button to send the message.
  
  Close; Closes the window and discards any changes you have made.
  

Reminders
=========
  
  Reminders are a kind of light-weight alarms that are volatile, i.e. 
  they disappear when you exit XDiary. Reminders are not saved in any 
  calendar, they are kept entirely in the computer memory.
  
  

Reminder selection
==================
  
  The reminder window consists of two parts. The top part is a reminder 
  selector. You can have up to 5 reminders defined and you select the 
  reminder you want to define or look at by clicking on the appropriate 
  button (1-5).
  

Reminder definition
===================
  
  The lower part of the window contains the definitions for a single 
  reminder. The two sliders (one for the hour and one for the minute) 
  display the time for the reminder to go off. You can also enter the 
  time directly. The 'Active' button indicates if the reminder is active 
  or not. You can activate or deactivate a reminder by clicking on 
  this button.
  
  You can enter any text in the text entry window. Normally, you should 
  keep the text short since reminders are not saved. The text you enter 
  will be visible in the reminder alarm window.
  

Reminder Actions
================
  
  Close; Closes the reminder window.
  
  Reset; Resets the reminder you are editing to the default values 
  (not active, the time selected is 'now' and the text window is cleared).
  

Alarms
======
  
  For your appointments you can select to have alarms defined up to 
  seven days before or after the appointment time. For each appointment, 
  you can define up to five alarms. When the alarm time occurs, an 
  alarm window is displayed on the screen and a tune is played.
  
  The alarm window contains the starting lines of the appointment text. 
  When you add an appointment, you can define the number of lines to 
  display and the tune to play.
  
  

Actions
=======
  
  Confirm; Confirms the alarm and removes the alarm window from the 
  screen. If you press the Shift key the same time you click on the 
  'Confirm' button, all alarm windows on the screen are confirmed. 
  This can be handy if you have many alarm windows on the screen.
  
  No more; Confirms the alarm and removes the alarm window from the 
  screen. If there are more alarms defined for this entry, the following 
  alarms will not be displayed.
  
  Repeat; Repeats the alarm within n minutes. See the chapter 'Repeating 
  alarms'.
  
  View; Displays the appointment in a separate window.
  
  Remove; Removes the entry from the calendar.
  

Repeating alarms
================
  
  When the alarm window is displayed, you can select to repeat the 
  alarm within n minutes. Select the number of minutes and confirm 
  with the 'Ok' button.
  
  Note! If you remove an appointment for which you have selected alarms 
  to be repeated, the alarms will be discarded.!
  

On-line help
============
  
  XDiary includes a complete on-line help system which contains all 
  the XDiary manuals on-line. In the help window, you can browse the 
  XDiary manuals, search for key words etc.
  
  The help window contains two sub-windows; the text window where the 
  manual text is written and the topics window. In the topics window, 
  you choose the topic to display in the text window.
  
  

Navigation
==========
  
  The on-line documentation has the structure of a several books with 
  chapters, sub-chapters and text. In the topics window, you click 
  on the chapter heading and the sub-chapters or the chapter text is 
  displayed in the text window.
  
  To move back to the previous chapter, click on 'Back'. If you want 
  to move to the first chapter in the book, select 'Navigate -> Top' 
  in the menu bar.
  
  You can display the table of contents ('Contents'), search in the 
  help text ('Search') or print selected parts of the book ('Print').
  
  If you want to select another book, click on 'Library' or select 
  'Navigate -> Library' in the menu bar. In the window displayed, you 
  can now select the book you want to read.
  

Books
=====
  
  The XDiary on-line documentation contains several books. A book is 
  a collection of related articles, for example installation notes 
  or tutorial. To select another book, click on 'Library' or select 
  'Navigate -> Library' in the menu bar.
  
  In the list of books, select the book you want to read and confirm 
  with 'Ok'. In the help window, the first chapter of your selected 
  book is now displayed.
  

Search
======
  
  In the search window, you can search for any text string in the on-line 
  documentation.
  
  Enter your search string in the 'Search for' field and select if 
  you want to search just the chapter titles, the text or both. You 
  can also select if you want to search in all books or the current 
  book. To start the search, click on the 'Search' button. The search 
  might take some time, so be patient.
  
  When the search has completed, the chapters containing the search 
  string are displayed in the 'Result' list. Click on the chapter line 
  and the chapter is displayed in the text window. You can also use 
  the 'Next' and 'Previous' buttons to move forward or backward.
  

Contents
========
  
  To display the table of contents for the book you are reading, click 
  on 'Contents'. The table of contents is now displayed and you can 
  click on the chapter you want to read.
  

Print
=====
  
  You can print selected parts of the book you are reading. In the 
  print window, select the printer, what you want to print (section, 
  chapter or the complete book) and if the output should be sent to 
  the printer or be saved in a file.
  

Customize
=========
  
  In the customize window, you can customize much of the behavior of 
  XDiary to suit your needs. You can also add additional calendars 
  and change the setup of existing calendars. The definition of groups 
  (to be used with XDiary messages) is done here as well.
  
  In the Customize window, click on one of the following buttons:
  
  
  Calendars...; Add, change and remove calendars from your view.
  
  Message groups...; Add, change and remove message groups.
  
  General parameters...; Customize parameters controlling the general 
  behavior of XDiary.
  
  Archives...; Add and change archive files.
  
  Access control...; Control access to your calendars.
  
  Your customize data is saved in the file XDiary.custom in your home 
  directory ($HOME/XDiary.custom).
  

Parameter window
================
  
  You change many of the XDiary parameters in a 'Parameter window'. 
  This window offers a standardized interface and allows you to modify 
  many types of parameters, for example integers, colors, strings and 
  dates.
  
  The window contains three parts; the parameter list, the help window 
  and the parameter value section.
  
  The parameter list is a list of all the parameters you can modify. 
  You select the parameter you want to look at or change by clicking 
  on the parameter in the list.
  
  In the help window, a description of the selected parameter is displayed.
  
  You modify the value of the parameter in the value section. Depending 
  on the type of the parameter (integer, text, date, etc.), the value 
  is displayed as a slider, text field, menu selection etc.
  

Actions
=======
  
  Ok; Saves the parameters and closes the window.
  
  Reset; Resets the parameters to their values they had when the parameter 
  window was opened.
  
  Defaults; Resets the parameters to their default values.
  
  Cancel; Closes the window (the parameters are not saved).
  

Calendars...
============
  
  XDiary allows you to have multiple calendars and you can also access 
  calendars that belong to other users.
  
  Before you can access a calendar that belongs to another user, it 
  must be known to XDiary. For each calendar you want to access, you 
  must give it a name and define the location. Now, XDiary can access 
  the calendar and you can look at it or change its contents (provided 
  you have the necessary access privileges).
  
  The 'Calendar' list shows the calendars you know of. There should 
  be at least one calendar in the list, your default calendar. For 
  each calendar, the name, access permissions, flags and the location 
  is displayed.
  
  The access permissions can have the values 'r' for read, 'w' for 
  write and 'rw' for read-write access.
  

Name and location
=================
  
  Each calendar has a name and a location. The name is any name you 
  choose (the name must be shorter than 15 characters). If you add 
  a calendar that belongs to another user, it is recommended that the 
  name of the calendar is the same as the login name of this user (for 
  example, rbl or steve).
  
  The location of a calendar tells XDiary where the calendar data can 
  be found. The location is a standard UNIX directory name, for example 
  /u/rbl/Diary or /zurich/ztalk/Gen. It is recommended that user calendars 
  are saved in the directory $HOME/Diary. If you follow this standard, 
  other users can more easily find your calendar.
  
  To be able to access another calendar, the owner of the calendar 
  must grant you access. You control access to a calendar in the 'Access 
  control window'; see the chapter 'Access control'.
  

Adding a new calendar
=====================
  
  You can add a new calendar by typing the name of the calendar in 
  the 'Name' field and the location in the 'Location' field. When you 
  have entered the information, click on the Add button. The calendar 
  is now added to the calendar list.
  
  If you don't know the location for a calendar, click on the 'Pick 
  calendar' button. If XDiary at your site is configured to include 
  an XDiary directory, you can select one of the calendars listed. 
  You can also let XDiary 'guess' the location of the calendar. To 
  do this, click on the 'Guess location' button.
  
  If the new calendar does not exist (the location is wrong or you 
  do not have access to the calendar), you get a warning message and 
  the access is displayed as -- for the calendar.
  
  If the calendar you added does exist and you can access the calendar, 
  the parameter window for the calendar is displayed. Check the parameters 
  and make any changes you like.
  
  If you add a new calendar that should belong to you, use the program:
  
    $ xdinitdb <location>
  
  For example, to add the calendar /u/rbl/FamDiary,use the command:
  
    $ xdinitdb /u/rbl/FamDiary
  
  and follow the instructions you get. You can do this before or after 
  you add the calendar in the customize window. It is recommended that 
  you use the xdinitdb command before you add the calendar in the customize 
  window.
  

Changing and removing a calendar
================================
  
  To change or remove a calendar, select the calendar in the list. 
  To remove the calendar, click on the 'Remove' button.
  
  To change a calendar, change the location field or click on the 'Parameters...' 
  button to change the parameters for the calendar.
  
  If you want to add or change the calendars to include, click on the 
  'Include...' button.
  

Include
=======
  
  In the include window, you can select the calendars to be included 
  in the current calendar.
  
  An included calendar is merged with the current calendar. For example, 
  in the day view, you see entries from the current calendar and the 
  included calendars.
  
  For performance reasons, it is recommended that you include only 
  the calendars you need most of the time.
  

Message groups...
=================
  
  If you want to use XDiary messages (see the chapter 'Messages'), 
  you will find it practical to define groups. A group is a collection 
  of one or more calendar names or mail addresses. If you have defined 
  groups, you can just select the group as recipient instead of selecting 
  individual calendar names and mail addresses.
  

Adding a new group
==================
  
  Type the name of the group in the 'Name' field and list the group 
  members in the 'Members' field. You should separate group members 
  with a space or a new line. There is no limit of the numbers of members 
  you can have in a group.
  
  To add the new group, click on the 'Add/Change' button. The new group 
  is now inserted in the group list.
  

Changing and deleting a group
=============================
  
  To remove a group, select the group in the list and click on the 
  'Remove' button.
  
  To change the members in a group, select the group in the list. The 
  'Name' and 'Members' are now filled in with the current values for 
  the group. Make the changes in the 'Members' field and click on 'Add/Change' 
  to save the changes.
  

General parameters...
=====================
  
  If you click on the 'General parameters...' button, a window where 
  you can define additional parameters is displayed. The window is 
  a standard parameter window; see the chapter 'Parameter window' for 
  a description of what you can do in this window.
  

Archives...
===========
  
  In XDiary, you can archive entries (you do this in the day view). 
  An archive is a simple text (ASCII) file. You can have as many archives 
  as you like (for example, one archive file for each quarter of the 
  year).
  
  If you click on the 'Archives...' button, the archive management 
  window is displayed. In this window, you can add, change and remove 
  archive definitions. Note that any changes you make do not affect 
  the real archive files. For example, if you remove an archive, the 
  file containing the archive is not removed.
  

Adding an archive
=================
  
  Type the name of the archive in the 'Name' field and the name of 
  the file to use as archive in the 'File' field. Click on the 'Add/Change' 
  button and the archive is inserted in the archive list.
  

Changing and deleting an archive
================================
  
  Select the archive you want to change or remove from the archive 
  list.
  
  To remove the archive, click on the 'Remove' button.
  
  If you want to change the file, type in the new file name and click 
  on the 'Add/Change' button. The changed archive is now inserted in 
  the archive list.
  

Access control...
=================
  
  See the chapter 'Access control'.
  

Access control
==============
  
  You can grant other users access to the calendars you 'own'. When 
  you create a new calendar, no access is allowed for other users than 
  the owner. 
  
  To be able to use access control in a standard UNIX or NFS environment, 
  XDiary must be installed to support group calendars (see the XDiary 
  installation guide how to do this). With AFS (Andrew File System), 
  no special installation is necessary.
  
  

Access rights
=============
  
  For a user or a group of users, you set one or more of the following 
  access rights:
  
   * Read; Allows other users to read your calendar. Your private entries 
     cannot be accessed.
  
   * Write; Allows other users to read and write entries in your calendar. 
     Your private entries cannot be accessed.
  
   * Message; Allows other users to send you XDiary messages.
  
  XDiary uses access control lists (ACL) to determine the kind of access 
  a user has to a calendar. An ACL is a simple list of users-access 
  rights pairs, for example:
  
    rbl    read message   
    john   read write message   
    *      message
  
  The list is read from to to bottom and the first match is used. For 
  example, 'rbl' gets read and message access but the user 'mary' gets 
  only message access. You can use a '*' to match any user/group.
  
  Note that the order of the users in the list is important since the 
  first match is used. If the list above looked like this:
  
    *      message 
    rbl    read message 
    john   read write message
  
  'rbl' would only get message access since * matches all users.
  

Selecting calendar
==================
  
  Select the calendar for which you want to change the access rights. 
  You can only change access for calendars that belong to you.
  

Changing access rights
======================
  
  Depending on if you use a standard UNIX/NFS file system or AFS (Andrew 
  File System), different access control windows are used. The differences 
  are described below.
  

Adding a new access entry
=========================
  
  To add access rights for a user or group, type the user and group 
  name in the 'User' and 'Group' field and select one or more of the 
  access right flags (read, write or message). You can also select 
  the position of the entry in the ACL (see the chapter 'Access rights'). 
  If the position field is empty, the new entry is added at the top.
  

Changing and deleting an access entry
=====================================
  
  Select the entry to change or remove.
  
  If you want to make changes, change the user or group fields and 
  the access right flags. When you are satisfied, click on the 'Add/Change' 
  button.
  
  To remove an entry, click on the 'Remove' button.
  

UNIX/NFS
========
  
  In a UNIX/NFS file system, you control access for users and groups. 
  You can use an asterisk (*) as a wild card, i.e. it will match all 
  users or groups. If the user or group you enter does not exist, an 
  error message is displayed.
  

AFS
===
  
  In the Andrew File System (AFS), you grant access to users or groups 
  authorized within your AFS cell. An AFS user or group is a single 
  entry, for example 'rbl' (user) or 'g-dcs:members' (group). There 
  is no wild card but you can use 'system:authuser' for all authorized 
  users in your cell and 'system:anyuser' for 'any user' (need not 
  be authorized within your cell).
  
  The access rights you define (read, write and message) are translated 
  to 'real' AFS ACLs which are applied to the appropriate directories. 
  You should not set the ACLs yourself on the XDiary directories (with 
  the 'fs setacl' command).
  

Actions
=======
  
  Ok; Saves the access rights you defined and closes the window.
  
  Cancel; Discards all changes you have made and closes the window.
  

Upload / download
=================
  
  Sometimes you might it find useful to let XDiary interact with other 
  calendar systems or programs. For example, you have a pocket computer 
  which has a built-in calendar application. Of course, it would be 
  nice if you could download the contents of your XDiary calendar to 
  the pocket computer. This is when you use the upload and download 
  facility in XDiary.
  
  Since XDiary cannot know what should really happen when a calendar 
  is down or uploaded, there are a couple of "hooks" built into XDiary:
  
   * You can use the program 'xddump' and 'xdrestore' to dump or load 
     entries into XDiary.
  
   * You can mark a calendar as external in the Customize window. Here 
     you can provide parameters like external host, user ID on that
     host,password etc.
  
   * In the day view, you can open an Upload/download window that allows 
     you to fetch the contents of an external calendar or send the current 
     calendar to an external host.
  
  The Upload/download window takes the parameters you have defined 
  for the calendar in the Customize window but you are free to change 
  any of the parameters.
  

Script
======
  
  If you select 'Upload' or 'Download', a script (that you provide) 
  will be called with the following parameters:
  
  direction   - The strings 'upload' or 'download'
  calendar    - The name of the current calendar in the
                day view.
  calendarDir - The directory for the current calendar in
                the day view.
  host        - Communicate with this host machine.
  uid         - Use this user ID on the remote host.
  password    - Use this password on the remote host.
  connType    - Type of connection we are using.
  
  The shell script is the responsible to do the desired action (upload 
  or download) and to use the supplied parameters. It is left as "an 
  exercise for the interested XDiary user" to write the shell scripts 
  for upload and download, good luck!
  
  N o t e!
  
  You have the possibility to define a password to be used for the 
  upload/download operation and this password can also be save in your
  $HOME/XDiary.custom file. The password will not be saved in clear text
  but you must make sure that the file $HOME/XDiary.custom file cannot
  be read by anyone except you!
  
  

Change notification
===================
  
  If you use XDiary as a group calendar and you use calendars, it can 
  be nice to get notifications when one of the calendars changes. To 
  do this, you can use the tool 'xdnotify'. 'xdnotify' will watch calendars 
  with the parameter 'Notify when changed' set.
  
  You can set this parameter for selected calendars in the customize 
  window. Select the calendar and set the calendar parameter 'Notify 
  when changed' to Yes.
  
  See also the documentation for the tool 'xdnotify'.
  
  

User customization
==================
  
  You as an XDiary user can customize XDiary to suit your needs. XDiary 
  can be customized in two ways:
  
  Customize window: Here you interactively change the parameters
  controlling the behavior of XDiary. The parameters are saved in the
  file $HOME/XDiary.custom. This is an ASCII file and you can change it
  with a normal text editor (even if this is not recommended).
  
  X Windows resources: The standard way to customize Motif/X Windows 
  applications is through resources. Even if it is not difficult to 
  make changes in the resource files, it is still recommended only 
  for 'advanced' users.
  
  

Resource files
==============
  
  The standard way to customize Motif/X Windows program is through 
  resource files. A resource file is a text file containing key/value 
  pairs. The keys are given by the application and you as a user is 
  free to change the resource values.
  
  Motif/X Windows looks for resource files in various locations, see 
  appropriate X Windows documentation for more information.
  
  XDiary uses the following resource files:
  
   * XDiary; This file contains the XDiary application resources (in the
     distribution, the file is called XDiary.ad but it is renamed during
     the installation.
  
     If you want to make local, system wide customization, the resources
     can be put in a file called XDiary.local. XDiary.local should
     reside in the same directory as the XDiary file.
  
   * XDiary.map; This file contains resource mappings from color sets to
     real colors and from font sets to real colors. If you want to
     extend the XDiary color or font sets, this is the file to modify.
  
   * .Xdefaults; This is a user resource file where you can define your 
     own resources. You use the same resources but insert XDiary before
     the resource name. For example, *.title: becomes XDiary*.title:.
  
  You should not copy all the XDiary resources to your .Xdefaults file 
  but just the ones you want to change.
  
  The X Windows resources used in XDiary are given in the chapter 'X 
  Window Resources'.
  

Printer configuration
=====================
  
  When you open the print window, a list of printers is given. This 
  list of printers comes from two sources:
  
   * System printers; This is a file defined by the X Windows resource 
     XDiary*systemPrinterFile. Here the system manager defines system 
     wide and public printers.
  
   * Private printer; This is a file defined by the X Windows resource 
     XDiary*userPrinterFile. In this file, you can make your own printer 
     definitions for your private printers. The printers in this file 
     are displayed on the top of the printer selection list.
  

Private printers
================
  
  To define your own printer, do as follows:
  
   * Make a copy of the file XDiary.userpr from the XDiary data directory 
     (if you do not know what this directory is called, ask your system 
     manager). Copy the file to a directory in your directory tree.
  
   * Use your favorite editor to edit the file. Read the header section 
     of the file for a description of how to define your printer(s).
  
   * Save the file.
  
   * Edit your $HOME/.Xdefaults file and add the resource
     'XDiary*userPrinterFile <file>' and replace <file> with the full
     file name of your copy of XDiary.userpr.
  
  The next time you start XDiary, your printers will be in the printer 
  selection list.
  

Printer script
==============
  
  Modification of the XDiary printer script is only for 'advanced' 
  users.
  
  XDiary is delivered with a default print script template called
  'xdprint.script'. When you run install XDiary, this file is renamed to
  'xdprint'. You can modify this file to suite your needs.
  
  The print script use by XDiary is defined by the X Windows resource 
  printScript. If you want to use an alternate shell script/program, 
  set the resource 'XDiary*printScript: <script>' in your '.Xdefaults' 
  file.
  

Guess location
==============
  
  When XDiary tries to 'guess' the location of a calendar (for example 
  in the 'Open day view' window), a shell script defined by the X resource 
  findLocationScript is used. The default script used is called
  'xdlocation'. 
  

Linked calendars
================
  
  If you want to maintain a central repository of calendars, linked 
  calendars might help you. A linked looks like a normal calendar with 
  the exception that you cannot modify it in the Customize tool. To 
  use linked calendars, you create a file with the linked calendars, 
  e.g.:
  
   CalDef:
     Name: com
     Location: /zurich/ztalk/Com
     Flags: A
  
   CalDef:
     Name: dev
     Location: /zurich/ztalk/Dev
  
  In your XDiary.custom file, you put the lines
  
   IncludeInfo:
     File: /usr/local/xdiary/XDiary.custom.linked
  
  after the VersionDef: tag. You can now use the linked calendars, 
  include them in other calendars, start and stop alarms etc. You cannot 
  change the linked calendars in the Customize tool, if you want to 
  do this, you must Import the calendar.
  
  You import a linked calendar in the Customize -> Calendars window. 
  If you click on the Import button, you get a list of linked calendars 
  you can include.
  

Holidays
========
  
  In XDiary, holidays are marked with a special color. To define what 
  dates are holidays, files with the names 'holidays19nn' (where nn 
  is the year). Each of these files contains the holiday dates for 
  the appropriate year (indicated by the file name). The holidays files 
  are located in the directory referenced by the X Windows resource 
  holidaysDbDir:.
  
  If you want to add or change the XDiary holidays, do the following:
  
   * Create a directory (with the 'mkdir' command) to hold the holiday 
     files.
  
   * Copy the current XDiary holiday files from the standard Xdiary holiday 
     directory (if you do not know the directory, ask your system manager).
  
   * Change the holiday files and include your own dates. Make sure you 
     read the instructions at the top of the file. A holiday date is defined 
     as YYY-MM-DD, e.g. 1992-05-01.
  
   * Add the resource 'XDiary*holidaysDbDir: <directoryPath>' to your 
     '.Xdefaults' file where <directoryPath> is the full path name of 
     your personal holidays directory. You can also include multiple
     directories in the <directoryPath>, separate the different
     directories with a colon (:).
  
  The next time you start XDiary, your holidays will be used.
  
  If you wonder, XDiary is delivered with the official holidays of 
  the German part of Switzerland (Zurich). Even the hard working Swisses 
  take some days off... ;-).
  

XDiary files and directories
============================
  
  Below is a description of the files and directories XDiary creates 
  and uses. This section is mainly for the 'advanced' user.
  
  

$HOME
=====
  
  $HOME/XDiary.custom; ASCII file with customization data. This file 
  is created/updated from the customize window.
  
  $HOME/XDiary.custom_ver<n>; ASCII file with customization data for 
  older versions of XDiary. If you want to run older versions of XDiary, 
  do not remove these files.
  
  $HOME/XDiary.out; File containing data sent to the printer from XDiary.
  
  $HOME/XInfo.out; File containing data sent to the printer from the 
  help window.
  

$HOME/Diary
===========
  
  This is the standard calendar database directory for a user. In this 
  directory, you have database files and other configuration files.
  
  The database files (.pag and .dir) follows the standard UNIX dbm 
  format.
  
  dbAccess; Text file with access information (ACL). You change this 
  file with the tools 'xdaclunix' and 'xdaclafs'.
  
  dbLock; File to use for locking. When the calendar database is opened 
  for read or write, a file lock of placed on this file. If a calendar 
  database cannot be locked, it might help to remove (rm) this file 
  and create it (touch) again. Do not forget to set the correct owner, 
  group and protection.
  
  dbLog; Contains a log of the actions (insert, remove and change) 
  done on the calendar database. The log file is used by the 'xdnotify' 
  tool.
  
  entryId; Unique counter for the numbering of entries in the database. 
  For new entries, the counter is incremented.
  
  msgStamp; File to put time stamps on messages.
  
  dateDB.pag, dateDB.dir; Database with entries defined a specific 
  day.
  
  idDB.pag, idDB.dir; Database with the entry data.
  
  standDB.pag, standDB.dir; Database with repeated entries.
  

$HOME/Diary/Message
===================
  
  This directory contains messages sent to this calendar. The messages 
  are saved in binary files.
  

$HOME/Diary/Private
===================
  
  Database directory with private entries in the calendar.
  
  The database files (.pag and .dir) follows the standard UNIX dbm 
  format.
  
  privDB.pag, privDB.dir; The private entries in the calendar.
  

XDiary resources
================
  
  XDiary uses the following X Windows resources. If you want to change 
  the resources in your .Xdefaults file, add XDiary before every resource 
  definition, for example:
  
    XDiary*entryNormalFg:    Red
    XDiary*calEntryShadow:   2
  
  Note that the actual value of many resources is defined in XDiary.map
  file, for example $color4 will be replaced by the real color depending
  on the color palette you use.
  
  

Alarms
======
  
  alarmVolume: <integer>
  
  The relative volume for alarm tunes, -100 - 100, where 0 is the base 
  volume.
  
  alarm<n>Valid:  <boolean>
  alarm<n>Offset: <integer>
  
  These are the default alarm times. Since you can define up to 5 alarms 
  per appointment, <n> is a value between 1 and 5. The alarm<n>Valid 
  resource defines if the default alarm is valid or not. If the alarm 
  is valid, the resource alarm<n>Offset defines the number of minutes 
  before (+) or after (-) the appointment time that the alarm should 
  go off.
  
  Note that to define a default alarm for each new appointment, both 
  of the resources must be defined.
  
  tuneDurationDelta: <integer>
  
  Delta (in milliseconds) to add for each single note while playing 
  a tune. This parameter depends on your X-Server and might need
  customization.
  
  tune<n>File: <file>
  
  XDiary contains five (<n> is a number between one and five) files 
  with tunes that are played when alarms go off. The files contain 
  the notes for the tunes to play. You are free to define your own 
  tunes and compositions.
  
  tunePlayer:      <program>
  tunePlayerParam: <program parameters>
  
  Tune player program to use to play alarm tunes. Per default, the
  internal speaker in the computer is used and the result could be
  better. If you define a tune player program here, you must also change
  the tune<n>File resources. tunePalyerParam defines any parameters
  supplied to the tune playing program.
  
  launchDefScript:  <file>
  launchUseShell:   <shell>
  
  These two resources are used when you define alarm actions. For an 
  alarm, you can select to run a predefined shell script (launchDefShell) 
  or to use the appointment text as input to a shell interpreter
  (launchUseShell).
  

Various
=======
  
  clickDateNewView:  <boolean>
  
  Always open a new day view when you click on a date in the main calendar.
  
  defaultEntryText: <string>
  
  New entries can have this default text. Default is no text. If your 
  default text extends over multiple lines, use \n as line break.
  
  defaultPrinter: <printer>
  defaultPrinterType: <PS|ASCII>
  
  The name of the default printer and printer type (PostScript or ASCII). 
  If this resource is not set, the contents of your PRINTER environment 
  variable is used.
  
  fancyCalendar: <boolean>
  
  If you want to use the fancy, good looking, notebook style calendar, 
  set this value to True. If you want to use a simpler calendar, set 
  the value to False. Default is True.
  
  genPrintCommand: <command>
  
  Generic printer command to use. The command should read input from 
  a pipe (standard input) and the printer name is the first parameter.
  
  printerTypes: <printer types>
  
  For each printer you have defined, you can assign a type to it. The 
  type is sent to the print program (xdprint) and it allows you to 
  take specific actions for certain printer types. The default value 
  for this resource is 'PS Ascii' for PostScript and Ascii printers.
  
  systemAdminAcl: <AFS acl>
  
  If you use the Andrew File System (AFS), you can have this ACL added 
  to all XDiary directories you create. The ACL will be assigned to 
  the user system:administrators.
  
  textMarkerPos: <integer>
  
  In the appointment editor window, a marker can be displayed at the 
  given position just above the text field. This marker might be useful 
  if you want to align the entry text. If position 0 (zero) is defined, 
  the marker is not displayed.
  
  timeSelValues: <string>
  
  Values to use in the pull-down menu for time entry fields. The string 
  consists of times in the format HH:MM (24-hour format) separated 
  by a comma (,). For example: 8:00,9:00:10:00,11:00,12:00,13:00
  
  title: <string>
  
  In the calendar window, the current calendar and the string for this 
  resource are used as a window title.
  
  useFileLock: <boolean>
  
  To prevent simultaneous access to the XDiary database files, file 
  locking is used. The file locking mechanism makes sure that files 
  are updated in a 'controlled manner', for example two users should 
  not write a file simultaneously. If you do not have specific reasons, 
  this resource should always be True.
  
  widgetCaching: <boolean>
  
  To speed-up the operation of the day view, the appointment buttons(widgets) 
  are being reused instead of destroyed/created. If your day view gets 
  "out of sync" or you see other related problems, you might set this 
  resource to False.
  
  wrapBug: <boolean>
  
  Some X-servers have problems with the "pick a day" function in the 
  day view. If you see such problems, you can set this resource to 
  True.
  

Programs and data files
=======================
  
  aclScript:          <file>
  alarmScript:        <file>
  customScript:       <file>
  findLocationScript: <file>
  printScript:        <file>
  remoteScript:       <file>
  
  The names of the XDiary utility programs to use. Note that these
  programs must be in your PATH.
  
  customFile: <file>
  
  The name of your XDiary customize file. The default file is
  $HOME/XDiary.custom.
  
  dbSelectionDir: <directory>
  
  The directory that contains descriptions of the various calendars 
  you can use. The calendar descriptions are files whose names end 
  with _cal. As default, this directory is the standard XDiary data 
  directory.
  
  holidaysDbDir: <directory>
  
  This directory contains the holiday files, i.e. files with holiday 
  dates. For more information, see the chapter 'Holidays'.
  
  systemPrinterFile: <file>
  userPrinterFile:   <file>
  
  Files with system and user printers. For more information, see the 
  chapter 'Printer configuration'.
  
  userEditor: <command>
  
  Command to start your personal editor. The editor must be started 
  in a separate window. If this is not the case, the command must also 
  start a terminal window. The command should include a %s which will 
  be replaced with a file name. For example, if your command is 'emacs 
  <file>', it should be given as 'emacs %s'.
  

Tags
====
  
  entryTagsFilter: <string>
  
  With this resource, you can define a default filter for entry tags. 
  The filter will be used in the day view, summary and print windows. 
  You can give one or more tags separated by a space.
  
  entryTagsMenu: <string>
  
  The default entry tags you will see in the tags pulldown menu. The 
  string consists of tags (max four characters) separated by a space.
  
  defaultEntryTag: <string>
  
  The default entry tag for a new entry. The tag can be up to four 
  characters.
  

Visual
======
  
  calIconText: <string>
  
  The type of text displayed in the calendar icon. See the resource 
  file for valid values of <string>.
  

Position and size
=================
  
  accessTl.geometry:      <geometry>
  alarmTl.geometry:       <geometry>
  apEditorTl.geometry:    <geometry>
  calTl.geometry:         <geometry>
  msgSelTl.geometry:      <geometry>
  msgSendTl.geometry:     <geometry>
  notifyTl.geometry:      <geometry>
  planTl.geometry:        <geometry>
  printTl.geometry:       <geometry>
  remindAlarmTl.geometry: <geometry>
  remindTl.geometry:      <geometry>
  schedTl.geometry:       <geometry>
  stickyMsgTl.geometry:   <geometry>
  showTl.geometry:        <geometry>
  sysMsgWinTl.geometry:   <geometry>
  topicView.geometry:     <geometry>
  
  The size and position of various XDiary windows. The geometry specification 
  follows the standard X Windows format, i.e. widthXheight+x+y. For 
  most windows, you should not define a size (width and height). The 
  reason for this is that most windows are sized automatically depending 
  on the font size used. See the XDiary resource file for details.
  

Colors and fonts
================
  
  Most of the colors and fonts are defined as $colorn where n is a 
  number. The actual colors are defined in the map file XDiary.map.
  
  dbColorBgList:    <color list>
  entryColorBgList: <color list>
  entryColorFgList: <color list>
  
  When you set colors for entries and included calendars, only the 
  index into a color list is saved. The color list is a list of color 
  names (Green, Red, etc.) or RGB colors (#aaffdd, #ffaa12, etc.). 
  If you want different colors, it might be wise to add the colors 
  to the list instead of replacing existing colors. If you replace 
  colors, existing entries will have their colors changed.
  
  entryTagsColors: <tag(color,color) tag(color,color)...>
  
  A tag can now be assigned foreground and background color. When an 
  entry (appointment or note) with a "colored" tag is displayed, the 
  entry will have the color defined for the tag. 
  
    XDiary.entryTagsColors: Conf(Blue,White) Phne(Red,Yellow)
  
  dateMarkBg:       <color>
  entryExistFg:     <color>
  entryImportantFg: <color>
  entryIncludeBg:   <color>
  entryNormalFg:    <color>
  entryNoteFg:      <color>
  entrySelectBg:    <color>
  entryUnselectBg:  <color>
  holidayFg:        <color>
  mondayFg:         <color>
  tuesdayFg:        <color>
  wednesdayFg:      <color>
  thursdayFg:       <color>
  fridayFg:         <color>
  saturdayFg:       <color>
  sundayFg:         <color>
  todayBg:          <color>
  weekNumberFg:     <color>
  
  In XDiary, various components have different colors. Instead of changing 
  these colors, you might consider trying the different color schemes 
  (-wood, -sea, etc.) instead.
  
  useFontSize: <string>
  
  The default font size to use. Valid values for <string> are small, 
  medium and large.
  

Markers
=======
  
  actionAlarmMarker:   <integer>
  alarmMarker:         <integer>
  archiveMarker:       <integer>
  includeMarker        <integer>
  importantMarker:     <integer>
  noteDoneMarker:      <integer>
  noteNotDoneMarker:   <integer>
  privateMarker:       <integer>
  standingMarker:      <integer>
  
  For entries in the day view, summary window etc., flags are used 
  to indicate if alarms are defined, if a note has been done etc. The 
  flags are single characters and the characters are defined with their 
  ASCII values. If you want to change these values, the new ASCII values 
  should correspond the font you use.
  

Mouse and keys
==============
  
  In XDiary, you can use the keyboard and mouse as described below:
  
  

Date / time fields
==================
  
  In all date and time fields, you can use the following mouse commands:
  
    MB1 (double)  Displays a calendar or time selection
                  window.
    MB2 (drag)    With Motif 1.2, you can drag a date from
                  a calendar and drop it on a date field.
  

Day view
========
  
  In the day view window, you can use the following keyboard and mouse 
  commands:
  
    MB1        If you have an appointment selected, you can change
               the duration of the appointment.
    MB2        If you have an entry selected, you can drag it
               to new time/date by keeping the left mouse button
               down and moving the entry.
    Shift-MB2  Instead of moving the entry as described above,
               the entry is copied.
    MB3        If you have an entry selected, mouse button 3 will
               give you a popup menu which contains entry actions
               like Edit, Remove, etc.
  

Main calendar
=============
  
  In the main calendar, you can use the following keyboard and mouse 
  commands:
  
    MB1        If you click on a date and have no day view 
               displayed, a new day view will be opened. If you
               already have a day view displayed, the day view
               will display the date you clicked on.
    SHIFT-MB1  If you click on a date, a new day view will be
               displayed.
  

Text fields
===========
  
  In all text fields, you can use the following keyboard and mouse 
  commands:
  
    Up            Move cursor up.
    Down          Move cursor down.
    Left          Move cursor left.
    Right         Move cursor right.
    Ctrl-Right    End of line.
    Shift-Right   Select text right.
    Ctrl-Left     Beginning of line.
    Shift-Left    Select text left.
    Ctrl-a        Beginning of line.
    Ctrl-e        End of line.
    Ctrl-k        Delete to end of line.
    Alt-b         Previous word.
    Alt-f         Next word.
    BS            Delete previous character.
    Shift-BS      Delete previous word.
    Insert        Toggle between insert/overstrike mode.
    Delete        Delete next character.
    Shift-Delete  Delete next word.
    Home          Beginning of line
    End           End of line.
    Return        New line.
    MB1           (mouse button 1) Position cursor.
    MB2           (mouse button 2) Copy selection.
  

Version
=======
  
  The current version of XDiary is V3.0.1.
  
  Crafted by:
    Roger Larsson
    E-mail: Roger.Larsson@ubs.com (llg@ubszh.net.ch)
  
  
  (C) Copyright Ulrika Bornetun, Roger Larsson (1995)
      All rights reserved
  
  See COPYRIGHT file for details.
  
  

Contributions
=============
  
  Thanks to:
  
  Michael Steiner, IBM Research Laboratory, Switzerland for the
  byte-order independent ndbm.
  
  Ulrika for all the help when I was lost in the widget dungeons and 
  the awesome late night burritos (not to mention her Motif widgets, 
  oooooo-h).
  
  All you XDiary users! It is thanks to your support and encouragement 
  that the development of XDiary has been such a pleasure.
  

Known problems
==============
  
  xtmDbTools: ffl(), Cannot unlock file
  This message is due to a bug in AFS (I think) and can be ignored 
  (if it appears once every time XDiary is started).
  
  Warning: Attempt to remove non-existant passive grab
  This message can be ignored.
  
  

Utilities
=========
  
  The XDiary utilities are supplemental programs you can use to extend 
  the functionality of XDiary and to add your own features. All utilities 
  are independent of the XDiary program itself, i.e. they do not require 
  XDiary to be running but XDiary must be installed.
  
  The utilities described here are for 'advanced' users; before you 
  use them you should be familiar with XDiary and its concepts. You 
  should also be familiar with UNIX and have a basic knowledge of 
  X Windows.
  
  All the utility programs understand the following flags:
  
  -help, -h, -usage 
   Display some help information.
  
  -version 
  Display the current version of xdalarm.
  
  All the X Windows utility programs understand the following flags:
  
  -palette <colorPalette>
  Use the color palette <palette>. See below for a description of the 
  available colors.
  
  -fmap large
  Use a large font.
  
  -fmap medium
  Use a medium font.
  
  -fmap small
  Use a small font. This is the default font.
  
  The available color palettes for the flag -palette are:
  
    gray   : Colors in gray (a cloudy day in Switzerland).
    lila   : Colors in lila (a modern touch).
    motif  : Motif colors (minimal set of colors, boring).
    neon   : In the heat of the night... .
    nordic : From the cold northen sky.
    red    : Colors from Moscow.
    sea    : Nice sand and sea colors.
    sky    : High flying colors in blue and yellow. (default)
    wood   : Colors from the green forest.
  
  

xdaclafs
========
  
  xdaclafs allows you to control access to your XDiary databases under 
  the Andrew File System (AFS). This utility is started from XDiary.
  

xdaclunix
=========
  
  xdaclunix allows you to control access to your XDiary databases when 
  XDiary is installed as a group calendar.
  

xdalarm
=======
  
  The xdalarm utility is attached to a diary database and reads the 
  appointments defined there. For each appointment, you can define 
  an alarm and when the alarm time is reached, xdalarm will pop up 
  a window with the appointment text.
  
  You will need one xdalarm process running since this process will 
  check all your defined calendars. xdalarm is started automatically 
  from xdiary when needed; for each calendar you can select if alarms 
  should sound or not.
  
   Syntax:  
     xdalarm [flags]
  
   Flags:
     -alarmTags "<tag> <tag>. . ."
     -calendars "<name> <name>. . ."
     -usage
     -version
  
  -alarmTags "<tag> <tag>. . ."
  Only give alarms for entries containing one of the <tags> listed. 
  You can list one or more tags separated by a space. If you define 
   more than one tag, you must enclose the tags in ". . .".
  
  -calendars "<name> <name>. . ."
  Watch these calendars and give alarms. The calendar names must already 
  be defined in your $HOME/XDiary.custom file. If you give more than 
  one calendar, the names must be enclosed in ". . ." and separated 
  by a space.
  
  Examples:
  
   $ xdalarm -calendars "rbl family"
  
  Starts an alarm process which checks the calendars 'rbl' and 'family' 
  for alarms.
  
   $ xdalarm -calendars rbl -alarmTags "Meet Imp"
  
  Starts an alarm process for the calendar 'rbl'. Alarms will only 
  be given for entries including the 'Meet' or 'Imp' tags.
  

xdcustom
========
  
  Utility to customize your XDiary session. This utility is started 
  from XDiary.
  

xddump
======
  
  xddump reads a calendar and saves the entries in a file or the entries 
  are displayed on the screen. xddump can be used to make a backup 
  of a calendar or to display the calendar on a character terminal.
  
  xddump produces a tagged file where each entry is split into components 
  (such as alarm offsets, flags, entry text etc.) which are identified 
  with a tag. The tagged file can then be used by other utilities. 
  One utility that uses the output file from xddump is xdrestore which 
  restores a calendar from a tagged file.
  
  xddump can be run in either display mode or backup mode. In display 
  mode, the contents of a calendar is displayed on the screen while 
  in backup mode, a tagged file is written.
  
  In display mode, xddump provides a 'hook' for your own customized 
  output. The tagged file produced by xddump is passed to a program 
  or shell script you provide. This allows you to customize the output 
  from xddump.
  
   Syntax:
     xddump [flags] <dbDir>
  
   Parameters:
     dbDir
  
   Flags: 
     -backup 
     -comments 
     -filter <file> 
     -from <date> 
     -lastMonth 
     -lastWeek 
     -lastYear 
     -lines <n> 
     -nextMonth 
     -nextWeek 
     -nextYear 
     -noFileLock
     -noStanding 
     -output <file>
     -thisMonth 
     -thisWeek 
     -thisYear 
     -to <date> 
     -today 
     -tomorrow 
     -us 
     -usage 
     -version
     -yesterday
  
  dbDir
  The directory containing the calendar to dump. This parameter is 
  mandatory.
  
  -backup
  xddump will produce a tagged backup file. By default, xddump displays 
  the selected calendar.
  
  -comments
  Add comments to the dump file. The comments can be used by the filter 
  program, see the flag -filter.
  
  -filter <file>
  In display mode, xddump will execute the given file and the name 
  of the tagged file is passed as parameter. This will allow you to 
  write your own customized XDiary display utilities.
  
  -from <date>
  Dump entries from this date. <date> is given as YYYY-MM-DD or when 
  the -us flag is used, MM/DD/YYYY. See also -to.
  
  -lastMonth
  Dump last month's entries.
  
  -lastWeek
  Dump last week's entries.
  
  -lastYear
  Dump last year's entries.
  
  -lines <n>
  In display mode, display <n> lines of the entry text. n must be >= 
  1.
  
  -nextMonth
  Dump next month's entries.
  
  -nextWeek
  Dump next week's entries.
  
  -nextYear
  Dump next year's entries.
  
  -noFileLock
  Do not use file locking.
  
  -noStanding
  Do not include any standing entries in the dump. By default, standing 
  entries are included.
  
  -output
  Save the output from xddump in the file <file>. Default is $HOME/XDiary.backup.
  
  -thisMonth
  Dump this month's entries.
  
  -thisWeek
  Dump this week's entries.
  
  -thisYear
  Dump this year's entries.
  
  -to <date>
  Dump entries to this date. <date> is given as YYYY-MM-DD or when 
  the -us flag is used, MM/DD/YYYY. See also -from.
  
  -today
  Dump today's entries (default).
  
  -tomorrow
  Dump tomorrow's entries.
  
  -us
  Use US date and time format.
  
  -usage
  Display some limited help.
  
  -version
  Display the current version of xddump.
  
  -yesterday
  Dump yesterday's entries.
  
  The tagged file will contain one or more entries and each entry will 
  start with an entry identifier and end with an entry terminator. 
  Each tag identifier contains two characters where the first character 
  is in uppercase while the second character is in lower case. Each 
  tag identifier is followed by a space (exception is the << tag which 
  is not followed by a space).
  
  Note: All tags are case sensitive.
  
  Note: There are no tags defined for 'skip weeks' (for repeated entries).
  
  The tags are as follows:
  
  @!XDiaryDump-V1.0
  Start identifier for an entry definition. The @!XDiaryDump part 
  is mandatory and is case sensitive.
  
  Al <val> <offset> <val> <offset> <val> <offset> 
     <val> <offset> <val> <offset>
  Alarms defined for the entry. If an alarm is valid, <val> is set 
  to 1 otherwise <val> is set to 0. <offset> is the number of minutes 
  before/after the entry time when the alarm should sound (-4320<offset<4320).
  
  Cl <entryBgIndex> <entryFgIndex>
  Color for the entry (foreground and background). The color indexes 
  are indexes in the color lists defined by the X-Windows resources 
  'entryColorBgList' and 'entryColorFgList'.
  
  De <date> <start> <stop>
  Detailed time information in seconds since January 1, 1970. This 
  is the internal time used in UNIX.
  
  Dt <year> <month> <day> <weekdayNo> <startHour> <startMin>
     <stopHour> <stopMin> <startHour> <startMin> <amPm>
     <stopHour> <stopMin> <amPm> 
  
  Detailed time information. The items are:
    <year>      - Year for entry.
    <month>     - Month number (1-12) for the entry.
    <day>       - Date (1-31) for the entry.
    <weekdayNo> - Weekday number (1-Mon, ..., 7-Sun)
    <startHour> - Start hour (0-23) for the entry.
    <startMin>  - Start minute (0-59) for the entry.
    <stopHour>  - Stop hour (0-23) for the entry.
    <stopMin>   - Stop minute (0-59) for the entry.
    <startHour> - Start hour (0-12) for the entry.
    <startMin>  - Start minute (0-59) for the entry.
    <amPm>      - am/pm indicator for the start time.
    <stopHour>  - Stop hour (0-12) for the entry.
    <stopMin>   - Stop minute (0-59) for the entry.
    <amPm>      - am/pm indicator for the stop time.
  
  Fl <flags>
  Flags for the entry. Each flag is represented by one character:
    A - Alarms are defined for this entry.
    D - Indicates that a note is done.
    I - Entry is important.
    N - Entry is a note.
    P - Entry is private.
    S - Entry is a standing entry.
    T - Entry is sticky.
    a - Do not display the alarm window.
    c - Hide the entry in the calendar.
    d - Hide the entry in the day view.
    p - Hide the entry in the printout.
    s - Hide the entry in the summary window.
    u - Hide the entry in the dump output.
  
  
  Li <day> <alarm>
  Number of text lines from the entry to display in the day view (<day>) 
  of in the alarm window (<alarm>).
  
  Sd <n> <n> <n> <n> <n> <n> <n>
  Days (1-Monday, ..., 7-Sunday) when a standing entry is valid. If 
  the entry is valid one day, <n> is set to 1 otherwise <n> is set 
   to 0.
  
  Sf <date>
  Standing entry is valid from this date. <date> has the format YYYY-MM-DD.
  
  Sn <n> [D|W|M|L|Y]
  The standing entry is valid every <n> Day, Week, Month, Last in month 
  or Year.
  
  Sr [a|b|c|d|e|f]
  The entry is valid on weekday in month: 1st, 2nd, 3rd, last, 2nd 
  last or 3rd last.
  
  St <date>
  Standing entry is valid to this date. <date> has the format YYYY-MM-DD.
  
  Sy [s|n|p]
  Action to take for a standing entry on a non-working day (default 
  is keep): Skip, Next working day or Previous working day.
  
  Tg <tag>
  <tag> is the tag defined for the entry.
  
  Ti <date> <time> <duration>
  Date and time information for the entry. <date> is given in the format 
  YYYY-MM-DD, <time> is in the format HH:MM and <duration> is the duration 
  in minutes of the entry.
  
  Tu <n>
  Use the <n> alarm tune (1<=n<=5).
  
  <<text
  The text follows directly after the << tag (no space).
  
  $$
  End of entry definition.
  
  If more than one entry definition is saved in the file, each entry 
  will be within
  
   @!XDiaryDump-V1.0
   . . .
   $$
  
   @!XDiaryDump-V1.0
   . . .
   $$
  

xdiary
======
  
  xdiary is not a utility but the main application. From the calendar 
  window in xdiary, you can start most of the other utilities.
  
   Syntax:
    xdiary [flags]
  
   Flags:
     -usage
     -version
  
  -usage
  Display some limited help.
  
  -version 
  Display the current version for xdiary.
  

xdinitdb
========
  
  xdinitdb will create an XDiary calendar in the directory you specify. 
  It will also update an existing XDiary calendar to the most recent 
  release. xdinitdb does not destroy any files, it just adds missing 
  files and directories.
  
  You can run xdinitdb to make sure that your XDiary calendars include 
  all necessary files and directories. If xdinitdb finds any problems, 
  it will report them.
  
  xdinitdb can also be used to create XDiary calendars off line, for 
  example to automatically create an XDiary database when a user is 
  defined.
  
   Syntax:
    xdinitdb [flags] <dbDirectory>
  
   Parameters:
     dbDirectory
  
   Flags:
     -noFileLock
     -usage
     -version
  
  dbDirectory
  Create/check this XDiary calendar and create/add missing files and 
  directories.
  
  -noFileLock
  Do not use file locking.
  
  -usage
  Display some limited help.
  
  -version
  Display the current version for xdinitdb.
  

xdlight
=======
  
  xdlight is a simpler version of XDiary, especially if you want to 
  look a one or more read-only calendars. xdlight displays a single 
  day view and you can view and edit the entries. You can also start 
  xdlight in read-only mode. In this mode, no entries can be added 
  or modified.
  
   Syntax:
    xdlight [flags]
  
   Flags:
     -readOnly
     -startDate <date>
     -usage
     -version
  
  -readOnly
  Run in read-only mode, i.e. no entries can be created or changed.
  
  -startDate <date>
  Start with the date <date>.
  
  -usage
  Display some limited help.
  
  -version 
  Display the current version for xdiary.
  

xdnotify
========
  
  The xdnotify utility allows you to watch one or more calendars for 
  changes. If an entry is inserted or changed, a window will be popped 
  up, displaying the two first lines of the entry.
  
  When you start xdnotify, you can specify one or more calendars to 
  be watched. If you do not specify any calendars, xdnotify will use 
  the calendars with the flag 'Notify when changed' set.
  
  xdnotify is not integrated in the XDiary environment, you must start 
  the tool from the command line.
  
   Syntax:  
     xdnotify [flags]
  
   Flags:
     -checkSelf
     -calendars
     -delta
     -statusFile
     -usage
     -version
  
  -checkSelf 
  By default, you do not get notifications when you make changes to 
  a calendar. If you set this flag, you will also be notified when 
  you make changes.
  
  -calendars "<name> <name>. . ."
  Check the calendars given. If you want to check more than one calendar, 
  they must be separated by a space and enclosed in ". . .".
  
  -delta <min> 
  Number of minutes between the checks xdnotify makes. Default is 15 
  minutes.
  
  -statusFile <file> 
  xdnotify uses a status file to keep track of which calendars have 
  been checked when. The default file to use is $HOME/.XDiary.notify.
  
  -usage  
  Display some help information.
  
  -version 
  Display the current version of xdnotify.
  
  Examples:
  
   $ xdnotify -calendars "talks dcsMeet"
  
  Here, you will get notifications when any of the calendars talks 
  or dcsMeet changes.
  
   $ xdnotify -delta 5 -checkSelf
  
  Start the xdnotify process to check the calendars with the flag 'Notify 
  when changed' (defined in the Customize window). The calendars are 
  checked every 5 minutes and you will be notified if you make changes 
  to these calendars.
  

xdremind
========
  
  Start the reminder tool outside of XDiary.
  

xdremove
========
  
  xdremove will assist you in the management of your XDiary calendars. 
  xdremove will remove entries that are older than n days from the 
  calendar. You can select entries with specific tags to be removed; 
  default is to  remove all entries without tags.
  
   Syntax:
     xdremove [flags] <dbDirectory> <days>
  
   Parameters:
     dbDirectory 
     days
  
   Flags:
     -log
     -noConfirm
     -noFileLock
     -repeated
     -tag <tag>
     -todayIs <date>
     -usage
     -version
  
  dbDirectory  
  Remove entries from this calendar.
  
  days  
  Remove entries older than <days> days.
  
  -noConfirm
  xdremove will ask you to confirm the action. If this flag is specified, 
  no confirmation is required.
  
  -noFileLock
  Do not use file locking.
  
  -log
  Log the entries removed.
  
  -repeated
  Also remove repeated entries. Only repeated entries where the To: 
  date is earlier than the limit for xdremove are removed.
  
  -tag <tag>
  Remove only entries containing this tag. This flag can be repeated 
  50 times. To select all entries (with or without tags), give /all/ 
  as the tag.
  
  -todayIs <date>
  You can change the date for 'today' to <date>. <date> is given as 
  YYYY-MM-DD.
  
  -usage
  Display some limited help.
  
  -version
  Display the version for xdremove.
  
  Examples:
  
   $ xdremove -tag wst -tag nimp -log $HOME/Diary 65
  
  Remove all entries older than 65 days containing the tags 'wst' or 
  'nimp'. Use the XDiary calendar in the directory $HOME/Diary
  
   $ xdremove -tag /all/ -repeated -noConfirm /u/ourGroup/GroupDiary 
  120
  
  Remove all entries (normal and repeated, with or without tags) in 
  the XDiary calendar /u/ourGroup/GroupDiary older than 120 days. 
  

xdrestore
=========
  
  xdrestore takes an ASCII file generated by the xddump utility and 
  inserts the entries in the specified XDiary calendar. xdrestore together 
  with xddump allows you to transfer data to and from the XDiary calendars.
  
   Syntax:
     xdrestore [flags] <backupFile> <dbDirectory>
  
   Parameters:
     backupFile 
     dbDirectory
  
   Flags: 
     -log 
     -noFileLock
     -usage
     -version
  
  backupFile 
  ASCII file containing entries to be inserted into the XDiary calendar. 
  This file should have the format described for the xddump utility.
  
  dbDirectory
  Insert the entries in the backupFile into this XDiary calendar.
  
  -log  
  For each entry in the file, write a message on the screen.
  
  -noFileLock
  Do not use file locking.
  
  -usage  
  Display some limited help.
  
  -version 
  Print the current version of xdrestore.
  
  The following tags are mandatory:
  
   @!XDiaryDump-V1.0 
   Ti 
   << 
   $$
  
  Normally, you also include the following tags:
  
   Fl 
   Al 
   Tu 
   Li 
   Tg
  
  An example of a file with entries:
  
   @!XDiaryDump-V1.0 
   Ti 1991-11-11 14:30 60 
   Al 1 -10 1 -5 1 0 0 0 0 0 
   Tu 1 
   Li 1 1 
   <<Discuss further extensions to XDiary. 
   <<What will happen with AFS? 
   $$
  
   @!XDiaryDump-V1.0 
   Ti 1991-11-25 9:00 120 
   Fl AI 
   Al 1 -65 1 -5 1 0 0 0 0 0 
   Tu 4 
   Li 1 5 <
   <Department meeting. Do: 
   << 
   <<  * Bring HW plan 
   << 
   <<  * Data management, user requirements. 
   $$
  
  If you are not sure how to code a specific entry, make a similar 
  entry in XDiary and dump the entry with xddump. You can now see how 
   XDiary coded the entry.
  
