SlideShare a Scribd company logo
###########################################################

phpBookingCalendar - Booking Calendar
Copyright (C) 2004 Jeffrey James Walters

Licensed under the terms of the GNU Lesser General Public License:
http://www.opensource.org/licenses/lgpl-license.php

For further information visit:
http://www.jjwdesign.com/
design@jjwdesign.com

Version: 1.0 Beta 1
Modified: 2004-08-26
Apache/1.3.31, PHP/5.0.0, MySQL/3.23.57

###########################################################

Setup:

Setup information & variables can be found in:

includes/application_top.php

The first thing you will notice about this file is the quot;testingquot;
server settings. These can be felt alone, unless you wish to setup
a testing server on your Win32 machine. In that case I would
suggest looking towards WAMP5 to accomplish that task. Otherwise,
setup the Web server settings where appropriate.

http://www.en.wampserver.com/

Much of the 'application_top.php' file is setup constants, which
are already defined properly. Web server and file server paths
are defined and PHP include paths are extended.

MAIL_MYNAME and MAIL_MYEMAIL must be set for the Web server to
allow Sendmail to function properly.

Make sure to properly set the SQL database connection constants:
DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD,
DB_DATABASE
Check with your ISP if you are not sure of your database connection.

Towards the bottom of the 'application_top.php' file are the
majority of the booking calendar settings.
BOOKING_TIME_INTERVAL:

This is an extremely important setting!!!!!!!
Once set, it can not be modified. I recommend setting the interval
to either '30' or '15' (seconds). This should suffice for most
booking calendar situations.

MIN_BOOKING_HOUR and MAX_BOOKING_HOUR

This two setting are also extremely important! Once set, you can
expand the range, but it has not been fully tested yet. Reducing the
range would be more challenging and is not yet supported.

location_db_name

This array provides the mapping between location key and the schedule
MySQL DB table field name. Is you add additional keys, make sure to
add the columns to the 'booking_schedule' table.

location_display

This array provides the mapping between location keys and the
display text to be used by the Booking Calendar.

Requirements for authentication (login) and user settings can
also be found at the end of this script.


MySQL:

Once you've defined the basic setup parameters it's time to
setup your MySQL tables. MySQL SQL setup can be found in

includes/sql/mysql.sql

I would recommend using phpMyAdmin or some other MySQL tool
to execute the setup query. Make sure to add columns for
additional locations in the 'booking_schedule' table, if needed.

http://www.phpmyadmin.net/home_page/


FCK Editor 2.0 Beta 1:

The booking calendar takes full advantage of one of the best
WYSIWYG text editors available, FCK Editor. Now in version 2.0,
it supports Internet Explorer, Mozilla and Netscape browsers.

http://www.fckeditor.net/

FCK Editor directory: editor
Setup file for the FCK Editor: fckconfig.js
CSS for the FCK Editor: editor/skins/office2003/fck_editor.css

The FCK Editor distribution has been trimmed down. For additional
skins and languages, please visit the FCK Editor download page.


overLIB 4.00:

Also integrated into the calendar is the overLIB javascript
which handles the creation of the popup information boxes.

http://www.bosrup.com/web/overlib/

CSS/Fonts can be found in the setup file: overlib.js


Beta Warning:

While this is the first official release of the phpBookingCalendar -
booking calendar script, I can not guarantee that future versions will
be backwards compatible. Indeed, the database location mapping will
most likely be integrated into a future administration section.

Thank you for reading all the way down here ;)
Jeff Walters

Feel free to send bugs/comments/corrections/wishes to:
webcalendar@jjwdesign.com

More Related Content

What's hot

Start IoT with jQueryMobile - 기초5
Start IoT with jQueryMobile - 기초5Start IoT with jQueryMobile - 기초5
Start IoT with jQueryMobile - 기초5Park Jonggun
 
Start IoT with jQueryMobile - 기초3
Start IoT with jQueryMobile - 기초3Start IoT with jQueryMobile - 기초3
Start IoT with jQueryMobile - 기초3Park Jonggun
 
Sample of APK Analysis 3 - Gamer
Sample of APK Analysis 3 - GamerSample of APK Analysis 3 - Gamer
Sample of APK Analysis 3 - GamerLin BH
 
The Downsides Of Reciprocal Linking To Increase Search Engine Rankings
The Downsides Of Reciprocal Linking To Increase Search Engine RankingsThe Downsides Of Reciprocal Linking To Increase Search Engine Rankings
The Downsides Of Reciprocal Linking To Increase Search Engine Rankingsflipped69
 

What's hot (6)

Start IoT with jQueryMobile - 기초5
Start IoT with jQueryMobile - 기초5Start IoT with jQueryMobile - 기초5
Start IoT with jQueryMobile - 기초5
 
