Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). UI Patterns (SDC in Drupal UI) 2.0.18 Minor update available for module ui_patterns (2.0.18). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

Resource Conflict

86 sites Security covered
View on drupal.org

This module prevents editors from creating duplicate bookings by checking for overlapping time entries in date range fields. It lists conflicting entries and can be configured to add time buffers.

Resource Conflict helps you prevent double-booking of time-based content. It checks nodes that use Date range fields and stops editors from saving entries that overlap with existing ones, listing the conflicting nodes so they can adjust the dates instead of creating duplicates.

Typical use cases include booking rooms, lab equipment, or other shared
resources where only one item should be scheduled for a given time span.

Drupal 10+

Features

  • Validates Date range fields on node forms and blocks overlapping entries.
  • Lists all conflicting nodes so editors can see what is already booked.
  • Also checks conflicts during entity presave, throwing an exception when code tries to save a conflicting node.
  • Supports optional time buffers (for example a few minutes before or after) so events have a bit of padding.
  • Can compare across multiple content types that share the same Date range field, or be limited to a single bundle.
  • Allows you to replace the built-in validation message with your own logic in custom code.

Configuration

  1. Add a Date range field to each content type that should be checked for time clashes.
  2. Edit the content type and open Additional settings → Resource conflict.
  3. Enable conflict checking, pick the Date range field, and, if needed, add start/end buffers using strtotime()-style expressions (for example -5 minutes to pad the start time).
  4. Save the content type configuration.

You can configure multiple bundles this way. When the same Date range field is shared across content types, conflicts can span bundles unless
Restrict conflicts to this content type is checked. You can
also disable the built-in validation message via Show a default
validation error
if you plan to handle conflicts entirely in custom
code.

Integration

Resource Conflict exposes Symfony events so other modules can react to conflicts and adjust behaviour.

  • Symfony events
    • resource_conflict.conflict_validation (Drupal\resource_conflict\Event\ConflictValidationEvent) fires whenever a Resource Conflict–enabled node form validates. Subscribers receive the unsaved node, the form, the form state, and the current list of conflicts so they can add or replace validation before Drupal processes errors.
    • resource_conflict.conflicts_filter (Drupal\resource_conflict\Event\ConflictsEvent) fires after conflicts are gathered and allows subscribers to inspect or filter them before validation errors or presave exceptions are raised.

Drupal 7 and earlier

Resource Conflict also has releases for Drupal 6 and 7 that were built around Rules, Entities/CCK, and Date.

Drupal 7 reached its end of life in January 2025, and Resource
Conflict no longer has an active D7 release. Development and support for D7 are not planned going forward, so the issue queue is focused on Drupal 10+ and newer release lines.

Drupal 7 documentation

Credits

Resource Conflict was originally developed by Andrew Berry
([email protected]) for the Protein Dynamics lab at the
University of Guelph and later rewritten for Rules/Entity integration by
Campbell Vertesi ([email protected]).

Activity

Total releases
5
First release
Nov 2025
Latest release
7 months ago
Releases (12 mo)
5 ▲ from 0
Maintenance
Slowing

Release Timeline

Releases

Version Type Release date
2.0.0-beta5 Pre-release Dec 1, 2025
2.0.0-beta3 Pre-release Nov 18, 2025
2.0.0-beta2 Pre-release Nov 17, 2025
2.0.0-beta1 Pre-release Nov 14, 2025
2.x-dev Dev Nov 13, 2025