Getting calendar view data:
Essentially, you want to call ReadViewEntires to get the data from the calendar view. ReadViewEntries is publicly available and documented. You can read the documentation here:
http://www.codestore.net/help/help85_designer.nsf/f4b82fbb75e942a6852566ac0037f284/40c37f415dec45fe852574cf006b376c?OpenDocument
For calendar entries, you can call ReadViewEntries for your desired range of dates (I would recommend starting a day earlier to get any meetings that overlap from the prior day). A basic example of this call is as follows:
http://
server/mail/
mailfilename.nsf/Calendar?ReadViewEntries&KeyType=time&StartKey=20100928T040000Z&UntilKey=20100930T040000Z&Count=-1&TZType=UTC
Note: The times specified in the call above should correspond to the beginning of the day in the callers current timezone.
This will generate some XML output that shows the values of the columns in the view. The columns will have their programmatic names. If you want to correlate programmatic names to column title, you can get the view design information in XML via ReadDesign (or just look in Domino Designer):
http://
server/mail/
mailfilename.nsf/Calendar?ReadDesign
Getting iNotes URL:
The call to ReadViewEntries should give you all the information you need to display calendar entries in the view. In addition to harvesting data needed to show the meeting in the view, you will also want to get data needed to open the URL for a particular entry in iNotes. The data you need is the UNID, and the URL looks like:
http://
server/mail/
mailfilename.nsf/0/1AD8F09C3EEB0B51852577A9003C8966/
Here, 1AD8F09C3EEB0B51852577A9003C8966 is the UNID of the document to open, which is returned in the XML for the viewentry from the ReadViewEntries call.
This gives you the basics of what you will need to do and is enough to get working as desired in most cases.
Next step: Getting the instance data:
For repeat meetings, you can get a dialog when opening a meeting asking you which instance you want to open with the method listed above:
Obviously this does not make sense when you open a particular instance as you have already selected the instance that you want. As such, you will have to specify the date that you want to open. You can do that by modifying the URL you use when opening a repeating instance by specifying the date (which was returned from the ReadViewEntries call) using the iNotes variant of ReadViewEntries with PresetFields as follows:
http://
server/mail/
mailfilename.nsf/0/1AD8F09C3EEB0B51852577A9003C8966/?OpenDocument&PresetFields=ThisStartDate;20100929T130000Z
Optional: Getting additional data from calendar columns:
You may want to utilize more data from your calendar columns that you get from ReadViewEntries. ReadViewEntries does not show hidden columns, but you can specify additional columns using Preset Fields, such as shown below:
In this example, the data is retrieved from the $UserData column (this is a hidden column that Notes will use to contain multiple attribute pairs for operations like thishttp://
server/mail/
mailfilename.nsf/iNotes/Proxy/?OpenDocument&Form=s_ReadViewEntries&KeyType=time&StartKey=20100928T040000Z&UntilKey=20100930T040000Z&Count=-1&TZType=UTC&PresetFields=FolderName;($Calendar),hc;$UserData
In this example, the data is retrieved from several extra columns:
http://
server/mail/
mailfilename.nsf/iNotes/Proxy/?OpenDocument&Form=s_ReadViewEntries&KeyType=time&StartKey=20100928T040000Z&UntilKey=20100930T040000Z&Count=-1&TZType=UTC&PresetFields=FolderName;($Calendar),hc;$151%7C$152%7C$153%7C$154%7C$160%7C$UserData
Note: To expose data that is not currently in a column you might be required to modify your mailfile design to expose this data (which must be summary data items).
Authentication:
You will need to authenticate with Domino over HTTP, although the specifics here really are an implementation detail for you and depend on what authentication your servers support.
You could utilize single sign on and perhaps use spnego for authentication (spnego only available on windows domino servers). You could also have an authentication server that sits in front of your server and sends proper credentials to either Sharepoint or Domino. A third option is simply to enable for basic authentication and force users to authenticate manually per session.
Discovering the mailfile:
You will have to do a directory lookup to get the mail server and path. After you find the mail server (ServerName/Domain), you will need to do a second lookup on that to get the DNS name of the server. Redirector databases can do the lookups as well.