Manage Learn to apply best practices and optimize your operations.

Mark calendar entries red and strikethrough

This tip describes how to mark calender entries.

I recently had a request from a user to allow for Calendar entries to be marked in Red and Strikethrough text by clicking an action button. These would be displayed along with the 'Normal' entries within the Calendar. She also wanted the ability to reset the 'Marked' entrie(s) back to normal.

Below are the steps to recreate the solution I came up with. If you have a better solution I would love to know:

  1. Open the users Mail file in Designer.
  2. Open the ' _Calendar Entry | Appointment ' Form
  3. At the end of the Subject field press the enter key and create a new Text, Editable field called Marked.
  4. Open the Hide When Tab of the properties box for this field and select all for reading and editing, we want to hide in read and edit modes. Do not place any default value into this field.
  5. Save and Close the form.
  6. Right click the ' _Calendar Entry | Appointment ' Form and select Design Properties.
  7. Click the Design Tab and select the 'Prohibit design refresh or replace to modify'.
  8. Open the View '($Calendar) alias Calendar'
  9. Select the Description column and copy to Clipboard then Paste.
  10. You now have two Description columns. Select the end one, farthest to the right.
  11. Open the Properties box for this column and change the display color for the documents to Red and with the Strikethrough attribute.
  12. Edit the formula for this column to read :
    xxLocation := @If(@Length(Room); 
    "Location: " + @Name([CN];@Subset
    (Room;1)); @Length(Location);"Location: 
    " + Location; "");
    xxChair := @If(AppointmentType = "3";
     "Chair: " + @Name([CN];Chair); 
    TaskType = "2"; "Owner: " + 
    @If(Marked="Y";@Trim(Subject : 
    xxLocation : xxChair);"")
  13. Note that only the last line of the formula has changed.
  14. Edit the formula in the first Description column to read:
    xxLocation := @If(@Length(Room); 
    "Location: " + @Name([CN];
    @Subset(Room;1)); @Length(Location)
    ;"Location: " + Location; "");
    xxChair := @If(AppointmentType = "3"; 
    "Chair: " + @Name([CN];Chair); 
    TaskType = "2"; "Owner: " + 
    @If(Marked="N" | Marked = "";
    @Trim(Subject : xxLocation : xxChair);"")
  15. Note that only the last line of the formula has changed.
  16. Open the Action Pane for the View and add an action button to the bottom of the current list.
  17. Name it ' Toggle Strikethrough', no icon, Show on Action bar only.
  18. Add the following Lotusscript code the the Click event of the Action button:
    Dim ns As notesSession
    Dim db As notesDatabase
    Dim ncol As notesDocumentCollection
    Dim ndoc As notesdocument
    Dim workspace As New NotesUIWorkspace
    Set ns = New notesSession
    Set db = ns.currentDatabase
    Set ncol = db.unprocessedDocuments
    Set ndoc = ncol.getfirstdocument
    subj = ndoc.GetItemValue( "Marked" )
    If subj( 0 )="N" Then
    Call ndoc.replaceitemvalue("Marked","Y")
    Elseif subj( 0 )="Y" Then
    Call ndoc.replaceitemvalue("Marked","N")
    Call ndoc.replaceitemvalue("Marked","Y")
    End If
    Call workspace.ViewRefresh
  19. Save and Close the View.
  20. Right click the '($Calendar) alias Calendar' View and select Design Properties.
  21. Click the Design Tab and select the 'Prohibit design refresh or replace to modify'.

Thats it. Open your calendar and select an entry and click the button to test...

Dig Deeper on Lotus Notes Domino Formula Language

Join the conversation

1 comment

Send me notifications when other members comment.

Please create a username to comment.

This is awesome! Thank you for sharing. I am so lost with all of this formula stuff. Can you add screenshots to your tutorial?



  • iSeries tutorials's tutorials provide in-depth information on the iSeries. Our iSeries tutorials address areas you need to know about...

  • V6R1 upgrade planning checklist

    When upgrading to V6R1, make sure your software will be supported, your programs will function and the correct PTFs have been ...

  • Connecting multiple iSeries systems through DDM

    Working with databases over multiple iSeries systems can be simple when remotely connecting logical partitions with distributed ...