:date: Easy!Appointments - Open Source Appointment Scheduler

Overview


Easy!Appointments
Easy!Appointments


A powerful Open Source Appointment Scheduler that can be installed on your server.

GitHub GitHub release (latest by date) GitHub All Releases

AboutFeaturesSetupInstallationLicense

screenshot

About

Easy!Appointments is a highly customizable web application that allows customers to book appointments with you via a sophisticated web interface. Moreover, it provides the ability to sync your data with Google Calendar so you can use them with other services. It is an open source project that you can download and install even for commercial use. Easy!Appointments will run smoothly with your existing website as it can be installed in a single folder of the server and of course share an existing database.

Features

The application is designed to be flexible enough so that it can handle any enterprise work flow.

  • Customers and appointments management.
  • Services and providers organization.
  • Working plan and booking rules.
  • Google Calendar synchronization.
  • Email notifications system.
  • Self hosted installation.
  • Translated user interface.
  • User community support.

Setup

To clone and run this application, you'll need Git, Node.js (which comes with npm) and Composer installed on your computer. From your command line:

# Clone this repository
$ git clone https://github.com/alextselegidis/easyappointments.git

# Go into the repository
$ cd easyappointments

# Install dependencies
$ npm install && composer install

# Start the file watcher
$ npm start

Note: If you're using Linux Bash for Windows, see this guide or use node from the command prompt.

You can build the files by running npm run build. This command will bundle everything to a build directory.

Installation

You will need to perform the following steps to install the application on your server:

  • Make sure that your server has Apache/Nginx, PHP and MySQL installed.
  • Create a new database (or use an existing one).
  • Copy the "easyappointments" source folder on your server.
  • Make sure that the "storage" directory is writable.
  • Rename the "config-sample.php" file to "config.php" and update its contents based on your environment.
  • Open the browser on the Easy!Appointments URL and follow the installation guide.

That's it! You can now use Easy!Appointments at your will.

You will find the latest release at easyappointments.org. If you have problems installing or configuring the application visit the official support group. You can also report problems on the issues page and help the development progress.

License

Code Licensed Under GPL v3.0 | Content Under CC BY 3.0


Website alextselegidis.com  ·  GitHub alextselegidis  ·  Twitter @alextselegidis

