Open Souce Appointment Scheduling Platfom.
  • PHP 74.3%
  • Vue 12.9%
  • TypeScript 10.6%
  • Dockerfile 0.6%
  • Shell 0.6%
  • Other 0.9%
Find a file
Anton Dachauer 863f67d440
All checks were successful
/ lint_docker_compose (push) Successful in 17s
/ build_docs (push) Successful in 26s
/ backend_checks (push) Successful in 59s
/ frontend_lint (push) Successful in 36s
/ frontend_unit_tests (push) Successful in 45s
/ frontend_build (push) Successful in 52s
/ backend_tests (push) Successful in 2m38s
/ backend_checks (pull_request) Successful in 59s
/ lint_docker_compose (pull_request) Successful in 21s
/ build_docs (pull_request) Successful in 27s
/ backend_tests (pull_request) Successful in 1m29s
/ frontend_lint (pull_request) Successful in 43s
/ backend_build (push) Successful in 4m23s
/ frontend_unit_tests (pull_request) Successful in 40s
/ frontend_build (pull_request) Successful in 1m1s
/ backend_build (pull_request) Successful in 4m30s
chore: update dependencies
2026-03-08 23:00:59 +00:00
.forgejo/workflows ci: ensure builds use release tag instead of main branch 2026-03-08 14:15:13 +01:00
backend chore: update dependencies 2026-03-08 23:00:59 +00:00
data/caldav/data sync multi-day-events & fix sync time zone bug 2026-02-14 22:50:07 +01:00
documentation docs: fix errors and add missing configuration details 2026-03-07 17:46:01 +01:00
frontend chore: update dependencies 2026-03-08 23:00:59 +00:00
.editorconfig build docs container 2026-02-18 15:44:52 +01:00
.gitignore sync multi-day-events & fix sync time zone bug 2026-02-14 22:50:07 +01:00
CONTRIBUTING.md initial commit 2026-02-10 13:48:59 +01:00
docker-compose.yml feat: display OpenCal version in frontend footer 2026-03-06 23:27:14 +01:00
generate-ics-files.sh refactoring backend code 2026-02-15 13:42:36 +01:00
LICENSE initial commit 2026-02-10 13:48:59 +01:00
Makefile sync multi-day-events & fix sync time zone bug 2026-02-14 22:50:07 +01:00
README.md feat(backend): assign ROLE_ADMIN to the first created user 2026-03-07 17:34:59 +01:00

OpenCal The Open Source Appointment Scheduling Platform

Docs | Getting started | Docker compose example repo | Docker images | OpenAPI.yml

OpenCal is a web-based open-source software designed to make online appointment scheduling effortless and efficient. Whether you're managing a team or running a business, OpenCal takes the hassle out of coordinating appointments, eliminating the need for endless back-and-forth emails. With OpenCal, you can streamline communication, save time, and focus on what really matters.


🛠 Tech Stack

  • Backend: Symfony 7.4 (PHP 8.4+) with API Platform & Doctrine ORM.
  • Frontend: Vue 3 + TypeScript with Vite & Bootstrap.
  • Infrastructure: Docker & Docker Compose.
  • Integration: CalDAV compatibility for seamless calendar integration.

🚀 Why Choose OpenCal?

  • No Big Tech Lock-In: Take back control of your data. OpenCal gives you the freedom to avoid reliance on corporate giants.
  • Completely Open-Source: OpenCal is licensed under the GNU AGPLv3 License.
  • CalDAV Compatible: Seamlessly integrate with most digital calendars to ensure smooth scheduling.
  • API-First: Powered by a robust, easy-to-use API that lets you integrate OpenCal however you need.
  • Admin Dashboard: Manage users and system settings with ease.

📖 Getting Started

We recommend to use the Docker images to run OpenCal.

To make it easy to start, we have created an example docker compose setup.

Read the getting started guide for more details.

Quick Start as Developer

Please read the contribution guide and the code of conduct.

The fastest way to get OpenCal running for development is using the provided Makefile:

# 1. Build Docker images
make build

# 2. Install dependencies (backend & frontend)
make install

# 3. Start the services
make up

Access the frontend at http://localhost (default) and the API documentation at http://localhost:8080/api/docs.

🧪 Testing

OpenCal is heavily tested to ensure reliability.

# Backend tests (Unit, Integration, API)
make backend.phpunit

# Frontend tests (Vitest)
# Run inside frontend container:
yarn run tests

🤝 How You Can Get Involved

We believe in the power of community, and we'd love for you to contribute! Whether you're a developer, designer, or just someone who wants to help improve the platform, there are plenty of ways to get involved.

Need Help?

No worries, weve got you covered! If you have any questions or need help getting started, feel free to create an issue and well assist you.


Join us and help build the future of open source appointment scheduling with OpenCal! 🌟