Config Library
32 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.
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.
- Download the config JSON below.
- Paste it into the wizard's Import tab (App Launcher → MultiDatePick Setup Wizard → Existing Configurations → Import).
- 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.
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.
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.
endDateField date range consolidation,
statusColors Pending/Approved/Rejected,
showRecurringPattern,
twoMonthView,
enableEditMode,
weekStartsOnMonday
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.
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.
endDateField date range consolidation,
preloadMode readonly,
blockedDatesSourceObject,
statusColors Active/Planned/Resolved,
twoMonthView
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.
allowPastDates true,
statusColors Excused/Unexcused/Medical/Pending,
maxSelections 20,
twoMonthView,
enableEditMode,
weekStartsOnMonday
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.
endDateField date range consolidation,
statusColors Scheduled/Continued/Completed/Cancelled,
hideBookingsWithStatus Cancelled,
maxSelections 10,
enableEditMode
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.
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.
blockedDatesSourceObject Schedule__c,
statusColors Draft/Scheduled/Published/Cancelled,
hideBookingsWithStatus,
hoverFields Title/Channel/Author,
showRecurringPattern,
twoMonthView
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.
endDateField date range consolidation,
showRecurringPattern,
twoMonthView,
enableEditMode,
weekStartsOnMonday
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.
endDateField date range consolidation,
statusColors Planned/In Progress/Completed/Failed,
hoverFields Auditor/Audit_Type,
maxSelections 12,
enableEditMode,
twoMonthView
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.
showRecurringPattern,
statusColors Primary/Secondary/Backup,
twoMonthView,
enableEditMode,
weekStartsOnMonday
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.
endDateField for date-range collapse,
twoMonthView,
showSelectedSummary,
statusColors Issued/Pending/Refunded,
hideBookingsWithStatus Refunded,
enableEditMode
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.
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.
timeInterval 30 min,
conflictBehavior block,
consolidateTimeSpan,
groupTimeSlotsByPeriod,
maxSelections 5,
enableEditMode,
conflictLookAheadDays 90
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.
timeInterval 60 min,
minTime 06:00 / maxTime 22:00,
allowDifferentTimes,
showRecurringPattern,
consolidateTimeSpan,
statusColors Scheduled/Swap Requested/Open,
twoMonthView
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.
timeInterval 30 min,
conflictBehavior block,
consolidateTimeSpan,
groupTimeSlotsByPeriod,
statusColors Confirmed/Pending/Cancelled/No Show,
hideBookingsWithStatus Cancelled,
statusColorDisplay grid,
hoverFields Type/Notes
Tutoring Sessions
Students or tutors schedule recurring tutoring sessions in afternoon/evening hours. Conflict detection prevents overlapping sessions. Recurring patterns let students book "every Tuesday at 4 PM" for the semester.
timeInterval 60 min,
minTime 15:00 / maxTime 21:00,
conflictBehavior block,
showRecurringPattern,
maxSelections 5,
statusColors Scheduled/Completed/Cancelled/No Show,
hideBookingsWithStatus Cancelled
Maintenance Windows
IT teams schedule overnight maintenance windows for assets and infrastructure. Conflict behavior is set to "warn" instead of "block" — teams can intentionally overlap maintenance if needed. Hover fields show change number, description, and impact assessment.
minTime 22:00 → maxTime 06:00 crosses midnight. Slot generation handles this; verify the calendar renders the way you expect before training admins.
timeInterval 60 min,
minTime 22:00 / maxTime 06:00 (overnight),
conflictBehavior warn,
endDateField multi-day windows,
statusColors Planned/In Progress/Completed/Failed,
statusColorDisplay grid,
hoverFields Description/Impact/Change_Number,
conflictLookAheadDays 180
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.
timeInterval 30 min,
minTime 09:00 / maxTime 19:00,
allowDifferentTimes,
conflictBehavior block,
groupTimeSlotsByPeriod,
maxSelections 10,
statusColors Scheduled/Confirmed/Cancelled/Completed,
hoverFields Agent/Buyer_Name
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.
timeInterval 15 min,
groupTimeSlotsByPeriod,
consolidateTimeSpan,
showRecurringPattern,
twoMonthView,
weekStartsOnMonday,
conflictBehavior block
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.
timeInterval 60 min,
conflictBehavior block,
consolidateTimeSpan,
groupTimeSlotsByPeriod,
maxSelections 4,
statusColors Scheduled/In Progress/Completed/Rescheduled,
statusColorDisplay grid,
hoverFields Room/Proctor,
conflictLookAheadDays 120
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_Block__c object — no extra schema setup required. Point subBlockObjectApiName at your own child object if you'd rather use a custom name.
consolidateTimeSpan,
subBlockObjectApiName Sub_Block__c,
subBlockModeButtonLabel Mark as Rest,
timeInterval 15 min,
statusColors Compliant/Review/Flagged,
allowPastDates
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.
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.
capacityField,
showAvailabilityCount,
statusColors Confirmed/Pending/Cancelled,
hideBookingsWithStatus Cancelled,
statusColorDisplay grid,
groupTimeSlotsByPeriod,
conflictBehavior block,
enableEditMode
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.
timeInterval 60 min,
businessHoursStartField / businessHoursEndField,
conflictBehavior block,
enableEditMode
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.
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).
disableTimeSlotGrid (full-day booking),
capacityField,
showAvailabilityCount,
statusColors Reserved/Checked In/Cancelled,
hideBookingsWithStatus Cancelled,
twoMonthView,
enableEditMode
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.
capacityField,
showAvailabilityCount,
businessHoursStartField / businessHoursEndField,
statusColors Reserved/In Use/Available/Maintenance,
hideBookingsWithStatus Maintenance,
statusColorDisplay grid,
hoverFields Purpose/Equipment_Needed,
groupTimeSlotsByPeriod
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.
timeInterval 60 min,
minTime 06:00 / maxTime 20:00,
consolidateTimeSpan,
statusColors Reserved/In Transit/Returned/Cancelled,
hideBookingsWithStatus Cancelled,
statusColorDisplay grid,
hoverFields Purpose/Destination,
groupTimeSlotsByPeriod
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.
showAvailabilityCount,
showRecurringPattern,
statusColors Confirmed/Pending/Cancelled/No Show,
hideBookingsWithStatus Cancelled,
statusColorDisplay grid,
hoverFields Session_Type/Notes,
businessHoursStartField / businessHoursEndField,
enableEditMode
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.
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.
capacityField,
showAvailabilityCount,
allowMultipleResources,
minTime 06:00 / maxTime 22:00,
statusColors Reserved/Walk-In/Cancelled,
hideBookingsWithStatus Cancelled,
statusColorDisplay grid,
groupTimeSlotsByPeriod
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.
capacityField,
capacityAggregation Distinct,
allowMultipleResources,
minTime 08:00 / maxTime 18:00,
statusColors Confirmed/Tentative/Cancelled,
hideBookingsWithStatus Cancelled,
enableEditMode
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.
; 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).
resourceFilterField Active__c;Resource_Type__c,
resourceFilterValue true;Conference Room,
capacityField,
allowMultipleResources,
statusColors Confirmed/Pending/Cancelled,
hideBookingsWithStatus Cancelled,
enableEditMode
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.
capacityField,
capacityAggregation Combined,
allowMultipleResources,
timeInterval 30,
minTime 07:00 / maxTime 21:00,
statusColors Confirmed/Pending/Cancelled,
hideBookingsWithStatus Cancelled,
enableEditMode
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.
timeInterval 30 min,
autoJumpToFirstAvailable,
consolidateTimeSpan,
showAvailabilityCount,
statusColors Booked/Walk-In/Cancelled/No Show,
hideBookingsWithStatus Cancelled & No Show,
statusColorDisplay grid,
hoverFields Service/Duration/Notes
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.
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.
endDateField for date-range collapse on Booking,
disableTimeSlotGrid full-day mode,
conflictBehavior block,
statusColors Confirmed/Pending/Returned/Cancelled,
hideBookingsWithStatus Cancelled,
twoMonthView,
enableEditMode
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_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.
consolidateTimeSpan,
subBlockObjectApiName Sub_Block__c,
subBlockParentLookupField Schedule__c,
subBlockModeButtonLabel Mark as Break,
showSubBlockButton,
statusColors Confirmed/Tentative/Pending/Cancelled,
enableEditMode
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.
consolidateTimeSpan,
subBlockObjectApiName Sub_Block__c,
subBlockModeButtonLabel Mark as Travel,
conflictBehavior block,
statusColors Confirmed/Dispatched/Completed/Cancelled,
hoverFields Notes,
enableEditMode
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.
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
lookup
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.
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.