Start IoT with jQueryMobile - 기초3
Start IoT with jQueryMobile - 기초3Start IoT with jQueryMobile - 기초3
Start IoT with jQueryMobile - 기초3
 
Sample of APK Analysis 3 - Gamer
Sample of APK Analysis 3 - GamerSample of APK Analysis 3 - Gamer
Sample of APK Analysis 3 - Gamer
 
Remote app
Remote appRemote app
Remote app
 
HOTSPOT
HOTSPOTHOTSPOT
HOTSPOT
 
The Downsides Of Reciprocal Linking To Increase Search Engine Rankings
The Downsides Of Reciprocal Linking To Increase Search Engine RankingsThe Downsides Of Reciprocal Linking To Increase Search Engine Rankings
The Downsides Of Reciprocal Linking To Increase Search Engine Rankings
 

Similar to Php Booking Calendar

Software Development Automation With Scripting Languages
Software Development Automation With Scripting LanguagesSoftware Development Automation With Scripting Languages
Software Development Automation With Scripting LanguagesIonela
 
Technical guide - M4- Kent Millamena
Technical guide - M4- Kent MillamenaTechnical guide - M4- Kent Millamena
Technical guide - M4- Kent MillamenaKent Millamena
 
TYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & EditorTYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & EditorNITSAN Technologies
 
Benefit of CodeIgniter php framework
Benefit of CodeIgniter php frameworkBenefit of CodeIgniter php framework
Benefit of CodeIgniter php frameworkBo-Yi Wu
 
1 Introduction to PHP Overview This lab walks y.docx
1  Introduction to PHP Overview This lab walks y.docx1  Introduction to PHP Overview This lab walks y.docx
1 Introduction to PHP Overview This lab walks y.docxhoney725342
 
cbmanual
cbmanualcbmanual
cbmanualMatt D
 
Fundamentals of Extending Magento 2 - php[world] 2015
Fundamentals of Extending Magento 2 - php[world] 2015Fundamentals of Extending Magento 2 - php[world] 2015
Fundamentals of Extending Magento 2 - php[world] 2015David Alger
 
Windows Server AppFabric Caching - What it is & when you should use it?
Windows Server AppFabric Caching - What it is & when you should use it?Windows Server AppFabric Caching - What it is & when you should use it?
Windows Server AppFabric Caching - What it is & when you should use it?Robert MacLean
 
Chef infrastructure as code - paris.rb
Chef infrastructure as code - paris.rbChef infrastructure as code - paris.rb
Chef infrastructure as code - paris.rbNicolas Ledez
 
PHP QA Tools
PHP QA ToolsPHP QA Tools
PHP QA Toolsrjsmelo
 
Jan Egil Ring - Get started with windows power shell desired state configuration
Jan Egil Ring - Get started with windows power shell desired state configurationJan Egil Ring - Get started with windows power shell desired state configuration
Jan Egil Ring - Get started with windows power shell desired state configurationNordic Infrastructure Conference
 
How to install Vertica in a single node.
How to install Vertica in a single node.How to install Vertica in a single node.
How to install Vertica in a single node.Anil Maharjan
 

Similar to Php Booking Calendar (20)

Software Development Automation With Scripting Languages
Software Development Automation With Scripting LanguagesSoftware Development Automation With Scripting Languages
Software Development Automation With Scripting Languages
 
Technical guide - M4- Kent Millamena
Technical guide - M4- Kent MillamenaTechnical guide - M4- Kent Millamena
Technical guide - M4- Kent Millamena
 
TYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & EditorTYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
 
Kafka and kafka connect
Kafka and kafka connectKafka and kafka connect
Kafka and kafka connect
 
Benefit of CodeIgniter php framework
Benefit of CodeIgniter php frameworkBenefit of CodeIgniter php framework
Benefit of CodeIgniter php framework
 
os-php-wiki5-a4
os-php-wiki5-a4os-php-wiki5-a4
os-php-wiki5-a4
 
os-php-wiki5-a4
os-php-wiki5-a4os-php-wiki5-a4
os-php-wiki5-a4
 
Php myadmin
Php myadminPhp myadmin
Php myadmin
 
Manual 5
Manual 5Manual 5
Manual 5
 
1 Introduction to PHP Overview This lab walks y.docx
1  Introduction to PHP Overview This lab walks y.docx1  Introduction to PHP Overview This lab walks y.docx
1 Introduction to PHP Overview This lab walks y.docx
 
Cake php
Cake phpCake php
Cake php
 
cbmanual
cbmanualcbmanual
cbmanual
 
Cakephp manual-11
Cakephp manual-11Cakephp manual-11
Cakephp manual-11
 
