All calendars are changed to Sunday-Saturday format.
The date and time is set to Month/Day/Year and AM/PM on the front end but not on the back end. I ran in to too many conflicts on the back end, so I have kept it the way it is.
The default appointment time period is 60min with 30min padding allowing scheduling on the hour or half only. Modifications:
60 min interval application/controllers/appointments.php, line 435
Changing the padding: Lines 416-426 (to go back to 15 min padding, change 416 from 30 to 15 min, change 419 from 30 to 15 min and remove // from 420, 421, 423, and 424
The date picker blocks out days that are filled making it easier for clients to find open days. The default period for booking is 60 days. To modify the default booking period:
Default 60 day view: assets/js/frontend_book.js, line 18,
AND application/controllers/appointments.php, line 346
There is a field for selecting a cell carrier . This allows for sending text message reminders of upcoming appointments. If a sell carrier is not selected, only a email reminder is sent. In order to use you need to manually add the following:
Another column in the user table for id_cellcarrier.
ALTER TABLE `ea_users` ADD `id_cellcarrier`ALTER TABLE `ea_users` CHANGE `id_cellcarrier` `id_cellcarrier` BIGINT(20) UNSIGNED NOT NULL;
CREATE TABLE ea_cellcarrier(
id INT NOT NULL AUTO_INCREMENT','
PRIMARY KEY(id)','
cellco VARCHAR(30)','
cellurl VARCHAR(30))
INSERT INTO `Easy`.`ea_cellcarrier` (`id`,`cellco`, `cellurl`) VALUES (`AT&T`','@txt.att.net`),
('T-Mobile','@tmomail.net'),('3','Verizon','@vtext.com'),('4','Sprint','@messaging.sprintpcs.com'),
('5','Sprint PM','@pm.sprint.com'),('6','Virgin Mobile','@vmobl.com'), ('7','Tracfone','@mmst5.tracfone.com'),
('8','Metro PCS','@mymetropcs.com'),('9','Boost Mobile','@myboostmobile.com'),
('10','Cricket','@sms.mycricket.com'), ('11','Nextel','@messaging.nextel.com'),
('12','Alltel','@message.alltel.com'),('13','Ptel','@ptel.com'),('14','Suncom','@tms.suncom.com'),
('15','Qwest','@qwestmp.com'), ('16','U.S. Cellular','@email.uscc.net')addition of another field in the appointments table.
ALTER TABLE `ea_appointments` ADD ` is_reminded
ALTER TABLE `ea_appointments` CHANGE `is_reminded` `is_reminded` TINYINT(1) NOT NULL DEFAULT '0'; `
Adding a cron job
To automate the reminders to go out at 1:00 AM every day add the following line to your crontab file (mine is in root directory /etc/crontab
0 13 * * * php [path to EA]/index.php cli/reminders
If you wish to run reminders php by command line use: php [path to EA]/index.php cli/reminders
The sync with Google Calendar is modified to accurately reflect creation of recurring appointments in Google Calendar. So, if a client creates an appointment the provider can modify that appointment in Google Calendar to be recurring and EA will reflect that. Modifications that you may want to play with: The default sync time period is set to 60 days out. Things you need to know about this:
In order for EA fields to sync with Google Calendar I have added them to the notes section delimitted as numbers by barrels “| |” One number represents the customer and the other represents the service. This should not ever be deleted. You can use the notes field as always but leave the delimited numbers at the end of the notes.
Unavailable days no longer have a default “unavailable” title. This is to allow for the name of the client and service when recurring appointments sync back.
To adjust the sync period go to libraries/google_sync.php line 301 and change 60 to what ever you want. The longer the period the longer the sync.
Things left undone:
Auto Sync with Google Calendar from Glen Davis
Google Sync of Recurrring Appointments from Dean Maunder
Block out Days from Friedrich Röhrs
ALTER TABLE `ea_appointments` ADD `is_reminded` TINYINT(1) NOT NULL DEFAULT '0'; ALTER TABLE `ea_users` ADD `id_cellcarrier` BIGINT(20) NOT NULL AFTER `id_roles`;
CREATE TABLE `YourEasyAppointmentsDB`.`ea_cellcarrier` ( `id` INT(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), `cellco` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`cellurl` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL)INSERT INTO `YourEasyAppointmentsDB`.`ea_cellcarrier` (`id`, `cellco`, `cellurl`) VALUES ('1', 'AT&T', '@txt.att.net'),
('2', 'T-Mobile', '@tmomail.net'), ('3', 'Verizon', '@vtext.com'), ('4', 'Sprint', '@messaging.sprintpcs.com'),
('5', 'Sprint PM', '@pm.sprint.com'), ('6', 'Virgin Mobile', '@vmobl.com'), ('7', 'Tracfone', '@mmst5.tracfone.com'),
('8', 'Metro PCS', '@mymetropcs.com'), ('9', 'Boost Mobile', '@myboostmobile.com'),
('10', 'Cricket', '@sms.mycricket.com'), ('11', 'Nextel', '@messaging.nextel.com'),
('12', 'Alltel', '@message.alltel.com'), ('13', 'Ptel', '@ptel.com'), ('14', 'Suncom', '@tms.suncom.com'), selectedDate = Date.parse(selectedDate).toString('dd/MM/yyyy');
selectedDate = Date.parse(selectedDate).toString('MM/dd/yyyy');
All calendars are changed to Sunday-Saturday format.
The date and time is set to Month/Day/Year and AM/PM on the front end but not on the back end. I ran in to too many conflicts on the back end, so I have kept it the way it is.
The default appointment time period is 60min with 30min padding allowing scheduling on the hour or half only. Modifications:
60 min interval application/controllers/appointments.php, line 475
Changing the padding: Lines 458-468 (to go back to 15 min padding, change 458 from 30 to 15 min, change 461 from 30 to 15 min and remove // from 462, 463, 465, and 466
The date picker blocks out days that are filled making it easier for clients to find open days. The default period for booking is 60 days. To modify the default booking period:
There is a field for selecting a cell carrier . This allows for sending text message reminders of upcoming appointments. If a sell carrier is not selected, only a email reminder is sent. In order to use you need to manually make the database modifications found here:
https://groups.google.com/d/msg/easy-appointments/yuDcBbWvxa0/WCGz1SOwFQAJ
A reminder utility is added. The default reminder period is 3 days out. This is a simple plaintext email that works well in at text message too. For this to work it requires the following to be done by hand:
Adding a cron job:
To automate the reminders to go out at 1:00 AM every day add the following line to your crontab file (mine is in root directory /etc/crontab
0 01 * * * php [path to EA]/index.php cli/remindersIf you wish to run reminders php by command line use: php [path to EA]/index.php cli/reminders
The sync with Google Calendar is modified to accurately reflect creation of recurring appointments in Google Calendar. So, if a client creates an appointment the provider can modify that appointment in Google Calendar to be recurring and EA will reflect that. Modifications that you may want to play with: The default sync time period is set to 60 days out. Things you need to know about this:
Appointments are sent out with an ICS file attached. In outlook this will automatically add an appointment to the calendar of the customer. Also it will be deleted from the calendar when deleted in EA as well. In Google it is not fully functioning because EA uses PHPmailer which will only allow one or the other formats. I selected to favor outlook because EA allows a customer to select to add to their calendar when they book. Unfortunately Google calendar users cannot get the automatic delegations. So, in the future I will try to migrate EA over to another mailer system that will better accommodate all calendar systems and ics files.
A waiting list utility is added. The client can select to be put on a waiting list for 30 days. There is a cancelation link. I have set it up to look 60 days out. That may be too much for some. You can change it to whatever you like on line 236 of /application/controllers/cli/waitinglist.php. I think I will add buttons later that will select how far out a customer wants to look (7 days, 14 days, 30, and 60). For now 60 works for my needs. If there are openings in the calendar, clients will get a plain text notice by email or email and text, with a list of available days and times. To use the waiting list you must set up a cron job to send out the daily notice. Much of this is a hack of Alex’s code to fit this purpose. Thank you Alex.
Adding a cron job:
To automate the reminders to go out at 11:00 PM every day add the following line to your crontab file (mine is in root directory /etc/crontab
0 23 * * * php [path to EA]/index.php cli/waitinglistColors are changed to reflect my website. To modify colors I used this method:
https://groups.google.com/d/msg/easy-appointments/rIHeNgmt-FQ/mXbXP55rCAAJ
I changed the time picker on the back end: I used the method described here
What is left undone:
Files with my modifications. To see what I have done compare the following in a program like Notepad++:
/application/controllers/
appointments.php
backend_api.php
google.php
I have also added a folder cli (command line interface) in which I have put my custom file for text/email reminders and waitinglist
/application/core/
My_Model.php (added)
/application/libraries/
google_sync.php
notifications.php
/application/libraries/external
class.phpmailer.php I have used the most recent version of phpmailer. This makes the ics file modification possible.
/application/models/
I have added reminders_model.php
Appointments_model.php
cellcarrier_model.php (added)
/application/views/appointments/book.php
book.php
waiting_success.php (added)
/application/views/backend/customers.php
ALTER TABLE `ea_appointments` ADD `is_reminded` TINYINT(1) NULL DEFAULT NULL; ALTER TABLE `ea_users` ADD `id_cellcarrier` BIGINT(20) NOT NULL AFTER `id_roles`;
CREATE TABLE `YourEasyAppointmentsDB`.`ea_cellcarrier` ( `id` INT(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), `cellco` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`cellurl` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL)INSERT INTO `YourEasyAppointmentsDB`.`ea_cellcarrier` (`id`, `cellco`, `cellurl`) VALUES ('1', 'AT&T', '@txt.att.net'),
('2', 'T-Mobile', '@tmomail.net'), ('3', 'Verizon', '@vtext.com'), ('4', 'Sprint', '@messaging.sprintpcs.com'),
('5', 'Sprint PM', '@pm.sprint.com'), ('6', 'Virgin Mobile', '@vmobl.com'), ('7', 'Tracfone', '@mmst5.tracfone.com'),
('8', 'Metro PCS', '@mymetropcs.com'), ('9', 'Boost Mobile', '@myboostmobile.com'), ('12', 'Alltel', '@message.alltel.com'), ('13', 'Ptel', '@ptel.com'), ('14', 'Suncom', '@tms.suncom.com'),0 22 * * * php /<path to easy appointmtnes>/index.php cli/waitinglist
30 7 * * * php /<path to easy appointmtnes>/index.php cli/reminders
30 23 * * * php /<path to easy appointmtnes>/index.php google/sync3All this would be nice but this works for now and looks good. It does exactly what I need for my business.
Google Sync of Recurrring Appointments from Dean Maunder
Block out Days from Friedrich Röhrs
Return to booking option from Andrew Whitaker
https://groups.google.com/d/msg/easy-appointments/PsZl_Hbp0jc/MkQsjk9PBQAJ
Getting rid of the sliders n the back end Amine Hamdi
https://groups.google.com/d/msg/easy-appointments/v9p6Bmnic_o/uXz1FxqlAAAJ
And of course to Alex Tselegidis for the great open source base to work off of, various tips and especially for pointing out the way in to the Sync function;
https://groups.google.com/d/msg/easy-appointments/OGL-1K6JDHY/0S2bXeD1BAAJ
And thanks to multiple contributors who helped straighten out the time change issue in this thread:
https://groups.google.com/d/msg/easy-appointments/fWdjQLYgNA4/H-hVG-VHdO4J
Additional help provided by StackOverflow and Lynda.com's Codigniter Tutorials (worth it).
ALTER TABLE `ea_users` ADD `id_cellcarrier` BIGINT(20) NOT NULL AFTER `id_roles`;
CREATE TABLE `YourEasyAppointmentsDB`.`ea_cellcarrier` ( `id` INT(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), `cellco` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`cellurl` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL)INSERT INTO `YourEasyAppointmentsDB`.`ea_cellcarrier` (`id`, `cellco`, `cellurl`) VALUES ('1', 'AT&T', '@txt.att.net'),
('2', 'T-Mobile', '@tmomail.net'), ('3', 'Verizon', '@vtext.com'), ('4', 'Sprint', '@messaging.sprintpcs.com'),
('5', 'Sprint PM', '@pm.sprint.com'), ('6', 'Virgin Mobile', '@vmobl.com'), ('7', 'Tracfone', '@mmst5.tracfone.com'),
('8', 'Metro PCS', '@mymetropcs.com'), ('9', 'Boost Mobile', '@myboostmobile.com'), ('12', 'Alltel', '@message.alltel.com'), ('13', 'Ptel', '@ptel.com'), ('14', 'Suncom', '@tms.suncom.com'),
0 22 * * * php /<path to easy appointmtnes>/index.php cli/waitinglist
30 7 * * * php /<path to easy appointmtnes>/index.php cli/reminders
30 23 * * * php /<path to easy appointmtnes>/index.php google/sync3Help with DATE/TIME Calendar Formatting
You should find a few threads on the topic. It just involves editing the js for each page. The code was made for Mon-Sun and 24 hour time. just change anything that looks otherwise.
$('#select-date').on('click', function(){
$('#available-hours').text(EALang['no_available_hours']);
});