| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Appointments (appointment)
• Calendar (calendar) • Discuss (mail) • Invoicing (account) • Project (project) • Sales (sale_management) • Surveys (survey) • Website (website) • eCommerce (website_sale) • Employees (hr) |
| Lines of code | 9902 |
| Technical Name |
service_booking |
| License | OPL-1 |
| Website | https://www.shadailtech.com/ |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Appointments (appointment)
• Calendar (calendar) • Discuss (mail) • Invoicing (account) • Project (project) • Sales (sale_management) • Surveys (survey) • Website (website) • eCommerce (website_sale) • Employees (hr) |
| Lines of code | 9902 |
| Technical Name |
service_booking |
| License | OPL-1 |
| Website | https://www.shadailtech.com/ |
|
|||||||||||||||||
|
📋 Key Features
Everything you need to run a professional service business on Odoo 19.
|
📋
Service Catalogue
Define services with category, duration, pricing, HD images, rich HTML description, and SEO metadata. Publish/unpublish individually. |
👷
Resource Management
Manage technicians with resource types, working calendars, leave integration, and per-service allocation requirements. |
⏰
Dynamic Slot Engine
Real-time availability computed per service type, resource allocation, and leave schedule — no static slot records needed. |
|
🌐
Website Booking
Public /services page with category filters, price range, duration, sort, and 3 view modes. Visual slot picker with green/red circles. |
👤
Customer Portal
Tabbed /my/bookings — All, Today, Upcoming, Completed, Cancelled. Reschedule, update address, cancel, and rate from the portal. |
⭐
Service Ratings
1–5 star ratings with review text. Admin controls visibility per rating. Ratings shown on service cards and detail pages. |
|
💳
Sale Order Integration
Sale order auto-created on confirmation, linked to the booking. Pay Now link in portal for unpaid bookings. |
📋
Project & Timesheet
Project task created on confirm. Timesheet start/stop logged when resource starts and completes the service. |
📧
Automated Notifications
Confirmation, reminder, completion, and survey emails. Pre-booking reminder configurable in hours. |
|
🛠
Equipment Tracking
Physical assets linked to services. Available quantity auto-calculated from active bookings. |
📊
Analytics & Reports
Graph, pivot, kanban, and calendar views. PDF booking confirmation report. Booking report with grouping and filters. |
🔒
Role-Based Access
Three roles — Resource, User, Manager — with granular record rules. Admin auto-assigned to Manager on install. |
⚙ Admin Setup Guide
Follow these steps in order after installing the module.
Assign User Roles
Go to Settings → Users → [select user] → Service Booking tab and assign a role.
User configuration screen for assigning Service Booking roles.
ResourceService Booking / Resource
- View own assigned bookings only
- Start & complete their service
- Cannot create or cancel bookings
UserService Booking / User
- View all company bookings
- Create and edit bookings
- Cannot delete
ManagerService Booking / Manager
- Full unrestricted access
- Create, edit, delete bookings
- Manage all configuration
Configure Global Settings
Go to Settings → Service Booking section:
Service booking configuration settings screen.
Setting Description Default Default Slot Start Hour Working day start (e.g. 9.0 = 09:00) 9.0 Default Slot End Hour Working day end (e.g. 18.0 = 18:00) 18.0 Advance Booking Min Hours Minimum hours ahead a customer can book 1.0 Advance Booking Max Qty How far ahead bookings are accepted (quantity) 5 Advance Booking Max Duration Unit: days / weeks / months / years days Reminder Email Hours Before Hours before service to send reminder email 24 Create Resource Types
Go to Service Booking → Configuration → Resource Types → New. Examples: Cleaning Specialist, Electrician, Plumber, Supervisor.
Create resource types as required for the services.
Create Service Types
Go to Service Booking → Configuration → Service Types → New.
Create service types as required for the services.
Field Description Service Name Shown on the website and in all booking records Category Cleaning / Handyman / Gardening / Electrical / Plumbing / Pest Control / Other Duration (hours) Length of one booking slot Travel Gap (hours) Buffer added after slot before resource is free again Service Product Links to a product of type Service for invoicing Published on Website Toggle to make bookable online Resource Allocation tab Which resource types + quantities are required per booking Availability Schedule tab Working hours per weekday for this service 📌Resource Allocation example — Deep Home Cleaning: Add two lines: Cleaning Specialist qty: 2 and Supervisor qty: 1. The system checks all types are satisfied before marking a slot as available.Create Resources (Technicians)
Go to Service Booking → Configuration → Resources → New.
Create resources as required for the services.
Field Description Name Resource display name Resource Type Assign to a type created in Step 3 Employee Link to hr.employee— enables leave checksWorking Schedule Link to resource.calendar; overrides global slot hoursCompany For multi-company setups 📓Leave integration: When an employee is linked, the system checks approved leaves (hr.leave, state=validate) and blocks those periods automatically.Create Equipment (Optional)
Go to Service Booking → Configuration → Equipment → New. Link equipment items to service types. Available quantity is auto-calculated as Total − units in active bookings.
Create equipment as required for the services.
Publish Services on the Website
Open each service type form and toggle Published on Website to make it bookable at
/services. Only published services are visible to the public.
Publish services on the website to display them to end users.
Manage Service Ratings
Go to Service Booking → Configuration → Service Ratings. Toggle Show on Website on each rating to control public visibility.
Manage service ratings from backend to control website visibility.
🔄 Booking Lifecycle
Every booking follows a clear state machine with action buttons at each step.
Manage all service bookings from the backend or the website.
| Button | Transition | What happens |
|---|---|---|
| Confirm | Draft → Confirmed | Slot locked · Sale Order created · Project Task created · Confirmation emails sent |
| Start Service | Confirmed → In Progress | Timesheet start time logged |
| Complete Service | In Progress → Done | Timesheet finalised · Survey email sent · Completion email sent |
| Cancel | Any → Cancelled | Slot released back to available · Customer notified |
| Print Report | Any state | Generates PDF booking confirmation |
State Descriptions
| State | Description | Customer Can |
|---|---|---|
| Draft | Booking created, awaiting manager confirmation | Reschedule · Update Address · Cancel |
| Confirmed | Slot locked, resources assigned, notifications sent | Reschedule · Update Address · Cancel · Pay Now |
| In Progress | Technician has started the service on-site | View only |
| Done | Service completed, timesheet finalised | Rate This Service |
| Cancelled | Booking cancelled, slot released | View only |
👷 Resource (Technician) Guide
What technicians and field staff can see and do.
Accessing Your Bookings
Log in to Odoo and go to Service Booking → Bookings → My Bookings. You will only see bookings assigned to your resource record — other bookings are hidden by the record rule.
Available Actions
| Action | When available | What it does |
|---|---|---|
| Start Service | Booking is Confirmed | Transitions to In Progress, logs timesheet start |
| Complete Service | Booking is In Progress | Transitions to Done, finalises timesheet, triggers survey |
Leave Management
When your employee record is linked to your resource profile, any approved leave (hr.leave in validated state) automatically blocks your slots. No manual action is required — the system checks your leave schedule in real time.
👤 End User (Customer) Guide
How customers browse, book, manage, and rate services on the website.
Step 1 — Browse Services at /services
Click Services in the website navigation. The page shows all published services with HD images, category badges, prices, durations, and star ratings.
All published services are displayed on the services page.
|
|
Step 2 — Book a Service
Click Book Now
Opens the service detail page at
/services/<id>with the full description, ratings, and booking widget.
Select the service and click the 'Book Now' button.
Pick a Date & Time Slot
Click a highlighted date in the calendar widget. Available slots appear as green circles and booked slots as red circles. Click a green circle to select it.
Select an available slot and choose the time for the booking.
Enter Service Address
Type the address where the service should be performed. You must be logged in to proceed.
Provide the service address where the service will take place.
Confirm Booking
Click Confirm Booking. You will receive a confirmation email and be redirected to your booking detail page.
Select Pay Now or Pay Later to complete the booking.
Step 3 — Manage Bookings at /my/bookings
Go to My Account → My Bookings or visit /my/bookings directly.
Check all your bookings from your portal Service Booking page.
Review and confirm the booking details.
| Button | When shown | What it does |
|---|---|---|
| Reschedule | Draft or Confirmed, before service date | Opens new slot selector |
| Update Address | Draft or Confirmed, before service date | Change the service location |
| Cancel Booking | Draft or Confirmed, before service date | Cancels and releases the slot |
| Pay Now | Confirmed, invoice unpaid | Opens payment page for the linked sale order |
| Rate This Service | Done, not yet rated | Opens the 1–5 star rating form |
Step 4 — Rate a Completed Service
On the booking detail page, click Rate This Service (available once the booking is Done). Select 1–5 stars, optionally add a review, then click Submit Review. Ratings are immediately reflected on the service's public page (subject to admin visibility setting).
🛠 Support & Important Notes
Technical SupportBug reports and configuration help handled by the Shadail Technology team via the Odoo App Store support channel. CustomizationNeed additional booking flows, custom notifications, or third-party integrations? Reach out to discuss your requirements. |
Feature RequestsSubmit suggestions via the Odoo App Store or contact Shadail Technology directly. DocumentationFull setup guide and usage documentation is available in the module's description above and the included README file. |
|
|||
|
|||
|
Service Booking & Resource Management
Table of Contents
Overview
The Service Booking & Resource Management module is an end-to-end service booking platform for Odoo 19, built by Shadail Technology. It covers the full lifecycle of a service appointment: service catalogue management, resource and equipment allocation, calendar-aware slot generation, online/portal booking, timesheet logging, post-service surveys, payment collection, and PDF report generation — all within a single Odoo application.
Key Features
Service Catalogue
- Multi-service catalogue with categories, pricing, duration, and travel gap settings
- Service types linked to resources and equipment
- Configurable booking policies per service
Resource Management
- Technician/resource profiles with individual working calendars
- Automatic monthly slot generation (Monday–Saturday) via scheduled action
- Equipment inventory linked to services and bookings
- Resource availability tracking across bookings
Booking & Scheduling
- Website-facing booking wizard with colour-coded time-slot circles (green = available, red = unavailable)
- Automatic conflict detection to prevent double-booking
- Rescheduling and cancellation support from the customer portal
- Pre-booking email reminders dispatched automatically
- Calendar, Kanban, Pivot, and Graph analytics views
Customer Portal
- Customers can view upcoming and past bookings from the Odoo portal
- Self-service reschedule and cancel before the service date
- PDF booking confirmation downloadable from the portal
Sales & Accounting Integration
- Sales Order created automatically on booking confirmation
- Payment collection via Odoo's payment provider framework
- Invoice generation tied to booking and sale order
Project & Timesheet Integration
- Project task created per booking for work tracking
- HR timesheet entries logged against tasks for labour costing
- Timesheet data visible on project and booking views
Survey & Rating
- Survey dispatched automatically on service completion
- Customer ratings collected and linked to the service booking record
- Rating summary visible per service type
Reporting
- PDF booking report with full booking details, resource, and service info
- Graph and Pivot views for booking trends, resource utilisation, and revenue
- Scheduled action logs for slot generation
Access Control
- Resource role — view own bookings and availability
- User role — create and manage bookings
- Manager role — full access including configuration and reporting
Dependencies
- base
- sale
- sale_management
- website
- website_sale
- calendar
- appointment
- project
- hr_timesheet
- survey
- payment
- account
- resource
- portal
Installation
- Ensure all listed dependencies are installed (most are standard Odoo modules).
- In the Odoo Apps menu, search for Service Booking & Resource Management and click Install.
- The post-install hook runs automatically to seed initial demo data and set up scheduled actions.
Configuration
Service Types
- Go to Service Booking → Configuration → Service Types.
- Create service types with name, category, default duration, price, and travel gap.
- Link resources (technicians) and equipment to each service type.
Resources
- Go to Service Booking → Configuration → Resources.
- Create resource records linked to employees or users.
- Assign a working calendar to each resource to define available hours.
Slot Generation
Slots are generated automatically by the scheduled action Generate Monthly Booking Slots, which runs on the first day of each month. To generate slots manually:
- Go to Service Booking → Configuration → Slot Check Wizard.
- Select the resource and month, then click Generate Slots.
System Settings
- Go to Inventory → Configuration → Settings (or Service Booking → Configuration → Settings).
- Configure:
- Pre-booking reminder interval (hours before appointment)
- Auto-confirm bookings (skip manual approval)
- Survey template used for post-service dispatch
Usage
Online Booking (Website)
- Customers navigate to the website booking page (/service-booking).
- They select a service type, preferred date, and available time slot.
- Available slots are shown as green circles; unavailable as red.
- On confirmation, a booking record and Sale Order are created automatically.
- A confirmation email is sent to the customer.
Backend Booking
- Go to Service Booking → Bookings → New.
- Select the customer, service type, resource, and slot.
- Confirm — the booking transitions to Confirmed state.
- A Sale Order is created and linked to the booking.
Managing a Booking
- Reschedule — Open the booking, change the slot, and save.
- Cancel — Click Cancel on the booking form; the slot is released automatically.
- Mark Complete — Click Mark as Done to trigger survey dispatch and timesheet finalisation.
Portal Self-Service
Customers access their bookings at /my/bookings:
- View upcoming and past booking details
- Click Reschedule to pick a new slot (allowed before service date)
- Click Cancel to cancel (allowed before service date; subject to cancellation policy)
PDF Report
From any confirmed booking, click Print → Booking Confirmation to generate the PDF report containing booking details, resource info, service description, and appointment time.
Data Models
| Model | Purpose |
|---|---|
| service.type | Service catalogue entries with duration, price, resources, and equipment |
| service.resource | Technician/resource profiles with working calendar |
| resource.equipment | Equipment items linked to services and bookings |
| booking.slot | Individual time slots generated per resource per day |
| service.booking | Core booking record linking customer, service, resource, slot, and documents |
| slot.check.wizard | Wizard for manual slot generation and availability checking |
Technical Notes
- Module: service_booking
- Version: 19.0.1.1.0
- Category: Services/Field Service
- Author: Shadail Technology
- Maintainer: Shadail Technology
- Website: https://www.shadailtech.com/
- License: OPL-1
- Application: True
Changelog
19.0.1.1.0
- Odoo 19 port — all deprecated API usages removed
- Calendar-aware slot generation
- Customer portal reschedule and cancel
- Survey dispatch on service completion
- PDF booking report
- Role-based access control (Resource / User / Manager)
Support
For support and customisation requests, contact us at:
- Email: info@shadailtech.com
- Phone: +91 79773 52693
- Website: https://www.shadailtech.com/contactus
- Address: Office no. 602, Raj Oaks, MTNL Rd, Gokul Village, Mira Road East, Mira Bhayandar, MH 401107
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module