More Projects On Github
Plainpad · Self Hosted Note Taking App
Questionful · Web Questionnaires Made Easy
Integravy · Service Orchestration At Your Fingertips
Comments
  • Cannot complete the appointment wizard - Got AJAX Error (v1.1 Beta).

    Cannot complete the appointment wizard - Got AJAX Error (v1.1 Beta).

    Hi when i try to confirm the apointment show up "the operation could not complete due to unexpected issues.

    Details AJAX Error: error

    " can you help me [email protected] thanks you

    image

    opened by migueldelias 37
  • Captcha dont show the image.

    Captcha dont show the image.

    Hello, after install the version master the captcha image dont show...and in the packcage dont have nothing with Gregwar captcha.

    simply dont make any appointment becouse acont see the image...

    and after refresh image dont show nothing too.

    thank you

    opened by Presidents 32
  • Launched from local to website, now displaying an AJAX internal service error on front end.

    Launched from local to website, now displaying an AJAX internal service error on front end.

    /index.php/appointments/ajax_get_unavailable_dates?max_date=60&provider_id=…_id=13&selected_date=2017-03-26&csrfToken=bb98f082316e0e0427f6d4c952ee1686

    Failed to load resource: the server responded with a status of 500 (Internal Server Error)

    Above is what the log tells me when I hit inspect. You can navigate and see on the site (thebarbershock.com)

    I downloaded Craig's Easyblue as well. I run php 5.6 through bluehost.

    opened by jacobandrews96 31
  • Upgrade to Bootstrap 4 and Font Awesome.

    Upgrade to Bootstrap 4 and Font Awesome.

    Updated to Bootstrap 4 and using font awesome and changed the navigation, button/link colors, and in page navigation (nav pills). All pages are still responsive.

    Pages that were updated:

    • login
    • logout
    • book
    • book success
    • calendar
    • customers
    • services
    • users
    • settings

    Buttons

    • Primary buttons are now btn-info
    • Default buttons are now btn-light This is to keep the UI semi-similar to your existing colors.

    Links

    • Now match the primary (btn-info) color.

    Inputs

    Bootstrap updated their input style, now there are borders around the whole field.

    Header Navigation

    Bootstrap updated their header navigation style, I put my own little spin on it which adds animation when you hover over an item.

    Page Navigation (previously nav pills)

    Bootstrap updated their nav pills, instead I decided to just use their nav tabs.

    Screen Shot 2020-05-05 at 4 07 14 PM Screen Shot 2020-05-05 at 4 07 29 PM Screen Shot 2020-05-05 at 4 08 08 PM Screen Shot 2020-05-05 at 4 08 22 PM Screen Shot 2020-05-05 at 4 08 28 PM Screen Shot 2020-05-05 at 4 08 37 PM Screen Shot 2020-05-05 at 4 08 47 PM Screen Shot 2020-05-05 at 4 09 12 PM Screen Shot 2020-05-05 at 4 10 05 PM Screen Shot 2020-05-05 at 4 10 11 PM
    opened by janinavelasco9 28
  • Error: The operation could not complete due to unexpected issues

    Error: The operation could not complete due to unexpected issues

    I have been trying to install EA and have been getting this error message: The installation could not be completed due to an unexpected issue. Please check the browser's console for more information. Close.

    When I investigate I found out that it's a 500 (Internal server error).

    Can you please help as I'm stuck and do not know what to do from here.

    help wanted 
    opened by Luvuyob 28
  • Unable to login after fresh installation

    Unable to login after fresh installation

    Hi,

    Great program, can't wait to get it working!!

    So I installed vers 1.2 setup database config.php and corrected all the file permissions, that was just to get it installed. I am running CentOS 6 on a medium market VPS. We use CentosControlPanel (CWP) & PHP 7.1 + Apache 2.3.1

    After entering the info, it takes us to login page, unfortunately it just won't let us in. We did the 'Forgot password' and sure enough it send a new password, but no joy - cannot login.

    Any help would be appreciated :)

    help wanted 
    opened by jacob0davies 27
  • Improved Docker support

    Improved Docker support

    In this pull request I've prepared a better Docker support, including development and production deployment configurations. I had to deploy this application, Docker is my favorite tool and PHP is not :wink: I think it may be useful to others. Previous Dockerfile and docker-compose.yml were... just bad.

    Also I added a few lines to README, explaining how to run application as a container.

    Tell me if I can improve anything.

    opened by Valian 22
  • Time not displaying on page 2 and can't access backed

    Time not displaying on page 2 and can't access backed

    My config file is good and the software was also working till yesterday

    But now it says doesn't display any time slot on the booking page neither is it showing the backend

    My host is Sixserve (Free Plan)

    opened by kawish 18
  • Getting blank page after installation.

    Getting blank page after installation.

    Hi there,

    I followed the installation guide and did the following steps:

    • copied the files to a directory accessible via http
    • chown everything to www:www
    • renamed config-sample.php to config.php
    • edited config.php with mysql credentials/host and base URL, also set DEBUG_MODE to TRUE.

    When I try to access index.php I will get a 200 OK but no content.

    I'm running nginx 1.8.1, php 5.6.20 and mariadb 10.0.23.

    Logs say that the request was fulfilled with 200 OK, nothing special about that request in nginx and php-fpms error logs.

    PHP is working (there are apps like owncloud etc. working on the server).

    The server enforces HTTPS with a valid certificate, but that shouldn't be a problem right?

    Any ideas?

    Thanks! I'm very interested in this great application.

    help wanted 
    opened by maximusmusterus1 17
  • Unavailable events do not block time from services with multiple attendants.

    Unavailable events do not block time from services with multiple attendants.

    opened by alextselegidis 13
  • Back-end login does not work with PHP 7.1

    Back-end login does not work with PHP 7.1

    I have installed and configured the config.php file. When I try to log in using my admin credentials, there is no response from the system and the form resets. Also, there's no ajax_check_login in network tab. It appears for few milliseconds and then the form resets. Please help. I have xampp version 3.2.2 (php 7) running on my system. image

    bug 
    opened by piyushmantri 13
  • Bump decode-uri-component from 0.2.0 to 0.2.2

    Bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • Inconsistency when saving `working_plan_exceptions`

    Inconsistency when saving `working_plan_exceptions`

    working_plan_exceptions is a JSON object and is saved as object in the database.

    But in some case, when a provider is saved without working_plan_exceptions defined, it is saved as en empty array in database ! This is due to PHP which does not differentiate between objects and array (but this is not the case with JSON).

    The problem appears at least here: https://github.com/alextselegidis/easyappointments/blob/44af526a6fc5e898bc1e0132b2af9eb3a9b2c466/application/models/Providers_model.php#L354

    Is this a problem ?

    A fix used in other places in the code is to do

    krsort($value);
    
    // $value = json_encode($value);
    $value = json_encode(empty($value) ? new stdClass() : $value);
    
    opened by popod 2
  • Booking reschedule: Fixed manage mode getter

    Booking reschedule: Fixed manage mode getter

    Greetings! Fix to issue when client is modifying his appointment: A new booking was created instead of modifying old one. It seems that Manage-mode was not properly set on register() function.

    opened by eerojaaskelainen 1
  • Feature: Service sorting

    Feature: Service sorting

    Here is my solution for sorting services (#1328). Sorting column added, and services can be sorted by dragging in Services backend page. Using JQuery UI Sortable plugin.

    Had to remove HR tag because lines were messed up when sorting. Added border in element CSS instead.

    opened by eerojaaskelainen 1
  • get_setting: If setting is 0, it is not a error.

    get_setting: If setting is 0, it is not a error.

    Problem recreation:

    1. Add Service
    2. Add Service Provider
    3. Disable notifications from Service Provider
    4. Add Service to Service Provider
    5. Book appointment from added Service and Provider

    Appointment will be added and Customer email is sent, but booking fails to Exception "The requested setting value was not found: 7"

    Value that fails is 'notifications'.

    DB returns array, but when notifications are disabled, the setting value is '0', that PHP empty() -function translates as TRUE.

    Here is my suggestion to fix issue with isset()-function that will truly check whether specified property exists.

    opened by eerojaaskelainen 1
Releases(1.5.0-dev.2)
  • 1.5.0-dev.2(Mar 29, 2022)

  • 1.4.3(Mar 8, 2022)

    Easy!Appointments is a self hosted, open source web scheduler application that is very easy to setup on your server.

    This is a stable release, you can use it in production environments and/or update your existing installations.

    https://easyappointments.org

    [1.4.3] - 2022-03-08

    Added

    • #1208: Security configuration enhancements in the application.
    • #1209: Add support for PHP 8.1.

    Changed

    • #1207: Replace CodeIgniter with the system directory for smaller package size and more control over the framework.
    • #1210: Move the change language operation into a new public controller.
    • #1212: Remove the Google Calendar read-only scope use as it is not needed.
    • #1213: Switch to go-to-latest database migration configuration for simplicity.
    • #1216 Replace Google Client JS with the Google Calendar Template link in the book success page enhancement.

    Fixed

    • #1211: The table calendar view breaks for secretaries and providers due to appointment and unavailability removals bug.
    • #1214: Provider and secretary users can only add unavailabilities for their authorized users bug.
    Source code(tar.gz)
    Source code(zip)
    easyappointments-1.4.3.zip(19.14 MB)
  • 1.4.3-beta.1(Feb 25, 2022)

    Easy!Appointments is a self hosted, open source web scheduler application that is very easy to setup on your server.

    This is a pre-release, please report any issues directly on GitHub so that they are solved before the final release.

    https://easyappointments.org

    [1.4.3] - TBA

    Added

    • #1208: Security configuration enhancements in the application
    • #1209: Add support for PHP 8.1

    Changed

    • #1207: Replace CodeIgniter with the system directory for smaller package size and more control over the framework
    • #1210: Move the change language operation into a new public controller
    • #1212: Remove the Google Calendar read-only scope use as it is not needed
    • #1213: Switch to go-to-latest database migration configuration for simplicity
    • #1216 Replace Google Client JS with the Google Calendar Template link in the book success page enhancement

    Fixed

    • #1211: The table calendar view breaks for secretaries and providers due to appointment and unavailability removals bug
    • #1214: Provider and secretary users can only add unavailabilities for their authorized users bug
    Alex Tselegidis, Easy!Appointments Creator
    Need a customization? Get a free quote!
    Source code(tar.gz)
    Source code(zip)
    easyappointments-1.4.3-beta.1.zip(19.14 MB)
  • 1.5.0-dev.1(Jan 24, 2022)

  • 1.4.2(Jul 27, 2021)

    [1.4.2] - 2021-07-27

    Added

    • #1004: Add support for line breaks when displaying the service description in the frontend.
    • #1040: Support all-day events while syncing with Google Calendar.

    Fixed

    • #961: Timezone/UX issue: Wrong day is selected when timezone differs by -1 day.
    • #966: Secretaries are getting notification emails for providers that are not assigned to them.
    • #980: Missing Pacific (and potentially other) timezones.
    • #982: The Any-Provider option might lead to double bookings, if all the providers have the same number of appointments for the selected date.
    • #986: Managed to replicate appointment hash collisions.
    • #989: Fix Critical mistake resulting in wrong date
    • #990: The API availabilities controller throws an error when generating availability for services with multiple attendants.
    • #991: Available hours generated with the "Any Provider" option in the booking page, may use the information of a provider that is not assigned to the selected service.
    • #993: Add support for PHP8 (vendor packages need to be updated).
    • #1000: Small fix for the display of the delete button in table view.
    • #1011: Working plan exception - details pane shows incorrect details.
    • #1023: Backend calendar table events missing or duplicated.
    • #1026: The timepicker sliders do not work when using an iOS device.
    • #1029: Enhance SMTP functions of PHPMailer.
    • #1043: Unavailable events do not block time from services with multiple attendants.
    • #1046: Make sure that saving the modifications of a single break does not cancel any pending break edits.
    • #1068: Set minimum service duration field value to honor the value of EVENT_MINIMUM_DURATION.
    • #1073: Update PHPMailer dependencies.
    • #1074: In case of deletion of one appointment, system sends email to admins anyway even if they have email notifications disabled.
    • #1092: Javascript RangeError on appointment change causing disabled calendar dates.
      Alex Tselegidis, Easy!Appointments Creator
      Need a customization? Get a free quote!
    Source code(tar.gz)
    Source code(zip)
    easyappointments-1.4.2.zip(72.24 MB)
  • 1.4.2-beta.1(Jul 19, 2021)

    [1.4.2] - TBA

    Added

    • #1004: Add support for line breaks when displaying the service description in the frontend.
    • #1040: Support all-day events while syncing with Google Calendar.

    Fixed

    • #961: Timezone/UX issue: Wrong day is selected when timezone differs by -1 day.
    • #966: Secretaries are getting notification emails for providers that are not assigned to them.
    • #980: Missing Pacific (and potentially other) timezones.
    • #982: The Any-Provider option might lead to double bookings, if all the providers have the same number of appointments for the selected date.
    • #986: Managed to replicate appointment hash collisions.
    • #989: Fix Critical mistake resulting in wrong date
    • #990: The API availabilities controller throws an error when generating availability for services with multiple attendants.
    • #991: Available hours generated with the "Any Provider" option in the booking page, may use the information of a provider that is not assigned to the selected service.
    • #993: Add support for PHP8 (vendor packages need to be updated).
    • #1000: Small fix for the display of the delete button in table view.
    • #1011: Working plan exception - details pane shows incorrect details.
    • #1023: Backend calendar table events missing or duplicated.
    • #1026: The timepicker sliders do not work when using an iOS device.
    • #1029: Enhance SMTP functions of PHPMailer.
    • #1043: Unavailable events do not block time from services with multiple attendants.
    • #1046: Make sure that saving the modifications of a single break does not cancel any pending break edits.
    • #1068: Set minimum service duration field value to honor the value of EVENT_MINIMUM_DURATION.
    • #1073: Update PHPMailer dependencies.
    • #1074: In case of deletion of one appointment, system sends email to admins anyway even if they have email notifications disabled.
    • #1092: Javascript RangeError on appointment change causing disabled calendar dates.
    Source code(tar.gz)
    Source code(zip)
    easyappointments-1.4.2-beta.1.zip(72.24 MB)
  • 1.4.1(Dec 17, 2020)

    [1.4.1] - 2020-12-14

    Added

    • #952: Add timezone support in the REST API, when managing users.
    • #955: Display confirmation modal when disabling a connected Google Calendar Sync.

    Fixed

    • #945: Google Calendar sync throws an error with all day Google Calendar Events.
    • #946: Typo in JavaScript code leads to a broken calendar view, when loading unavailability events with note contents.
    • #948: Multiple attendant services may lead to double booking.
    • #950: Cannot create provider without services via the API, some values (other endpoints) are optional too.
    • #953: Current time indicator in fullcalendar is showing time in local timezone and not in the user selected timezone.
    • #954: The password must be provided via the API when creating new users.
      Alex Tselegidis, Easy!Appointments Creator
      Need a customization? Contact me in person!
    Source code(tar.gz)
    Source code(zip)
    easyappointments-1.4.1.zip(17.30 MB)
  • 1.4.0(Dec 9, 2020)

    [1.4.0] - 2020-12-09

    Added

    • #203: Appointment location / 12-hour format / sync notes and location in Google Calendar.
    • #221: Fixed/Improved sort breaks increasingly by hour within day.
    • #247: Add new system-wide setting for removing the "Any Provider" option of the booking page.
    • #251: Automatically populate the appointment end datetime in API.
    • #301: Automatically reload the backend calendar events.
    • #313: How to set the timezone from the user booking the appointment.
    • #365: Only allow appointments for a few weeks in advance.
    • #431: Add support for working plan exceptions.
    • #471: Add new system-wide setting that enable users to choose the first day of the week.
    • #496: Add pagination on every backend page in order to make filter requests faster.
    • #501: Integrate script for assets minification.
    • #502: Config::DEBUG value toggles the use of normal or minified asset files.
    • #546: Add appointment edit link in the backend customers page.
    • #550: Multi-Lang Front-End selection popup not working on mobile.
    • #551: Front-End booking calendar not syncing with business logic working plan.
    • #572: Ensure the database structure is compatible to at least MySQL 5.5.
    • #576: Appointment cancelled exception not showing properly.
    • #610: Token based authentication for the Rest API.
    • #648: Add a warning when customers delete their personal information.
    • #655: Creating an appointment requires user to enter their phone number enhancement.
    • #659: Automatically detect browser language enhancement.
    • #663: Language selector not working under legacy iOS (v.10.3.1).
    • #680: Generate new password in the generate_random_string function may create duplicate passwords, plus it is not secure enough.
    • #739: Enhance the table view mode by replacing the tables with fullcalendar instances.
    • #770: Store customer's language and use it with notifications or when the customer manages and existing appointment.
    • #889: Notify admins and secretaries on appointment changes.

    Changed

    • #386: Service price should be optional.
    • #428: Enable book advance timeout values in days.
    • #568: Sort providers alphabetically in the booking page.
    • #745: Add appointment notes preview in the event popover.

    Fixed

    • #171: Google calendar sync - wrong timezone for appointments.
    • #195: Fix Google calendar sync activation error (JavaScript).
    • #298: Provider availability issue when selecting the "Any Provider" option.
    • #396: Start and end time do not update correctly during calendar time selection on iPad (and other Safari based devices).
    • #447: Captcha error using docker (500 error).
    • #506: Working plan created in version v1.2.1 wrongly displayed in backend with version v1.3.1.
    • #507: Need to manually clean the cache when migrating from v1.2.1 to v1.3.1.
    • #541: Can't remove (empty) customer notes field.
    • #549: Querying appointments API endpoint with the q parmeter produces PHP warnings.
    • #557: App not connecting to MySQL with fresh docker run.
    • #562: Unavailability periods with length of more than 1 day are not handled correctly.
    • #563: Description field overflows with long text.
    • #600: Unable to select Language on mobile phones.
    • #611: Double replacement when using translation to other languages.
    • #664: Easy!Appointments v1.3.2 allows sensitive information disclosure (username and password hash).
    • #687: Errors when the provider modifies an appointment.
    • #705: The alert notification of the installation is not being displayed on error.
    • #757: Corrected display of datetimepickers when editing events.
    • #801: Invalid time duration during appointment registration could lead to DOS of the service.
    • #813: Hyperlinks are not being displayed correctly inside legal contents (they are escaped).
    • #839: Provider is missing on appointment modal opened after a click on the link sent with the provider email confirmation.
    • #840: Start/end datetime are not correctly initialized on Safari when the appointment modal is opened after a click in the backend calendar.
    • #883: Appointment date is wrongly changed to today in some case.
    • #903: Notification not working when creating/updating/deleting an appointment from the REST API.
    Source code(tar.gz)
    Source code(zip)
    easyappointments-1.4.0.zip(17.43 MB)
  • 1.4.0-beta.1(Oct 22, 2020)

  • 1.3.2(Jul 29, 2018)

    Fixed

    • #480: Make the app GDPR - new EU privacy regulations compliant.
    • #485: Make REST API search check with "q" parameter case insensitive.
    • #489: REST API response headers must use the Content-Type application/json value.
    • #500: Performance optimization in backend calendar page, after the user clicks the insert appointment button.
    • #510: Providers should not be able to create appointments for other providers in the backend calendar page.
    • #512: Only show appointments of the currently logged in provider.
      Alex Tselegidis, Easy!Appointments Creator
      Need a customization? Contact me in person!
    Source code(tar.gz)
    Source code(zip)
    easyappointments_1.3.2.zip(3.12 MB)
  • 1.3.2-beta.1(Jun 24, 2018)

    Fixed

    • #480: Make the app GDPR - new EU privacy regulations compliant.
    • #485: Make REST API search check with "q" parameter case insensitive.
    • #489: REST API response headers must use the Content-Type application/json value.
    • #500: Performance optimization in backend calendar page, after the user clicks the insert appointment button.
      Alex Tselegidis, Easy!Appointments Creator
      Need a customization? Contact me in person!
    Source code(tar.gz)
    Source code(zip)
    easyappointments_1.3.2_beta.1.zip(3.13 MB)
  • 1.3.1(Jun 3, 2018)

    Added

    • #410: Time format from American style to European
    • #441: Added time format selection
    • #452: Provide more information when errors occur during the installation.

    Changed

    • #494: French translation corrections/improvements.

    Fixed

    • #433: Selected date when editing an appointment
    • #436: All days unavailable in agendaDay view
    • #438: Error on update process from 1.2.1 to 1.3.0
    • #440: Correct label text for customer phone number in back-end calendar event popup.
    • #453: Unavailable periods not taken into account when more than one customer
    • #455: French Spelling
    • #459: Aggregate Appointment API crashes when a break was added
    • #461: Invalid working plan parsing for foreign languages on day view of the default calendar view.
    • #475: Booking page date selection is broken with any_provider option selected.
    • #483: In backend, calendar for providers become unselectable if switched to calendar for service.
    • #491: Replace hardcoded string with translation in appointment details email template.
    • #495: Database migration fixes (from 1.2.1 to 1.3.x).
    • #497: Backend settings are not being displayed on page load when the user is not an admin.
      Alex Tselegidis, Easy!Appointments Creator
      Need a customization? Contact me in person!
    Source code(tar.gz)
    Source code(zip)
    easyappointments_1.3.1.zip(2.97 MB)
  • 1.3.1-beta.1(Apr 26, 2018)

  • 1.3.0(Feb 28, 2018)

    This release brings many enhancements and fixes to the Easy!Appointments platform. The user experience has become more stable and the system performs faster that previous releases. Email notifications now include ICS files, time is formatted into the regular format (HH:MM AM/PM), Sunday became the first day of the week and the back-end calendar supports the creation of new events just be clicking and draging into the the time slots.

    The code has be under heavy refactoring in order to make further development faster and debugging is now easier that ever before as messages become more descriptive. CodeIgniter is updated to the latest release as well as FullCalendar did. Older code syntax was replaced with newer one and all the source files where auto-formatted so that they follow the same code style.

    Added

    • #65: Insert new appointment by clicking directly on the calendar.
    • #122: Add customer email and phone number in the event popover of the backend/calendar page.
    • #152: Add support for American Time Format (AM/PM).
    • #176: Add Docker container for Easy!Appointments development.
    • #362: Add Arabic language translation.
    • #395: Add aggregates GET parameter in the appointments REST API resource.
    • #397: Allow PHP v7.1 compatibility.
    • #398: Send ICS files with customer/provider email confirmations.
    • #399: Integrate cache busting for assets into the app.
    • #402: Create simple "update" page.

    Changed

    • #276: Update FullCalendar dependency.
    • #394: Corrections in the Bootstrap classes in view files.
    • #401: Replace loading spinner graphic with a newer one.
    • #403: All calendars will start with Sunday as the first day.

    Fixed

    • #155: Appointment management modal is not updated after appointment duration resize.
    • #236: Duplicate availabilities with short service duration and unavailabilities ignorance.
    • #315: Calendar doesn't update when Attendants number changes.
    • #334: Use of session_start() function may cause issues as the default options are not being used.
    • #336: Deleting provider doesn't work in some languages.
    • #337: Full day appointment with multiple attendants are not being taken into concern during availabilities generation.
    • #342: Email notifications must honor the date format value.
    • #370: AJAX Error: SyntaxError: Unexpected token < in JSON at position 0

    Removed

    • #400: Remove jscrollpane dependency.

    Deprecated

    • The availabilities generation and AJAX endpoints will change with a future release.
      Alex Tselegidis, Easy!Appointments Creator
      Need a customization? Contact me in person!
    Source code(tar.gz)
    Source code(zip)
    easyappointments_1.3.0.zip(2.96 MB)
  • 1.3.0-beta.2(Feb 7, 2018)

  • 1.3.0-beta.1(Jan 15, 2018)

  • 1.3.0-alpha.1(Jan 2, 2018)

  • 1.2.1(May 21, 2017)

    This is a revision release and fixes compatibility issues with PHP 7.1, corrects session handling issues with servers that do not have the required sessions configurations and includes updates for third party libraries used by the app.

    Changelog

    • #241: Set default sessions save_path directory because many servers do not have this option set.
    • #306: Back-end login does not work with PHP 7.1.
      Alex Tselegidis, Easy!Appointments Creator
      Need a customization? Contact me in person!
    Source code(tar.gz)
    Source code(zip)
    easyappointments_1.2.1.zip(2.72 MB)
  • 1.2.0(Nov 9, 2016)

    This release includes awesome features such as a brand new REST API, new backend/calendar view mode, pixel-perfect responsive design, multiple attendants, grayed-out availabilities in frontend, updated vendor files, bugfixes and many many more.

    The code refactoring has gone one step further and and the comments were updated, making external modifications easier than before. Make sure that you try this release and update your existing installations!

    Changelog

    • #185: Enable fixed availabilities setting for services.
    • #183: Display the appointments modal when the user clicks in an empty calendar slot.
    • #182: Add new appointment dashboard view: Table Scheduler
    • #180: Add login link to booking footer.
    • #178: Load the application/config/email.php settings to PHPMailer instance.
    • #175: The backend must be responsive as well.
    • #174: Implementation of a REST API.
    • #173: JS Scrollbars do not work for backend/users entries.
    • #137: Invalid responsive behavior in frontend booking wizard (step #2 - appointment date & time).
    • #136: Loading spinner is not shown in during the installation.
    • #127: Links in header contain index.php
    • #109: Accept multiple attendants in a single service session.
    • #63: Update vendor files (CodeIgniter, FullCalendar, Bootstrap, jQuery ...)
    • #54: Default auto-complete for the appointment end time according to service duration.
    • #45: Add secure flag to CI_SESSION when HTTPS is enabled.
    • #24: Provide dedicated URL for separate provider/service bookings.
    • #22: Google Calendar Sync - Time Zone Issue
      Alex Tselegidis, Easy!Appointments Creator
      Need a customization? Contact me in person!
    Source code(tar.gz)
    Source code(zip)
    easyappointments_1.2.0.zip(2.66 MB)
  • 1.2.0-beta.1(Oct 16, 2016)

  • 1.2.0-alpha.1(Sep 7, 2016)

  • 1.1.1(Feb 14, 2016)

    Easy!Appointments is a self hosted, open source web scheduler application that is very easy to setup on your server.

    https://easyappointments.org

    Changelog

    • #116: Book advance timeout not taken into account for proposed appointments.
    • #118: Google Calendar and notification mail problem bug.
    • #120: Invalid appointment date set after editing an existing appointment.
      Alex Tselegidis, Easy!Appointments Creator
      Need a customization? Contact me in person!
    Source code(tar.gz)
    Source code(zip)
    easyappointments_1.1.1.zip(2.35 MB)
  • 1.1.0(Jan 24, 2016)

    Easy!Appointments is a self hosted, open source web scheduler application that is very easy to setup on your server.

    https://easyappointments.org

    Changelog

    • #4: Raising more useful exceptions and enable error logging by default.
    • #6: Business Logic created is not getting assigned to service provider.
    • #10: Unable to use address tags in email address.
    • #13: Upgrade to Bootstrap 3.x.x.
    • #14: Add Google Analytics tracking for the booking page.
    • #15: Add captcha to booking page.
    • #16: Responsive Frontend
    • #18: Duration is not changing when adding a new appointment.
    • #21: Fix E!A installation problems with AJAX requests.
    • #25: Add a disable customer mail notifications setting
    • #27: Support american time format within the app.
    • #31: Double booking when two users try to book the same appointment hour and at the same time.
    • #38: Renamed configuration.php file to config.php and changed the SystemConfiguration class to Config. This class will contain constants with the project configuration and will be statically used.
    • #39: Add latest translations to source code so that user can select them immediately.
    • #40: Removed .htaccess file and updated all the URLs with the index.php file so that mod_rewrite problems are eliminated.
    • #41: Removed cancel.php file. Frontend must use the message.php file for displaying simple messages to user.
    • #42: Place all external assets to "ext" directory.
    • #66: Trouble with breaks for providers.
      Alex Tselegidis, Easy!Appointments Creator
      Need a customization? Contact me in person!
    Source code(tar.gz)
    Source code(zip)
    easyappointments_1.1.0.zip(2.35 MB)
  • 1.1.0-beta.2(Jan 17, 2016)

  • 1.1.0-beta.1(Jan 17, 2016)

Flow Framework Task Scheduler

This package provides a simple to use task scheduler for Neos Flow. Tasks are configured via settings, recurring tasks can be configured using cron syntax. Detailed options configure the first and last executions as well as options for the class handling the task.

Flowpack 10 Nov 7, 2022
Cronlike scheduler running inside a ReactPHP Event Loop

Cronlike scheduler running inside a ReactPHP Event Loop Install To install via Composer, use the command below, it will automatically detect the lates

Cees-Jan Kiewiet 35 Jul 12, 2022
xcron - the souped up, modernized cron/Task Scheduler for Windows, Mac OSX, Linux, and FreeBSD server and desktop operating systems.

xcron is the souped up, modernized cron/Task Scheduler for Windows, Mac OSX, Linux, and FreeBSD server and desktop operating systems. MIT or LGPL.

CubicleSoft 6 Oct 5, 2022
Laravel Cron Scheduling - The ability to run the Laravel task scheduler using different crons

Laravel Cron Scheduling Laravel Task Scheduling is a great way to manage the cron. But the documentation contains the following warning: By default, m

Sergey Zhidkov 4 Sep 9, 2022
A PHP-based job scheduler

Crunz Install a cron job once and for all, manage the rest from the code. Crunz is a framework-agnostic package to schedule periodic tasks (cron jobs)

null 50 Nov 28, 2022
Free, open-source, online appointments platform based on Laravel PHP Framework.

timegrid (Archived) Timegrid helps contractors and customers to find the perfect meeting time through online appointments. Features Built with Laravel

timegrid.io 876 Nov 28, 2022
Date/Time Picker widget for Yii2 framework Based on Eonasdan's Bootstrap 3 Date/Time Picker

Yii2 Date/Time Picker Widget Date/Time Picker widget for Yii2 framework Based on Eonasdan's Bootstrap 3 Date/Time Picker Demo Since this is a part of

Yevhen Terentiev 8 Mar 14, 2022
PHP CLI project to get an appointment from https://vacunacovid.catsalut.gencat.ca

covid_vaccine_bcn PHP CLI project to get an appointment from https://citavacunacovid19.catsalut.gencat.cat/Vacunacio_Covid/Vacunacio/VacunacioCovidRes

Gabriel Noé González 3 Jul 27, 2021
A Doctor appointment and Patient history application

An application for Doctor and their staff to manage Appointments, Patient information and other stuff. Built with Laravel, ReactJs, Inertia

Amitav Roy 23 Oct 10, 2022
Repository for the last open source version of Booked Scheduler.

Welcome to Booked Scheduler This is a community effort to keep the OpenSource GPLv3 BookedScheduler alive, see History Prerequisites PHP 7.0 or greate

null 247 Nov 30, 2022
Easy to install email tracker with gui and telegram api bot with date device & ip tracking,

mail-php-tracking-with-gui ?? Simple mail tracking program that uses php, html, telegram bot, and a gui The gui The gui lets you create specific links

null 6 Nov 22, 2022
PHP cron job scheduler

PHP Cron Scheduler This is a framework agnostic cron jobs scheduler that can be easily integrated with your project or run as a standalone command sch

Giuseppe Occhipinti 694 Nov 29, 2022
Flow Framework Task Scheduler

This package provides a simple to use task scheduler for Neos Flow. Tasks are configured via settings, recurring tasks can be configured using cron syntax. Detailed options configure the first and last executions as well as options for the class handling the task.

Flowpack 10 Nov 7, 2022
Cronlike scheduler running inside a ReactPHP Event Loop

Cronlike scheduler running inside a ReactPHP Event Loop Install To install via Composer, use the command below, it will automatically detect the lates

Cees-Jan Kiewiet 35 Jul 12, 2022
Boostimer - Product Availability Countdown And Scheduler For Woocommerce

Boostimer - Product Availability Countdown And Scheduler For Woocommerce Contributors: zabiranik Donate link: zabiranik/donate Requires at least: 5.0

Zabir Anik 6 Oct 10, 2022
Magento 2 - Cron Scheduler by KiwiCommerce

We're not maintaining this extension, if you need any support please contact us at [email protected] Magento 2 - Cron Scheduler by KiwiCommerce

KiwiCommerce 76 Sep 28, 2022
Cron jobs scheduler for Spiral Framework

This is a cron jobs scheduler that can be easily integrated with your project based on spiral framework. The idea was originally inspired by the Laravel Task Scheduling.

Non official Spiral framework packages 6 Dec 2, 2022
xcron - the souped up, modernized cron/Task Scheduler for Windows, Mac OSX, Linux, and FreeBSD server and desktop operating systems.

xcron is the souped up, modernized cron/Task Scheduler for Windows, Mac OSX, Linux, and FreeBSD server and desktop operating systems. MIT or LGPL.

CubicleSoft 6 Oct 5, 2022
Simple WordPress plugin to learn how to understand WordPress Crons and the Action Scheduler library.

Simple WordPress plugin to learn how to understand WordPress Crons and the Action Scheduler library. Import Jamendo playlists with tracks in WordPress posts.

Pierre Saikali 2 May 24, 2022
Laravel Cron Scheduling - The ability to run the Laravel task scheduler using different crons

Laravel Cron Scheduling Laravel Task Scheduling is a great way to manage the cron. But the documentation contains the following warning: By default, m

Sergey Zhidkov 4 Sep 9, 2022