CodeCanyon

Employee Work Schedule / Multi-calendar

Employee Work Schedule / Multi-calendar

Employee Work Schedule / Multi Calendar

Includes:

Dashboard with many options

Multiple calendars

Multi-user

Users can register themselves [optional] or the admin can add users.

User groups

Hour calculation

Drag & drop possible

Assigning items to users/employees

Public, private and group calendars

Recurring events

Notifications on screen and/or by email

Printing views

PDF export

viewing Exchange calendars

ICS (iCalendar) export

I welcome new features

More info

This calendar application is very flexible and has many options. Adding items to the calendar is very easy and quick. Unlike other calendar solutions this calendar is very versatile and for every event you have many fields to fill in (optionally) and you can even create own custom edit dialog fields. Drag and drop is possible and also clicking and selecting dates in the calendar views.
An admin can assign items to employees easily.

You can schedule employees to several calendars/spaces (rooms, shops etc.) or you can do it the other way around; add the employees as calendars and assign spaces to them.

It’s a complete JavaScript calendar system, with the base jQuery Fullcalendar, Bootstrap and a PHP/MySQL backend. All Fullcalendar options can be set from the dashboard, you don’t have to go in the code yourself.
The calendar can be accessed with a login, on IP address or public use for everybody.

Unique features
- Every minute (or faster) notification on admin’s client pc when a user adds/changes an event
- Inserting, editing and deleting items is fast and easy.
- Powerful searching of the complete current calendar.
- Public, private or group calendars.
- Besides admin(s) now users can also create calendars.
- Supports recurring events.
- New view with period selection
- You can create two custom dropdowns, the events can also be filtered on those.
- Multilanguage: English, Dutch, German, Spanish, French, Norwegian, Italian, Polish and Czech. You can add your own language file.
- Automatic backup of database including data. (no knowledge of cronjobs necessary)
- The complete calendar is searchable. And the search results can be clicked to go to the event in the calendar. The search results depend on the chosen calendar
- Extensive dashboard, with Hour calculation, User administration, Group administration, Calendar administration and settings. in admin area
- Set alterable range and the option to make the dates gray
- Set active range
- Mobile / Touch friendly
- Import users from a Wordpress users table.
- Possibility to move events to another calendar.
- Add files to an event.
- Admins (employees) can create Usergroups, with sepcified users.
- Securely show events from an Exchange account.
- You can predefine locations for each calendar, so choosing a location in the event edit dialog is easier.
- Notifications can be send to the admin/employer when an event is added/edited.
- Moving events to other calendars is possible.
- Users can be added to user-groups and a calendar can be assigned to such a group.

- Popup dialog for adding, editing and deleting items.
- Choose date and time formats, choose 24 hr. or AM/PM.
- Title fist or time first
- Drag and drop items, external and within the calendar.
- It uses Fullcalendar, a jQuery plug-in.
- Resizing calendar items.
- Month-, week-, day- and listview.
- The calendar can stretch to whole screen width.
- Users can easily change their profile and settings.
- You can install it in a subdomain of your wordpress installation and add a link into one of the website pages to the calendar.

NEW! second list view, searchable and selectable period. You can choose what should happen after a click on an item.

When you have a linux server also make sure that all the folders are readable by group and others and system, dbdump and templates_c have to be writable.

I would appreciate it if people with languages other than included in the calendar would be willing to share the languagefiles so i can include them in the calendar.

INSTALLATION NOTES: Some people seem to have trouble setting the path to the calendar. (FULLCAL_DIR in config.php)
This should be the path to your personal folder on your domain with your provider. You can find it in your provider dashboard or by putting this at the top of config.php: echo getcwd();
Other known startup problems are that the paths are set incorrect in config.php and all the folders should be readable and templates_c, system and system/dbdump should be writable by everyone.
Someone was having problems because some files were writable by group. The providers security didn’t allow that and an Exception (softexception) was thrown. Making it not writable for group fixed the problem.
Also some people had trouble with a https site, because the google api includes in cal.html arre http. changing the urls to https fixes the problem.


Working on