Fundamentals of Extending Magento 2 - php[world] 2015
Fundamentals of Extending Magento 2 - php[world] 2015Fundamentals of Extending Magento 2 - php[world] 2015
Fundamentals of Extending Magento 2 - php[world] 2015
 
Windows Server AppFabric Caching - What it is & when you should use it?
Windows Server AppFabric Caching - What it is & when you should use it?Windows Server AppFabric Caching - What it is & when you should use it?
Windows Server AppFabric Caching - What it is & when you should use it?
 
Chef infrastructure as code - paris.rb
Chef infrastructure as code - paris.rbChef infrastructure as code - paris.rb
Chef infrastructure as code - paris.rb
 
PHP QA Tools
PHP QA ToolsPHP QA Tools
PHP QA Tools
 
Install
InstallInstall
Install
 
Jan Egil Ring - Get started with windows power shell desired state configuration
Jan Egil Ring - Get started with windows power shell desired state configurationJan Egil Ring - Get started with windows power shell desired state configuration
Jan Egil Ring - Get started with windows power shell desired state configuration
 
How to install Vertica in a single node.
How to install Vertica in a single node.How to install Vertica in a single node.
How to install Vertica in a single node.
 

Recently uploaded

IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...Product School
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...CzechDreamin
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupCatarinaPereira64715
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsStefano
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationZilliz
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...Product School
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityScyllaDB
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 

Recently uploaded (20)

IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 

Php Booking Calendar

  • 1. ########################################################### phpBookingCalendar - Booking Calendar Copyright (C) 2004 Jeffrey James Walters Licensed under the terms of the GNU Lesser General Public License: http://www.opensource.org/licenses/lgpl-license.php For further information visit: http://www.jjwdesign.com/ design@jjwdesign.com Version: 1.0 Beta 1 Modified: 2004-08-26 Apache/1.3.31, PHP/5.0.0, MySQL/3.23.57 ########################################################### Setup: Setup information & variables can be found in: includes/application_top.php The first thing you will notice about this file is the quot;testingquot; server settings. These can be felt alone, unless you wish to setup a testing server on your Win32 machine. In that case I would suggest looking towards WAMP5 to accomplish that task. Otherwise, setup the Web server settings where appropriate. http://www.en.wampserver.com/ Much of the 'application_top.php' file is setup constants, which are already defined properly. Web server and file server paths are defined and PHP include paths are extended. MAIL_MYNAME and MAIL_MYEMAIL must be set for the Web server to allow Sendmail to function properly. Make sure to properly set the SQL database connection constants: DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE Check with your ISP if you are not sure of your database connection. Towards the bottom of the 'application_top.php' file are the majority of the booking calendar settings.
  • 2. BOOKING_TIME_INTERVAL: This is an extremely important setting!!!!!!! Once set, it can not be modified. I recommend setting the interval to either '30' or '15' (seconds). This should suffice for most booking calendar situations. MIN_BOOKING_HOUR and MAX_BOOKING_HOUR This two setting are also extremely important! Once set, you can expand the range, but it has not been fully tested yet. Reducing the range would be more challenging and is not yet supported. location_db_name This array provides the mapping between location key and the schedule MySQL DB table field name. Is you add additional keys, make sure to add the columns to the 'booking_schedule' table. location_display This array provides the mapping between location keys and the display text to be used by the Booking Calendar. Requirements for authentication (login) and user settings can also be found at the end of this script. MySQL: Once you've defined the basic setup parameters it's time to setup your MySQL tables. MySQL SQL setup can be found in includes/sql/mysql.sql I would recommend using phpMyAdmin or some other MySQL tool to execute the setup query. Make sure to add columns for additional locations in the 'booking_schedule' table, if needed. http://www.phpmyadmin.net/home_page/ FCK Editor 2.0 Beta 1: The booking calendar takes full advantage of one of the best
  • 3. WYSIWYG text editors available, FCK Editor. Now in version 2.0, it supports Internet Explorer, Mozilla and Netscape browsers. http://www.fckeditor.net/ FCK Editor directory: editor Setup file for the FCK Editor: fckconfig.js CSS for the FCK Editor: editor/skins/office2003/fck_editor.css The FCK Editor distribution has been trimmed down. For additional skins and languages, please visit the FCK Editor download page. overLIB 4.00: Also integrated into the calendar is the overLIB javascript which handles the creation of the popup information boxes. http://www.bosrup.com/web/overlib/ CSS/Fonts can be found in the setup file: overlib.js Beta Warning: While this is the first official release of the phpBookingCalendar - booking calendar script, I can not guarantee that future versions will be backwards compatible. Indeed, the database location mapping will most likely be integrated into a future administration section. Thank you for reading all the way down here ;) Jeff Walters Feel free to send bugs/comments/corrections/wishes to: webcalendar@jjwdesign.com