The best way to accomplish this today is to use <apex:inputField> bound to a date field on an sobject that you create just for this purpose - using an sobject as just another data structure or built in type.
For example, in your controller or controller extension you'll have something like this:
Code:
public Contact getDateProxy() {
return dateProxy;
}
private final Contact dateProxy = new Contact();
Hi, I would like to know if I could use a custom field for Calender/Date in opportunities and have the dates populated automatically into a Calender. And this Calender should be viewed by all the users of the system.
For example, in your controller or controller extension you'll have something like this:
and then you use this from your page like this