Coming soon to the Salesforce AppExchange

Salesforce Campaign Dates: Every Event Day on One Calendar

A Campaign has one start date and one end date. Your tour, webinar series or volunteer program has many. Put them all on the Campaign record, each one a real record with a status, without writing Apex.

Published October 19, 2026 · Updated October 21, 2026 · MultiDatePick

"How do I add more than one date to a Salesforce Campaign?" "Where do I track each stop of the roadshow?" "Which webinar sessions are confirmed?" A Campaign only knows when it starts and ends. Everything in between ends up in a spreadsheet or a long description field.

MultiDatePick puts a calendar on the Campaign record page. Click the days, save, and each one becomes its own child record linked to the Campaign, colored by status. It works on Campaigns the same way it works on any object: by configuration. No Apex required.

Animated demo of MultiDatePick on a Salesforce Campaign record page: a donor tour's dates shown in status colors, hovering a confirmed stop, picking two new dates and saving them as Campaign Date records
A donor tour on its Campaign: hover a stop for its venue and status, click two more days, save. Each date is its own record.

What you get on the Campaign page

Every date at a glance

All of the Campaign's dates load onto the calendar when the record opens. No related list to scroll.

Status colors

Planned, Confirmed, Completed, Cancelled: each status gets its own color, and the pills above the calendar filter by status.

Hover for details

Point at a date to see the record behind it, such as the stop name, venue and status, with a link to open it.

Recurring patterns

Every Tuesday for eight weeks is one pattern and one click. Handy for webinar series and send schedules.

Edit mode

Select several dates, then change their status, move them to another day, or delete them in one step.

Real records

Each date is a child record with a lookup to the Campaign. Report on it, build flows on it, share it like anything else.

Set it up in three steps

The components are object-agnostic. They do not know or care that the parent is a Campaign; they need a child object to save into and a lookup that points back. That is the whole integration.

  1. Create the child object. In Object Manager, create a custom object such as Campaign Date. Give it a Lookup field to Campaign and a Date field. Add a Status picklist (Planned, Confirmed, Completed, Cancelled) and any detail fields you want on hover, such as Venue.
  2. Run the Setup Wizard. Open the MultiDatePick Setup Wizard tab and configure the Dates component. Pick Campaign Date as the object, the Campaign lookup as the relationship field and your Date field. On Status & Display, choose the status field, a color per value and the hover fields. Save the config under a name like Campaign_Dates.
  3. Drop the component on the Campaign page. Open any Campaign, click Edit Page, drag the MultiDatePick Dates component onto the layout and enter the config name in Config Name. Save and activate. Every Campaign now has its calendar.

Need times as well as days, like a webinar at 11:00 and a repeat at 3:00? Use the Date Time component instead and add Start and End Time fields to the child object. The steps are the same.

Prefer a Screen Flow?

The same config works inside Flow. Add the Dates component to a screen and set Config Name; every setting comes from the config, with no checkboxes to set in Flow Builder. Pass the Campaign Id into Parent Record Id and the component saves the child records itself. Leave it blank if you would rather loop the Selected Dates output and create the records your own way. The multiple dates in a Screen Flow post walks through both patterns.

What teams track on Campaigns

Anything a Campaign does on more than one day fits the same child object:

Multi-day eventsConferences, summits and galas with setup, show and teardown days, each with its own status.
Roadshows and toursOne record per stop, with venue and status, so everyone sees which cities are confirmed.
Webinar seriesA recurring pattern lays out the whole series; the colors show which sessions have run.
Volunteer daysService days and drives across a season, each one a record you can report on.
Send schedulesThe planned send dates of an email or mail drip, visible on the Campaign they belong to.
Blackout datesPoint Blocked Dates at your holiday object and nobody plans a send or event on those days.

The settings that shape it

Each one is a field in the Setup Wizard and a property on the component, so nothing here needs code:

SettingWhat it doesAPI name
Child Object API NameThe child object each date is saved to, such as Campaign_Date__c.relatedObjectApiName
Relationship Field API NameThe lookup on that object that points to Campaign. The component fills it from the record page.relationshipFieldApiName
Date Field API NameThe Date field that holds each picked day.dateFieldApiName
Status Field and Status ColorsThe status picklist and a color per value, such as Confirmed:#22C55E.statusField, statusColors
Hover Popover FieldsThe fields shown when you point at a date, such as name, venue and status.hoverFields
Show Recurring Pattern ButtonShows the Add Recurring Pattern button for weekly or monthly runs.showRecurringPattern
Enable Edit ModeShows the Edit button for changing status, moving or deleting several dates at once.enableEditMode
Config NameThe config saved by the Setup Wizard. Set this and leave the rest blank.configName
More than a month grid. MultiDatePick can show the same records as a calendar, a timeline, a week, an agenda list or a utilization grid, switched from one component. See all five views.

Questions people ask

Can a Salesforce Campaign have multiple dates?

A standard Campaign has one Start Date and one End Date. To track every day of a tour, webinar series or volunteer program, add a small child object with a lookup to Campaign and put the MultiDatePick Dates component on the Campaign record page. Every date you click is saved as its own child record.

Do I need Apex or a developer to add dates to Campaigns?

No. The child object and its fields are point-and-click in Object Manager, the Setup Wizard writes the calendar configuration, and the component goes on the page in Lightning App Builder. There is no Campaign-specific code to write or install.

Where are the Campaign dates stored?

In your own custom object, for example Campaign Date, with one record per date and a lookup to the Campaign. They are ordinary Salesforce records, so list views, reports, flows and sharing all work on them as usual.

Can each Campaign date have its own status?

Yes. Add a picklist such as Planned, Confirmed, Completed and Cancelled, choose a color for each value, and the calendar paints every date in its status color. Edit mode lets you select several dates and change their status, move them, or delete them in one step.

Can I use it in a Screen Flow instead of the record page?

Yes. Add the Dates component to a flow screen and set Config Name to the config you saved in the Setup Wizard. Pass the Campaign Id into Parent Record Id and the component saves the child records itself, or leave it blank and loop the Selected Dates output.

Every Campaign date, on the Campaign.

Click dates in the live demo, or start from a ready-made config in the Config Library.

  • $20/user/month, every feature
  • 30-day free trial, no card
  • 100% native Salesforce
  • No Apex
  • Coming soon to the Salesforce AppExchange