Click here to Skip to main content
15,885,546 members
Articles / Programming Languages / C#
Tip/Trick

How to Add a Lotus Notes Calendar Entry with C#

Rate me:
Please Sign up or sign in to vote.
5.00/5 (4 votes)
9 Jan 2011CPOL 44.7K   4   6
How to Add a Lotus Notes Calendar Entry with C#

The following code will show you how to add an entry in a Lotus Notes Calendar with C#



C#
//This DLL you've got to add under Projekt-> Add Reference --> COM Tab --> Lotus Domino Objects
//Standard Path for this DLL is: "C:\Program Files\Notes\domobj.tlb"
using Domino;   //domobj.tlb*
...
//try&catch
try
{
    //-------------------------------------------
    //!!Important!!
    //Befor you start, you have to check 2 things
    //1.) Lotus Notes has to run when you start this application
    //2.)The files "notes.ini" and "user.id" 
    //("user" stands for your username) have to be in the folder 
    // "C:\Program Files\Notes" or "C:\Program Files\IBM\Notes" 
    //--------------------------------------------    
    
    //First, create a new Lotus Notes Session Object
    Domino.NotesSession LNSession = new Domino.NotesSession();
    //Next add a Database and a Document Object (not new)
    Domino.NotesDatabase LNDatabase;
    Domino.NotesDocument LNDocument;
    //Initialize your Session with your Password
    LNSession.Initialize("password");
    
    //Connect to your Notes Server and the path of your 
    //.nsf File (in my case its in a subfolder 'mail').
    LNDatabase = LNSession.GetDatabase("Notes-Server", "mail\\user.nsf", false);
    //Create an in memory document in the server database
    LNDocument = LNDatabase.CreateDocument();
    //-------Assign Field Values-------
    //Define Start&End Date+Time of your appointment
    //Year, Month, Day, Hour, Minute and Second
    System.DateTime StartDate = new DateTime(2008, 3, 19, 8, 2, 0);
    System.DateTime EndDate = new DateTime(2008, 3, 19, 8, 5, 0);
    //This Defines that it is an Calendar Entry
    LNDocument.ReplaceItemValue("Form", "Appointment");
    //Type of the appointment, means:
    LNDocument.ReplaceItemValue("AppointmentType", "0");
    //0 = Date, Appointment           
    //1 = Anniversary
    //2 = All Day Event (Do Not Set Time Here!)
    //3 = Meeting
    //4 = Reminder
    //5 = Date (Special, experimental!)    
    // Title of your entry
    LNDocument.ReplaceItemValue("Subject", "hello world");

    // Set Confidential Level (Public=1 or Private=0) 
    LNDocument.ReplaceItemValue("$PublicAccess","1");    

    //Add Start&End Time of your event
    LNDocument.ReplaceItemValue("CALENDARDATETIME", StartDate);
    LNDocument.ReplaceItemValue("StartDateTime", StartDate);
    LNDocument.ReplaceItemValue("EndDateTime", EndDate);
    LNDocument.ReplaceItemValue("StartDate", StartDate);
    LNDocument.ReplaceItemValue("MeetingType", "1");
    //Infos in The Body
    LNDocument.ReplaceItemValue("Body", "Body Text Body Text ...");
    //Add an alarm to your appointment
    LNDocument.ReplaceItemValue("$Alarm", 1);
    LNDocument.ReplaceItemValue("$AlarmDescription", "hello world (alarm)");
    LNDocument.ReplaceItemValue("$AlarmMemoOptions", "" );
    //5 = Time (in minutes) before alarm goes on
    LNDocument.ReplaceItemValue("$AlarmOffset", 5);
    LNDocument.ReplaceItemValue("$AlarmSound", "tada");
    LNDocument.ReplaceItemValue("$AlarmUnit", "M");
    //This saves your Document in the Notes Calendar
    LNDocument.ComputeWithForm(true, false);
    LNDocument.Save(true, false, false);
    //On success, you'll see an info message;
    MessageBox.Show("Calendar Entry Successfully Added!", "Info", 
        MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception e1)
{
    //On error you'll see an error message
    MessageBox.Show(e1.Message);
}
...

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
QuestionLotus Calendar Entry with C# ERRROR Object reference not set to an instance of an object Pin
Juan Eduardo Galvez Bustamante7-May-13 5:27
Juan Eduardo Galvez Bustamante7-May-13 5:27 
GeneralThis adds the event to the calendar. However, the alarm doe... Pin
Chris Goedde22-Nov-11 11:03
Chris Goedde22-Nov-11 11:03 
GeneralHow can i add attendees to calendar? i tried adding it but i... Pin
Haseena879-Nov-11 21:01
Haseena879-Nov-11 21:01 
GeneralReason for my vote of 5 Because using Lotus Notes sucks, you... Pin
meaningoflights9-Dec-10 20:13
meaningoflights9-Dec-10 20:13 
Reason for my vote of 5
Because using Lotus Notes sucks, you just gave me an idea for an article. Attachments in Lotus notes emails...
GeneralI gladly shared it ;). I searched for this solution about 2 ... Pin
Minuert30-Nov-10 2:32
Minuert30-Nov-10 2:32 
GeneralThank you for sharing this with us even though Lotus Notes s... Pin
Slacker00729-Nov-10 5:07
professionalSlacker00729-Nov-10 5:07 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.