Hello fellow members,

As you can see this is my very first post, but I hope that it is one that will be useful to you.  I have noticed all the discussion about the need for a calendar within CPG-Nuke.  Back about two years ago I was creating a website for our church using PHP-Nuke.  I needed an events calendar but couldn't find one that I liked, actually there wasn't much to choose from.  I eventually found http://webcalendar.sourceforge.net/  that seemed to have some of the functionality that I was looking for plus some things that I didn't need.  Well, I cleaned up the code a lot, and got it working as a module in PHP-Nuke.  I am currently working to upgrade our church website to CPG-Nuke, and I have ported my calendar to CPG-Nuke.  Here is a list of features:  

- CPG Install file included.

- Supports dates from 100AD to 3000AD+ using the ADOdb Date Time library from http://phplens.com/phpeverywhere/adodb_date_library
	By default, the config.php file comes setup to begin at 1900 as the earliest date in the calendar that you can add an event for or display.

- Daily, Weekly, Monthly and Yearly calendar views.

- Includes a small month block

- Secured events.  You can choose who sees the events in your calendar.  Uses the groups from CPG-Nuke.

- Single events

- Repeating events
	Daily
	Weekly - by date or by day
	Monthly - by date or by day
	Yearly - by date or by day

- Repeating events by day 
	For monthly repeating events by day you have the following choices 
		For the day: First, Second, Third, Forth, Fifth or Last.
		For the day of week: Day, Weekday, Weekend Day, Sunday - Saturday
		Example for a meeting that is held the second Tuesday of each month, the input would look like this:
			On the <Second> <Tuesday> of the month.     <<-- The values inside the <> are in dropdown boxes.
	For yearly repeating events by day you have the following choices 
		For the day: First, Second, Third, Forth, Fifth or Last.
		For the day of week: Day, Weekday, Weekend Day, Sunday - Saturday
		For the month of the year: January - December
		Example for a Memorial Day which is celebrated on the Last Monday of May, the input would look like this:
			On the <Last> <Monday> of <May>.     <<-- The values inside the <> are in dropdown boxes.

- Event Categories of General, Holiday, Birthday, Anniversary

- Event Images - There is a Calender/images directory where you can put images that you want to assign to your events.  All of the images are then listed in a drop down when you create an event.  The installed images are 18 pixels wide, but you can of course add your own and make them whatever size you wish.  If the event category is set to Holiday and it has an image associated with it, then when the event is displayed on the website, only the image is displayed.  When you mouse over the image, the event description is displayed.

- Set event priorities.  Low, Medium, High: High priority events will always be displayed first and Low events last.

- Calendar is preloaded with 25 US holidays.  If you don't want any holidays in your calendar, you can either comment out the INSERT statements in the install file, or my suggestion would be to just make them all visible only to the administrators

- Repeating event dates can be cancelled.  Example: If you create a weekly repeating event like a meeting, but for some reason one of the future dates needs to be cancelled, you can select just that date and delete it.  This action will remove only the event for the specific date from the calendar.

- Repeating events can have different descriptions for each date.  Example:  Create a repeating event for a Sunday morning church service.  In the description area of the initial date, you can add a template similar to this:
	Sermon:
	Head Usher:
	Ushers:
	Nursery Staff:

	Then, you could go to each specific date, and fill in that template with the information for that specific day. 

NOTE: Repeating events by day will not display before 1970 on a Windows server.  ADOdb has not yet implemented the strtotime function.

Settings can be modified in the config.php file.  See comments in the file for setting descriptions.
