I need a fairly straightforward piece of code that can run inside of MS Outlook and provide a couple of different services. The plug-in should be a standalone piece of code and not part of a larger package. Basic requirements are stable, but look and feel, along with small behavioral aspects, is open to discussion. The main functional components are: ribbon bar button, appointment creation window additions, calendar and contact database access, and communications.
The plug-in should come bundled with a simple installer which will place the required components.
Ribbon Bar Button
The plug-in needs to insert a button on the ribbon bar that can trigger a New Appointment process, displaying the modified New Appointment window. There should also be an appropriate menu entry to invoke the same command.
New Appointment Interface
The existing appointment creation window should be invoked with slight modifications.
1. When new invitees are added to a meeting, the names and full contact detail of the invitees should be handed off to a web services interface (described in communications)
2. Invitee availability information should be gathered and handed off to a web service
3. The window itself needs to be modified to include additional controls around the start time and end time controls. These controls should be a drop down, a slider, a check box and a button. The values of each of these controls should be passed to a web service interface when they change
4. An area containing a table, where the value in the first column of each row is the name of an invitee, and the remaining columns have an arbitrary text heading in the first row and a changeable value (through an API call invoked by a returning web services call) and formatting (e.g. background color) in each other cell
Database access is required for two databases, and in two modes. The databases are the contacts and calendar databases. The two modes are batch and continuous. The plug-in needs a menu option for performing a bulk update of the two databases, which would read those databases from Outlook and hand them off to a web service. The second mode is to continuously monitor the two databases for updates and post these changes to a web service. For example, when a new appointment or contact is created, the details of the event should be communicated to the web services.
The plug-in will need to communicate with a provided API that will invoke web services calls. These services themselves are out of the scope of this request, and for the purposes of development they can be simulated with a stub.
The plug-in should operate in Outlook 2003 and later. The plug-in should operate on Windows XP and later. The plug-in should be developed in C#.
1. Full source of plug-in, including project files and dependencies
2. Documentation explaining source, components, and build instructions
3. Simple screen shots of build processes and execution of the plug-in on at least one platform
Skills: microsoft-outlook, .net, microsoft-windows