Moreday recurring events
Adding possibility to show the custom dropdwon filters as multiselect dropdowns
Add events via a form outside of the calendar
Add employee availability and contracts
Reminders
Adding Google calendars
Include events from an external table/database (already in Fast & Easy Calendar

KNOWN ISSUES

Installing for the 1st time

1. Extract the zip file and copy all the files to a folder on your server.
2. Create a database and execute all the queries in ‘calendar_complete_db_for_new_users.sql’.
3. Open configs/db.config.php and change the host, name, user and password to match with your database.
4. Open configs/config.php and change the paths (FULLCAL_DIR and FULLCAL_URL) to match your paths.
define(‘FULLCAL_DIR’,’/path-to-web-server/employee-work-schedule’);
If you don’t know what the path-to-web-server should be you can remove the // in front of getcwd() and press f5 on your website. That will show the correct FULLCAL_DIR.
define(‘FULLCAL_URL’, $http_host . ’/employee-work-schedule’);
Don’t change $http_host.
5. Make all the folders readable
6. Make the following folders writable (773) for everyone:
– templates_c
– system
– system/dbdump
– system/uploads
Someone was having problems because some other folders/files were writable by group.
The providers security didn’t allow that and an Exception (softexception) was thrown.
Making them not writable for group fixed the problem.

Installing updates

1. Extract the zip file and copy all the files, NOT the configs folder, uploads folder and templates_c, to your server.
2. Check the change.log if there are database updates. If there are, execute the queries that are in the updateXX.sql file.
3. Check the change.log if there are any new config-options. If there are, add them to your config.php.

Common mistakes

1. Incorrect paths in configs/config.php
2. Incorrect database credentials in configs/db.config.php
3. File/folder permissions incorrect. Only a few folders (and files in it) have to be writable. see point 6 in section ‘Installing for the 1st time’.
4. Forgetting to execute the database queries.

Summary of Updates

All the updates are in the changelog. The most important updates are here:

Update 1 (16-3-2015) – update 20:
Added the possibility to show a mouseover with event details.
Added a scrolling timepicker which also supports AM/PM.
Added possibility to show the events in AM/PM timeformat.
Added possibility to set one or more calendars as default calendar(s), so their items will be opened on initial view of the calendar.
Improved layout for mobile devices
Added posibility to ignore timezones
Added hour calculation of employees in admin area, with ability to filter the results by calendar and period.
Added many options to the settings form in the admin area, easier than setting them in config.php.
Simplified and improved permissions.
Share_type of a calendar can be set now. (public, private of private_group)
It’s really multi-calendar now, besides the employee work schedule functionality.
Added possibility to quickly add new users and new admins.
Added possibility for users to create their own calendars.
Removed wordcloud functionality, because the hourcalculation part made that unnecessary.
Added possibility to show description, location and phone in week view, day view and list view
Added print button for calendar and everything in admin area.
Added possibility to export parts of admin area to Excel.
See and undelete deleted calendars in admin area.
Set calendar active, inactive or active for specific period.
Set alterable range, with config option MASK_UNALTERABLE_DAYS you can choose if you want the unalterable days to be gray.
2 added fields (active and alterable range) in admin panel (last update) should also have been added in user panel
Little change in permissions, so admin with FULL_CONTROL can also see public calendars
Current event is shown in admin dashboard.
Possibility to mail an event to an emailaddress that is set for a calendar. Another admin emailaddress, subject and body (with variables) can be set in config.php
- Added possibility to move event to another calendar
- Notifications to admin/employer by email when user adds or changes an event
- Nicer looking messages
- Included yearly recurring possibility, SQL update necessary, see update7.sql for existing users, for new users it’s in the complete_db_for_new_users.sql.
Fixed a syntax error in mailEvent in cal_events.php (overlooked that one)
Added possibility to set a color and info for a DD-item. (info field is used for mouseover for DD-item, SQL queries needed, see update8.sql for existing users, see complete_db_for_new_users.sql for first installation)
Automatically insert 1 calendar if there is no calendar in the database.
Added possibility to show URL field in the edit dialog
Added Italian language file: langIT.js
Calendar name is now configurable.
IMPORT USERS FROM WORDPRESS TABLE: Added possibility to import users from Wordpress wp_users table. (CSV)
TOUCH FRIENDLY: Made drag & drop and daycell select working on touch devices, configurable in config.php.
Added checkbox in profile edit form to set a user active.
Added possibility to upload and attach files to events, SQL update and 2 config options added: SHOW_FILE_UPLOAD, MAX_EVENT_FILE_UPLOAD, don’t forget to add a writable folder: ‘uploads’.
Added Czech language
3 new config options, to determine which day is first day of week, which hour should be scrolled to initially and which hour should be first visible hour
Improved error catching for new installations, e.g. check on correct ‘calendars’ table and check if the path to the files directory on the webserver doesn’t start with http, an error that some people make. (changed files: /config/config.php and /model/calendar.class.php)
The superadmin with FULL_CONTROL can see the calendar buttons on the frontend now.

Update 21 (4-10-2015)
New config option to define if the weekend days are visible: SHOW_WEEKENDS
Added possibility to disable automatic database backup.

Update 22 (21-11-2015)
SQL update 10 needs to be inserted !! (for existing users)
Admins (employees) can create user-groups now.
Added possibility to predefine the locations for a calendar. If locations are predefined a dropdownlist is shown in the event edit dialog instead of a textfield.
Added to recurring options: daily – every x days and weekly – every x weeks.

Update 23 (25-11-2015)
Added possibility to make fields required in the edit dialog.
Moved settings (show description, location, phone and url) to calendar edit form.
Fixed: in some cases deleted calendars where showed.
Fixed: For some timezones a recurring event started a day to early.
Fixed some notices
Inserted missing ; in the SQL update file

Update 24 (29-11-2015)
Added possibility to make it impossible to edit an event by two users at the same time. (config-option: SAVE_CURRENT_EDITING)
Execute the query in update_11.sql
Tweak: when an event is moved to another calendar, the event has to get the color of the calendar it is added to.

Update 25 (1-12-2015)
Tweaked the functionality that only 1 person at the time can edit an event.
? After 30 minutes the still active rows are set to inactive.
? Added a listener to the close button (x) of the edit dialog so the row can be set to inactive.

Update 27 (14-12-2015)
update13.sql
Added possibility to set the default time duration when dragging. (30, 60 or 120 minutes, config-option: DEFAULT_EVENT_DURATION)
Added possibility to set a group calendar viewable to others.

Update 28 (14-1-2016)
update14.sql
Tweak: Phonenumbers are clickable now. (not fully tested) Several functions on phones are possible that way.
Added possibility to create a PDF of selected period, works in all views and with 1 or more calendars selected. (basic text or table-like)
Added possibility to assign items to users with user-group DD_items, for each calendar you can choose if you want the DD-items to be used for assigning or not.
Added possibility to send email to the user that was assigned an item to. When opening the event you can see who assigned the event. You can choose to show an icon on the event with the new config-option: SHOW_ASSIGNED_BY_ICON.
Added a line in config.php to better determine if a website is https.

Update 29 (3-2-2016)
update15.sql
Added possibility to set a start- and end time for a DD-item. They are used while drag and drop in the monthview. ? When mouseover the DD-item the times get visible for quick reference.
Added possibility to copy events. – added config-option COPY_EVENT_POSSIBLE.
Added possibility to set the sorting order for calendars in the database. (in next update it will be changeable in the dashboard) –

Update 30 (13-2-2016)
update16.sql
Added possibility to have night-shift DD-items.
Tweak: night shifts now take 2 days of space on the calendar.
Tweak: The automatic back-up of the database is now only exporting the calendar tables, so no chance of reaching memory limit when you have put the tables into another existing database with many tables.

Update 32 (24-2-2016)
update17.sql
Added: team member combo in edit dialog and also possibility to assign with that, you set the visibility of this field for every calendar

Update 34 (20-4-2016)
Update18.sql
Added possibility to create 2 custom dropdown that can be showed in the edit dialog and as extra filters on the left of the calendar.
Added possibility to edit specific items of a recurring pattern.
Added possibility to import users from phpBB users table. (3.0.14 and 3.1.7)
Added possibility to set how many days users can see events in advance. Configurable per calendar.

Update 35 (27-4-2016)
Added view in which you can see events by period. Showing is optional.

Update 36 (14-5-2016)
update19.sql
Added tracking user login
Added user filter, only visible for admins
Added possibility to unassign an event (event with team member assigned)

Update 37 (27-5-2016)
update20.sql

Update 38 (21-8-2016)
Update21.sql
Added calendar buttons, filter sorting options, 12H/24H choice and extra info data (location, phone and url) to custom list view.
Added possibility to set if admin gets notifications by email only for events created by logged in -users. Default is that email are send also when user is not logged in. You can find the option in the calendar edit section in the dashboard.
Added lines to language files.
Added possibility to set the validation type for phone numbers.
Fixed a few notices in getEvents
Added allday default setting possibility

Update 39 (2-10-2016)
update22.sql
Tweak: In the notification email the date format now also is in AM-PM format.
Tweak: added ‘users can see next x days’ to global settings. Usable for custom list view.
Added possibility to restrict users to only edit the title.
Added configurable restrictions for users concerning the custom list view.
Added search possibility to custom list view.

Update 40 (27-11-2016)
update23.sql
Added possibility to set more than 1 team member for an event.
Added possibility to set a text color for each calendar.
Added possibility to show a logo instead of calendar name or next to the calendar name.
Added three optional custom dropdowns.
Added: optional phone number to user edit dialog.

Update 41 (14-12-2016)
When determining how many employees are available we have to check on groupID also.
‘Users can see next days’ (and past days) in custom list view couldn’t be set to empty and be saved.
Also added phone number as optional field to the user profile.
Added possibility to export to CSV.

Update 42 (27-12-2016)
added search possibility to users section in the dashboard.
added possibility to add extra date parts in the day blocks in the month view.

Update 43 (26-1-2017)
Added possibility to export whole view or 1 event to iCalendar (ics)
Added option to calendar edit form (in the calendars section) to use the calendar name as title when an event is added.

update 44 (7-2-2017)
update24.sql
fixed deprecated error in Smarty
fixed: recurring events were not being showed in ‘ last added events’ section in the dashboard.
tweak: sorting on calendar and time worked only one-way.
tweak: attempt to fix print layout for some people
tweak: when clicking a calendar which has an alterable period set, the enddate – 7 days is used to go to initially.
fixed: the option to set the title the same as calendar name when adding an event, was accidentally used for every calendar
added possibility that you can set in the calendar form in the dashboard if calendar events can be moved to another calendar. It was only possible for all calendars with a config-option in config.php.
Added name of creator in mouseover popup.
fixed issue with not showing all events in list view.
fixed issue with user filter
tweak: team members are better showed in the available space and in mouseover.
new config-options: TEAMMEMBER_DROPDOWN_SHOW_SELECTALL, SURROUND_TEAMMEMBER_WITH_ARROWS
removed config-option: AVAILABLE_EMPLOYEES_DROPDOWN_EMPTYTEXT

update 45 (15-2-2017) added possibility to show the custom dropdown filter as multiselect dropdownlist.
tweak: the custom list view and calendar view communicate which options are selected in the custom dropdownfilters.
fixed: some people had problems with using the update functionality from within the custom list view in combination with the config-option that says the edit dialog should open in a new tab. the tab was closed too fast so that the update wasn’t done.
fixed: going to the alterable enddate when clicking on the calendar with that alterable period set didn’t go correctly al the time. fixed user filtering, when selecting more than 1 user, the filtering didn’t work as expected.
fixed issue with saving the custom dropdowns when editing an event with ‘all calendars’ selected.
fixed issue with sorting in custom list view

new config-options: SHOW_MULTISELECT_CUSTOM_DROPDOWN_FILTER, SHOW_WHO_ADDED_IN_MOUSEOVER

- Let me know what else you want to see in the hour calculation

by
by
by
by
by
by