Coming Soon to AppExchange — 2026

Config Library

37 ready-to-import configs covering 45+ real-world scheduling scenarios. Answer 3 quick questions below to find your match — or browse by component. Paste the JSON into the Setup Wizard, map the demo field names to your own org's schema, and deploy in seconds.

Browse All

New here? Start with the install & setup guide →

How importing a config works

These sample configs are built against MultiDatePick's bundled demo objects (Schedule__c, Event__c, Resource__c). Your org will almost always use its own objects and field names — that's expected and supported.

  1. Download the config JSON below.
  2. Paste it into the wizard's Import tab (App Launcher → MultiDatePick Setup Wizard → Existing Configurations → Import).
  3. Map the fields: if any objects or fields referenced in the JSON don't exist in your org, the wizard will surface a Smart Field Mapping panel listing every missing reference with a dropdown of your org's matching objects/fields. Pick the replacement for each and click Apply & Deploy.

No code, no XML editing. The wizard rewrites the config with your selections before the metadata deploy, so the imported config lands ready to drop on a record page in your org. If everything already matches (e.g. you're cloning between sandboxes), the mapping step is skipped automatically.

Find your config

Answer the 3 questions to narrow the list — same questions the in-org Setup Wizard asks. Skip any question to keep that dimension open.

1Do you need to capture times?
2Do you need a resource picker?
3Should adjacent dates consolidate?

New to importing? See the 3-step walkthrough →

Date Selection Configurations

Configs for Date — multi-date selection without time slots. Best for tracking dates, marking availability, and scheduling events.

Date

Employee Time-Off Request

Employees select PTO or vacation days on a calendar. Consecutive dates are consolidated into a single record with start and end dates. Recurring patterns let users select "every Friday" or bi-weekly schedules.

Key properties:
endDateField date range consolidation, statusColors Pending/Approved/Rejected, showRecurringPattern, twoMonthView, enableEditMode, weekStartsOnMonday, selectableStatuses Pending only (self-service), secondStatusField Leave_Type__c (2nd picklist)
Date

Facility Blackout Dates

Administrators mark facility closure or blackout dates. Existing closures are preloaded in read-only mode so they can't be accidentally removed. Status colors distinguish between active, planned, and resolved closures.

Self-referencing pattern: blocked dates pull from the same Schedule__c table as the bookings themselves. Records in that table block selection on their date. Point blockedDatesSourceObject at a different object if you'd rather separate closures from bookings.
Key properties:
endDateField date range consolidation, preloadMode readonly, blockedDatesSourceObject, statusColors Active/Planned/Resolved, twoMonthView
Date

Student Absence Tracking

Teachers or administrators record student absences. Past dates are allowed so absences can be logged retroactively. Status colors categorize each absence as excused, unexcused, medical, or pending review.

Key properties:
allowPastDates true, statusColors Excused/Unexcused/Medical/Pending, maxSelections 20, twoMonthView, enableEditMode, weekStartsOnMonday, selectableStatuses Pending only (self-service), secondStatusField Reason__c (2nd picklist)
Date

Court & Hearing Dates

Legal teams schedule hearing dates for cases. Multi-day hearings use date range consolidation. Cancelled dates are hidden from the calendar. Status colors track each hearing's progress from scheduled to completed.

Key properties:
endDateField date range consolidation, statusColors Scheduled/Continued/Completed/Cancelled, hideBookingsWithStatus Cancelled, maxSelections 10, enableEditMode, secondStatusField Hearing_Type__c (2nd picklist)
Date

Content Publishing Calendar

Marketing teams plan content publishing schedules linked to campaigns. Holidays and blackout dates block content scheduling on closed days. Hover tooltips show the title, channel, and author for each scheduled date.

Self-referencing pattern: blocked dates pull from the same Schedule__c table by default — records flagged in that table block selection. Swap blockedDatesSourceObject for your own holidays object (e.g. Company_Holiday__c) if you keep closures separately.
Key properties:
blockedDatesSourceObject Schedule__c, statusColors Draft/Scheduled/Published/Cancelled, hideBookingsWithStatus, hoverFields Title/Channel/Author, showRecurringPattern, twoMonthView, secondStatusField Channel__c (2nd picklist)
Date

Volunteer Availability

Volunteers mark the dates they're available. Date range consolidation means a week of availability becomes one record instead of five. Recurring patterns let volunteers say "every Saturday" through the end of the quarter.

Key properties:
endDateField date range consolidation, showRecurringPattern, twoMonthView, enableEditMode, weekStartsOnMonday, selectableStatuses Pending only (self-service)
Date

Compliance Audit Schedule

Compliance teams schedule audit dates for accounts. Multi-day audits use date range consolidation. Hover tooltips show the assigned auditor and audit type at a glance. Status colors track progress from planned through completion or failure.

Key properties:
endDateField date range consolidation, statusColors Planned/In Progress/Completed/Failed, hoverFields Auditor/Audit_Type, maxSelections 12, enableEditMode, twoMonthView, secondStatusField Audit_Type__c (2nd picklist)
Date

On-Call Rotation

Managers assign on-call coverage across a team. Recurring patterns make it easy to set weekly rotations. Status colors distinguish primary, secondary, and backup roles at a glance on the calendar.

Key properties:
showRecurringPattern, statusColors Primary/Secondary/Backup, twoMonthView, enableEditMode, weekStartsOnMonday, selectableStatuses Pending only (self-service)
Date

Conference Multi-Day Pass

Attendees pick the days they'll attend a multi-day conference. Adjacent days collapse into a single pass record with a start date and end date — a 3-day attendee gets one pass, not three separate records. Non-adjacent picks (e.g. only Day 1 + Day 3) each get their own record.

Key properties:
endDateField for date-range collapse, twoMonthView, showSelectedSummary, statusColors Issued/Pending/Refunded, hideBookingsWithStatus Refunded, enableEditMode
Date

Office Closure Calendar

A dedicated closure manager. An office or facility manager picks the dates the office is closed — holidays, planned closures, weather days, maintenance windows — and saves them as a flat list of records that other MultiDatePick configs can respect as blocked dates.

Pairs with Holiday Aware Appointment Booking: the records this config writes (with Status__c = Cancelled) are picked up by the appointment booker via the value-filter trio — blockedDatesSourceObject + blockedDatesFilterField + blockedDatesFilterValue. Multiple blocker categories (holidays, maintenance, equipment-only) can coexist in the same table — each consumer calendar picks which category applies.
Key properties:
endDateField for multi-day ranges, defaultRecordName Office Closed, twoMonthView, enableEditMode, showRecurringPattern
No Date configs match this filter.

Date & Time Configurations

Configs for Date Time — date selection with per-date time assignment. Best for appointments, shifts, sessions, and anything that needs start/end times.

Date Time

Interview Scheduling

Recruiters schedule multi-round interviews across several days. 30-minute slots with conflict detection prevent double-booking. Consolidated time span merges adjacent slots into a single block.

Key properties:
timeInterval 30 min, conflictBehavior block, consolidateTimeSpan, groupTimeSlotsByPeriod, maxSelections 5, enableEditMode, conflictLookAheadDays 90, statusField + secondStatusField Round__c
Date Time

Shift Scheduling

Operations managers build shift schedules across a team. Extended hours (6 AM – 10 PM) cover all shift types. Recurring patterns enable weekly rotation templates. Different times per date let managers mix morning and evening shifts.

Key properties:
timeInterval 60 min, minTime 06:00 / maxTime 22:00, allowDifferentTimes, showRecurringPattern, consolidateTimeSpan, statusColors Scheduled/Swap Requested/Open, twoMonthView
Date Time

Appointment Booking

Service businesses schedule client appointments with conflict prevention. Status colors show confirmed, pending, and cancelled slots at a glance. Hover tooltips reveal appointment type and notes without clicking.

Key properties:
timeInterval 30 min, conflictBehavior block, consolidateTimeSpan, groupTimeSlotsByPeriod, statusColors Confirmed/Pending/Cancelled/No Show, hideBookingsWithStatus Cancelled, statusColorDisplay grid, hoverFields Type/Notes
Date Time

Assign Time Blocks to a Single-Day Record

For a record that already represents a specific day — e.g. an Event with an event-date field — drop the picker right on the record page and assign time slots without the calendar. The date is read from the record, so the user just opens the day, picks the time blocks, and the slots auto-save back to the record.

Time Grid Only mode: timeGridOnly hides the calendar and shows just the time-slot grid for one implied date. The date comes from timeGridDateField (here Event_Date__c on the host record); set an explicit timeGridDate instead, or omit both to fall back to today. Best on a record page where the date is already known.
Key properties:
timeGridOnly true, timeGridDateField Event_Date__c, timeInterval 30 min, groupTimeSlotsByPeriod, consolidateTimeSpan, conflictBehavior block, statusColors Status__c, hideBookingsWithStatus Cancelled, enableEditMode
Date Time

Maintenance Windows

IT teams schedule overnight maintenance windows for assets and infrastructure. Conflict behavior is set to "allow" instead of "block" — teams can intentionally overlap maintenance if needed. Hover fields show change number, description, and impact assessment.

Overnight time range: minTime 22:00 → maxTime 06:00 crosses midnight. Slot generation handles this; verify the calendar renders the way you expect before training admins.
Key properties:
timeInterval 60 min, minTime 22:00 / maxTime 06:00 (overnight), conflictBehavior allow, endDateField multi-day windows, statusColors Planned/In Progress/Completed/Failed, statusColorDisplay grid, hoverFields Description/Impact/Change_Number, conflictLookAheadDays 180, secondStatusField Reason__c (2nd picklist)
Date Time

Property Showings

Real estate agents schedule property showings. Different times per date let agents block different windows for different properties. Hover tooltips show the assigned agent and buyer name without opening the record.

Key properties:
timeInterval 30 min, minTime 09:00 / maxTime 19:00, allowDifferentTimes, conflictBehavior block, groupTimeSlotsByPeriod, maxSelections 10, statusColors Scheduled/Confirmed/Cancelled/Completed, hoverFields Agent/Buyer_Name
Date Time

Office Hours

Professors or advisors publish their office hours on a calendar. 15-minute slots provide granular scheduling. Recurring patterns let instructors set "Mon/Wed/Fri 2–4 PM" for the entire semester in one click.

Key properties:
timeInterval 15 min, groupTimeSlotsByPeriod, consolidateTimeSpan, showRecurringPattern, twoMonthView, weekStartsOnMonday, conflictBehavior block
Date Time

Exam Scheduling

Academic departments schedule exam sessions for courses. Conflict detection prevents scheduling two exams in the same slot. Status colors track progress from scheduled through completion. Hover shows assigned room and proctor.

Key properties:
timeInterval 60 min, conflictBehavior block, consolidateTimeSpan, groupTimeSlotsByPeriod, maxSelections 4, statusColors Scheduled/In Progress/Completed/Rescheduled, statusColorDisplay grid, hoverFields Room/Proctor, conflictLookAheadDays 120
Date Time

Compliance Rest Periods

For shifts with mandated rest periods (DOT, healthcare, manufacturing). The shift saves as one parent record covering the full envelope; required rest periods become child sub-block records that auditors can review. 15-minute granularity for fine-grained rest tracking.

Sub-Blocks: rest periods are stored as child records on the bundled Sub_Block__c object — no extra schema setup required. Point subBlockObjectApiName at your own child object if you'd rather use a custom name.
Key properties:
consolidateTimeSpan, subBlockObjectApiName Sub_Block__c, subBlockModeButtonLabel Mark as Rest, timeInterval 15 min, statusColors Compliant/Review/Flagged, allowPastDates
Date Time

Holiday Aware Appointment Booking

End-user appointment picker that automatically greys out dates the office is closed. Reads its block list from Office Closure Calendar records via the value-filter trio (blockedDatesSourceObject + blockedDatesFilterField + blockedDatesFilterValue), so customers can only book on days that are actually open.

Pairs with Office Closure Calendar: the manager-facing closures config writes Status__c = Cancelled records into Schedule__c. This config reads them via blockedDatesFilterField = Status__c + blockedDatesFilterValue = Cancelled and also hides them from its own preloaded view (hideBookingsWithStatus = Cancelled) so users only see real appointments.
Key properties:
blockedDatesSourceObject Schedule__c, blockedDatesFilterField Status__c, blockedDatesFilterValue Cancelled, hideBookingsWithStatus Cancelled, conflictBehavior block, consolidateTimeSpan, timeInterval 30 min, selectableStatuses Pending only (customer books)
No Date Time configs match this filter.

Resource Booking Configurations

Configs for Booking — date and time selection with resource management. Best for rooms, equipment, people, facilities, and anything with availability or capacity limits.

Booking

Meeting Room Booking

Employees reserve conference rooms with live capacity badges. Status colors distinguish confirmed, pending, and cancelled bookings. Cancelled bookings are hidden from the grid and don't count toward capacity.

Key properties:
capacityField, showAvailabilityCount, statusColors Confirmed/Pending/Cancelled, hideBookingsWithStatus Cancelled, statusColorDisplay grid, groupTimeSlotsByPeriod, conflictBehavior block, enableEditMode
Booking

Time-Aware Resource Closures

Resource booking where closures can be partial-day (block specific hours, not the whole day) and per-resource (close just one resource, leaving the rest bookable). Reads closures from a dedicated Office Closure object, scoped per location via the resource + region filters.

Closure object: create Office_Closure__c records with a Closure_Date__c, optional Closure_Start_Time__c + Closure_End_Time__c (omit both for a whole-day close), a Region__c tag, and an optional Resource__c lookup (set = that resource only; blank = all resources in the region).
Key properties:
blockedDatesStartTimeField Closure_Start_Time__c, blockedDatesEndTimeField Closure_End_Time__c, blockedDatesResourceField Resource__c, blockedDatesFilterField Region__c, resourceFilterField Region__c, conflictBehavior block
Booking

Equipment Checkout

IT or AV teams manage shared equipment reservations. 60-minute slots cover typical checkout durations. Business hours fields ensure equipment is only bookable during operating hours.

Key properties:
timeInterval 60 min, businessHoursStartField / businessHoursEndField, conflictBehavior block, enableEditMode
Booking

Desk Hoteling

Employees reserve shared desks in a hybrid workplace. The time slot grid is disabled — desks are booked for the full day. Capacity tracking shows how many seats remain at shared tables. Two-month view helps plan weeks ahead.

Date-only Booking: disableTimeSlotGrid removes the hourly slot grid entirely. Best when bookings are full-day and capacity is the only constraint. Combine with capacityField to model any shared inventory (desks, lockers, parking spots).
Key properties:
disableTimeSlotGrid (full-day booking), capacityField, showAvailabilityCount, statusColors Reserved/Checked In/Cancelled, hideBookingsWithStatus Cancelled, twoMonthView, enableEditMode
Booking

Lab & Studio Booking

Research labs, recording studios, or maker spaces with capacity limits. Status colors distinguish between reserved, in-use, and maintenance slots. Hover tooltips show the purpose and equipment needed for each booking.

Key properties:
capacityField, showAvailabilityCount, businessHoursStartField / businessHoursEndField, statusColors Reserved/In Use/Available/Maintenance, hideBookingsWithStatus Maintenance, statusColorDisplay grid, hoverFields Purpose/Equipment_Needed, groupTimeSlotsByPeriod
Booking

Vehicle & Fleet Reservation

Fleet managers handle vehicle checkout for field teams. Extended hours (6 AM – 8 PM) accommodate early departures and late returns. Consolidated time span merges adjacent slots into a single booking block. Hover shows purpose and destination.

Key properties:
timeInterval 60 min, minTime 06:00 / maxTime 20:00, consolidateTimeSpan, statusColors Reserved/In Transit/Returned/Cancelled, hideBookingsWithStatus Cancelled, statusColorDisplay grid, hoverFields Purpose/Destination, groupTimeSlotsByPeriod
Booking

Therapist Scheduling

Healthcare practices schedule therapy sessions per therapist. Recurring patterns let patients book a standing weekly session. Cancelled bookings are hidden from the grid. Availability badges show each therapist's open slots.

Key properties:
showAvailabilityCount, showRecurringPattern, statusColors Confirmed/Pending/Cancelled/No Show, hideBookingsWithStatus Cancelled, statusColorDisplay grid, hoverFields Session_Type/Notes, businessHoursStartField / businessHoursEndField, enableEditMode, selectableStatuses Pending only (client books)
Booking

Athletic Facility Booking

Gyms, courts, and fields with capacity limits. Extended hours (6 AM – 10 PM) cover early-morning and evening sessions. Multiple resources enabled so members can book a court and a batting cage in one flow.

Multi-resource mode: allowMultipleResources swaps the single-resource dropdown for checkboxes. The time grid renders combined capacity across whatever resources the user has selected, and bookings can span multiple resources atomically.
Key properties:
capacityField, showAvailabilityCount, allowMultipleResources, minTime 06:00 / maxTime 22:00, statusColors Reserved/Walk-In/Cancelled, hideBookingsWithStatus Cancelled, statusColorDisplay grid, groupTimeSlotsByPeriod
Booking

Multi-Site Workshop

A trainer leads ONE session that runs simultaneously across linked rooms (overflow seating, hybrid sites, livestream studios). With capacityAggregation = Distinct, picking 4 rooms for a 2 PM session shows 1/MAX-cap — one event, not four — so the count tracks distinct sessions rather than per-room inventory.

When to pick Distinct vs Combined: use Distinct when one logical event uses several resources together (a workshop running in 4 rooms = 1 booking). Use the default Combined when resources contribute independently (a catering bundle with 3 ovens + 2 warmers sums to 5 used).
Key properties:
capacityField, capacityAggregation Distinct, allowMultipleResources, minTime 08:00 / maxTime 18:00, statusColors Confirmed/Tentative/Cancelled, hideBookingsWithStatus Cancelled, enableEditMode
Booking

Active Conference Rooms (Filtered Picker)

Showcases resourceFilterField + resourceFilterValue with the multi-field AND syntax — picker shows only resources where Active__c = true AND Resource_Type__c = 'Conference Room'. The semicolon separator combines both filters; admins can swap in any field/value pair from the resource object.

Filter syntax cheatsheet: ; between fields = AND, , between values = OR. Field count on each side of ; must match. Examples: Resource_Type__c=Conference Room · Building__c=North,South (OR) · Resource_Type__c;Building__c=Conference Room;North,South (AND with OR inside the second field).
Key properties:
resourceFilterField Active__c;Resource_Type__c, resourceFilterValue true;Conference Room, capacityField, allowMultipleResources, statusColors Confirmed/Pending/Cancelled, hideBookingsWithStatus Cancelled, enableEditMode
Booking

Catering Equipment Bundle

Reserve multiple independent pieces of equipment (ovens, warmers, serving stations, beverage carts) for the same event. Each item has its own capacity, and capacityAggregation = Combined sums everything — so 3 ovens used out of 5 oven inventory + 2 warmers used out of 4 reads as 5/9 across the bundle.

Multi-resource + Combined capacity (default): sums bookings AND capacities across the checked resources. The "5/9" badge tells operators they have 4 spots left across the whole bundle without having to mentally add up per-resource counts.
Key properties:
capacityField, capacityAggregation Combined, allowMultipleResources, timeInterval 30, minTime 07:00 / maxTime 21:00, statusColors Confirmed/Pending/Cancelled, hideBookingsWithStatus Cancelled, enableEditMode
Booking

Salon & Spa Booking

Clients book appointments with specific stylists or therapists. Auto-jump takes users straight to the first available slot. Both cancelled and no-show bookings are hidden from the grid. Hover shows service type, estimated duration, and notes.

Key properties:
timeInterval 30 min, autoJumpToFirstAvailable, consolidateTimeSpan, showAvailabilityCount, statusColors Booked/Walk-In/Cancelled/No Show, hideBookingsWithStatus Cancelled & No Show, statusColorDisplay grid, hoverFields Service/Duration/Notes, selectableStatuses Booked only (customer books)
Booking

Multi-Day Vehicle Rental

Customers reserve a vehicle for multiple consecutive days. Adjacent days collapse into a single reservation record per vehicle — a Mon-Fri rental creates one record (start: Mon, end: Fri), not five separate daily records. No time slots since the rental spans full days.

Date-span Booking without a time grid: endDateField + disableTimeSlotGrid together model a multi-day rental as a single record with start/end. Saves reporting joins downstream — one Mon→Fri rental is one row, not five.
Key properties:
endDateField for date-range collapse on Booking, disableTimeSlotGrid full-day mode, conflictBehavior block, statusColors Confirmed/Pending/Returned/Cancelled, hideBookingsWithStatus Cancelled, twoMonthView, enableEditMode
Booking

Trainer Day With Breaks

Trainers book a full day on a resource (room, vehicle, equipment). The day saves as one parent record from the first slot to the last; lunch and breaks become child sub-block records. Click "Mark as Break" to flag a slot manually, or just leave gaps and they auto-detect.

Sub-Blocks on Booking: the bundled Sub_Block__c child object stores break records linked to the parent Schedule via subBlockParentLookupField. No extra schema setup required — both objects ship in the package.
Key properties:
consolidateTimeSpan, subBlockObjectApiName Sub_Block__c, subBlockParentLookupField Schedule__c, subBlockModeButtonLabel Mark as Break, showSubBlockButton, statusColors Confirmed/Tentative/Pending/Cancelled, enableEditMode
Booking

Field Service Visit With Travel

Field technicians schedule visits where on-site time and travel-between-stops both matter. The visit envelope saves as one parent record; gaps between picked slots become child sub-block records labeled as travel. Track on-site time vs. drive time separately on the same booking.

Heaviest config in the library: full Sub-Block support on Booking — schedule, resource, and sub-block objects all bundled with the package. Reporting can roll up on-site time vs. drive time without custom joins.
Key properties:
consolidateTimeSpan, subBlockObjectApiName Sub_Block__c, subBlockModeButtonLabel Mark as Travel, conflictBehavior block, statusColors Confirmed/Dispatched/Completed/Cancelled, hoverFields Notes, enableEditMode, secondStatusField Visit_Type__c (2nd picklist)
Booking

Bulk Site Booking

Dispatchers batch-assign technicians and vehicles across 20+ job sites in one pass. Some sites are already at capacity — with conflictBehavior = skip, the save quietly books the open sites and skips the full ones instead of failing the whole batch. allowMultipleResources shows the site list as checkboxes with combined capacity counts.

Why skip for bulk dispatch: across dozens of sites, hitting block would reject the entire assignment the moment ONE site is full. Skip partial-saves — open sites get booked, full sites are reported back as skipped — so a dispatcher never re-runs the whole batch over a single conflict.
Key properties:
conflictBehavior skip, allowMultipleResources, capacityField, capacityAggregation Combined, showAvailabilityCount, minTime 06:00 / maxTime 18:00, statusColors Assigned/Dispatched/Cancelled, hideBookingsWithStatus Cancelled, enableEditMode
Booking

Training Batch Enrollment

Enroll a learner across a multi-week course where each session has a seat cap and some are already full. With conflictBehavior = skip, batch-selecting sessions enrolls in every open one and skips the at-capacity sessions — no all-or-nothing rejection. twoMonthView spans the schedule and combined capacity counts show seats left per session.

Skip vs block for capacity-limited enrollment: skip lets a learner grab every open session in one click while full sessions are silently passed over. block would force them to deselect each full session by hand before the save would go through.
Key properties:
conflictBehavior skip, allowMultipleResources, capacityField, capacityAggregation Combined, showAvailabilityCount, twoMonthView, minTime 08:00 / maxTime 17:00, statusColors Enrolled/Waitlisted/Cancelled, hideBookingsWithStatus Cancelled, enableEditMode
No Booking configs match this filter.

Object & Field Mapping

Each config references object and field API names that you'll need to replace with your own. Use the diagrams below to see which fields map to which objects.

Date Selection
Date — replace these fields with your object and field API names
Your Record Object
Related_Object__cObject API Name
Date_Field__cDate field
Relationship_Field__cLookup to parent
End_Date_Field__cDate range end (optional)
Status_Field__cPicklist field (optional)
Hover_Fields__cPopover detail fields (optional)
Blocked Dates Object Optional
Blocked_Dates_Source_Object__cObject API Name
Blocked_Dates_Date_Field__cDate field
Blocked_Dates_Filter_Field__cLookup to parent
Important: Every config in this library uses example object and field names. Before importing, open the JSON and replace the orange values with your org's actual object and field API names. If you use blocked dates, replace the red values too. Everything else in the config works as-is.
Date & Time
Date Time — replace these fields with your object and field API names
Your Record Object
Related_Object__cObject API Name
Date_Field__cDate field
Relationship_Field__cLookup to parent
Start_Time_Field__cTime field
End_Time_Field__cTime field
End_Date_Field__cDate range end (optional)
Status_Field__cPicklist field (optional)
Hover_Fields__cPopover detail fields (optional)
Sub-Block Object Optional
Sub_Block_Object_Api_Name__cObject API Name
Sub_Block_Parent_Lookup_Field__cLookup to parent
Sub_Block_Date_Field__cDate field
Sub_Block_Start_Time_Field__cStart time
Sub_Block_End_Time_Field__cEnd time
Sub_Block_Name_Field__cLabel field (optional)
Blocked Dates Object Optional
Blocked_Dates_Source_Object__cObject API Name
Blocked_Dates_Date_Field__cDate field
Blocked_Dates_Filter_Field__cLookup to parent

Sub-Block Use Cases

When Consolidate Time Span is enabled, gaps between selected time slots are automatically detected and saved as separate records on a child object. Users can also manually mark slots as sub-blocks.

  • Shift scheduling with breaks — Employee selects 8 AM – 5 PM; the 12 – 1 PM lunch gap auto-creates a record on a Break__c object
  • Travel itineraries — User blocks travel windows; layovers between flights become Travel_Leg__c records
  • Training schedules — Instructor selects teaching blocks; free periods between sessions save as Available_Slot__c records
  • Work schedules with appointments — Manager defines work hours; gaps for meetings or appointments auto-save to an Appointment__c object
Important: Every config in this library uses example object and field names. Before importing, replace the orange values with your record object and field API names. If you use sub-blocks, replace the purple values with your child object and fields. If you use blocked dates, replace the red values too. Everything else works as-is.
Resource Booking
Booking — replace these fields with your object and field API names
Your Record Object
Related_Object__cObject API Name
Date_Field__cDate field
Relationship_Field__cLookup to parent
Booking_Resource_Field__cLookup to resource
Start_Time_Field__cTime field
End_Time_Field__cTime field
Status_Field__cPicklist field (optional)
Hover_Fields__cPopover detail fields (optional)
linked via
lookup
Your Resource Object
Resource_Object__cObject API Name
Resource_Name_Field__cDisplay name
Business_Hours_Start_Field__cTime field
Business_Hours_End_Field__cTime field
Capacity_Field__cNumber field (optional)
Resource_Filter_Field__cFilter field (optional)
Resource_Filter_Value__cFilter value (optional)
Sub-Block Object Optional
Sub_Block_Object_Api_Name__cObject API Name
Sub_Block_Parent_Lookup_Field__cLookup to parent
Sub_Block_Date_Field__cDate field
Sub_Block_Start_Time_Field__cStart time
Sub_Block_End_Time_Field__cEnd time
Sub_Block_Name_Field__cLabel field (optional)
Blocked Dates Object Optional
Blocked_Dates_Source_Object__cObject API Name
Blocked_Dates_Date_Field__cDate field
Blocked_Dates_Filter_Field__cLookup to parent
Important: Every config in this library uses example object and field names. Before importing, replace the orange values with your record object and field API names, and the green values with your resource object and fields. The purple values are only needed for Parent + Sub-Blocks configs (consolidateTimeSpan); the red values only for blocked dates. Everything else works as-is.
Hover Fields Example
When Hover_Fields__c is set (e.g. "Service__c,Duration__c,Status__c"), hovering a booked time slot or date cell shows a popover like this:
April 22, 2026 · 2 bookings
Service: Haircut & Color
Duration: 90
Status: Confirmed
View Record →
Service: Beard Trim
Duration: 30
Status: Pending
View Record →
Popover appears on hover over booked time slots in the grid and on date cells in the calendar.

Don't see your use case?

Reach out and I'll help you build a custom config — or use the Setup Wizard to create one from scratch.

Email Support@MultiDatePick.com Open Setup Wizard Guide

Troubleshooting

Quick fixes for the most common setup snags — especially when placing the component on an App Page, Home Page, or Experience Site. For the full walkthrough, see App / Home / Experience Pages.

The Save button never appears

One of the four requirements is missing. On App/Home/Experience, the usual culprit is an empty Static Record Id. Confirm the Related Object, Date Field, and Relationship Field properties are filled too.

Calendar loads, but saving does nothing / errors

The user can't access the objects. Assign the MultiDatePick permission set (or, on an Experience Site, grant the member/guest profile read/create on the objects and fields).

"Field does not exist" on save

The object or field API name doesn't match the schema — usually a typo or the wrong field. Use the exact API name from Setup → Object Manager. You only need a namespace prefix when pointing at an object from another installed package (e.g. acme__Visit_Date__c); your own objects — and the bundled demo objects — don't require one.

Community members can't see records they created

Experience Site sharing. Add a sharing rule (or set org-wide defaults) so the member or guest user can see the records on the related object.

Saves, but nothing shows when they refresh the page

Turn on preloadExistingDates so the component loads existing records for that parent each time it opens.

Static Record Id "isn't valid"

It must be a real 15- or 18-character Id of the parent object — the one your Relationship Field API Name points to — not some other record.