Looking for more? Go Pro!

Conference Scheduler Pro has everything here and a lot more features like:

  • Import/Export from/to Excel .xlsx files. No need to copy and paste in all the details manually – bring it all in with one click. And if your data changes, just import the new version to update the information on the website.
  • Full multi-lingual capability with WPML, including import/export. Now you can post your workshop content in all languages.
  • Advanced registration system. See who has registered for each workshop, keep waitlists for workshops with limited space.
  • Extensible architecture – add additional information about your workshops with some simple code and templates.

All of this plus more, with one-year of premium support and plugin updates, for just $100!

Learn More  

Conference Scheduler

Conference Scheduler is a WordPress plugin designed to easily manage and display complex workshop schedules for conferences and similar events, and also provide information about the workshops on your website. Create and manage details about your workshops using the standard WordPress admin interface and display it all on any page of your site with a simple shortcode.

Features:

  • Add and edit workshops in the standard WordPress admin
  • Collects and displays important information about each workshop: workshop code, time, location, description, presenter, presenter bio, participant limit.
  • Add files to workshops – lets you easily distribute presentation files or other reference material
  • Group workshops by location – great if you have multiple quick workshops together when participants shouldn’t leave between.
  • Categorize workshops with theme and keyword tags for easy searching
  • Search and filter workshop listings on the front end to allow delegates to quickly find the workshops they’re most interested in
  • Favorite workshops on the front-end so delegates can build their ideal conference schedule
  • Customize basic colors and layout in the WordPress Customizer.
  • Responsive design means your schedule looks and works great on all devices – delegates can quickly pull out their phone at any time to check the schedule or workshop info.

Languages

Conference Scheduler has been fully translated into English and French. Machine translation is available for: Danish, Dutch, Finnish, German, Italian, Norwegian, Portuguese, Russian, Spanish, Swedish, Turkish.

Any help translating Conference Scheduler would be greatly appreciate! You can use the Loco Translate plugin or Poedit software to create/edit .mo files for your language and then email them to me for inclusion in the plugin.

Feature Requests

If there is a particular feature that you’d like to see in Conference Scheduler, let me know and I’ll consider adding it.

Screenshots:

User facing interface

Admin interface

Documentation

Installation

Install and activate the Conference Scheduler plugin from within your sites Admin section, or download it from the WordPress Plugins Directory.

Setup

  1. Setup Sessions – Conference Scheduler manages workshop timings using Sessions so it’s best to set them all up first. Enter all possible workshop sessions on the ‘Conference -> Sessions’ screen of the WordPress admin. Name each session and specify start date/time and session length. Sessions can be nested to easily organize complex schedules (eg. a one hour session with two 30min sessions in parallel).
  2. Setup Themes and Keywords – if your conference has defined streams it’s best to define these tags first so you can apply them to workshops quickly. You can also create new tags when entering workshops if you think of new ones later.
  3. Add Workshops – add all the workshop information using the familiar WordPress admin interface.

Display

To show your schedule, add the Conference Scheduler block to the post or page where you want the schedule to show. You can configure the display options in the block settings.

Shortcode Display (Classic Editor)

If you’re still using the classic editor, you can display the full conference schedule on your website by adding the following shortcode on the post/page where you want it to go:

[conf_scheduler]

Yes, it’s that simple!

Display Only Selected Session

You can optionally configure the shortcode to display only the children of a specified Session (and their descendants). This is useful for showing events on only a particular day, or even if you want to have monthly/annual events and display them separately. You can specify a session by either slug or ID (don’t use both).

Specify Session By Slug: You can add session=”my-session-slug” to the shortcode to display child sessions of the session whose slug is my-session-slug. Session slugs are listed in the table on the Sessions page in the Conference menu.

[conf_scheduler session="my-session-slug"]

Specify Session By ID: You can add id=”121″ to the shortcode to display child sessions of the session with ID 121. Session IDs are the Tag ID number in the Edit Session link on the Session table. It’s generally easier to use slug, but if you’re having issues with it, ID is more specific.

[conf_scheduler id="121"]

Initial Display State

By default, days and sessions are initally closed and need to be clicked on to display. However, you can use the defaultstate shortcode option to customize the initial display state. The possible values of defaultstate are:

  • open – all days, sessions and workshops are displayed.
  • parent_sessions – days and first-level sessions only are displayed. Workshops and any child sessions are hidden.
  • all_sessions – All days and sessions are displayed, but workshops are hidden.

For example, to show all content initially, use the following shortcode:

[conf_scheduler defaultstate="open"]

Styling Output

Use the WordPress Customizer to configure basic workshop display settings like:

  • Workshops per row.
  • Workshop sort order.
  • Workshop colours (border, title, background, open/picked background).
  • Day and session title colours.

Conference Scheduler has been designed with a minimal set of CSS rules that should make it look good in most themes, but it’s also easy to add custom CSS to your theme to change the way the workshops render.

If you need help styling Conference Scheduler to match your theme, get in touch, and I’d be happy to help for a small fee.

Using Conference Scheduler

Conference Scheduler creates a collapsable tree of dates and sessions which can be collapsed/expanded by clicking/tapping on their title.

By default, workshops hide their description and presenter bio. To view/hide these, just click/tap on the workshop.

Searching

Conference Scheduler comes with a search bar which includes select menus to filter workshops by themes or keywords, as well as a search box which searches in workshop title and presenter fields.

Picks

Conference Scheduler allows visitors to “pick” workshops by clicking on the star in the top-left corner of the workshop. Picked workshops will rise to the beginning of their session for easy access. Additionally, the “Show My Picks” button in the Conference Scheduler search bar will show only picked workshops so you can quickly see only what you’re interested in. To un-pick a workshop, simply click/tap on the star again.

Picked workshops are stored as a cookie on the device and are thus saved between visits.

Session Setup

The organizational power of Conference Scheduler comes from the use of sessions to schedule workshops. With thoughtful session setup, you can present workshops in many different ways.

Session Descriptions

You can optionally add a description to each session that will show below the session title. This can be used to describe the session, provide a summary of the workshops, or be used with sessions without any workshops to add other items to the conference schedule like keynote presentations, lunch breaks etc.

Simple Sessions

Great for cases where all workshops in a session are the same length. Just create a basic session and don’t worry about any of the options.

Merged Sessions

If you have workshops of different lengths that you want to show together, this is for you. For example, if you have a one-hour slot with some workshops that are the full hour, while others are only 20 minutes each, what you should do is create the main session for 60 minutes, and then create a new session for each sub-session, and set the Parent to the main session.

Group by Location

If you don’t want to specify subsession times on the schedule, you can place all the workshops in the same parent session and check the “Group By Location” box for the session. This will use the location field to group workshops together, while each workshop still shows the same timeslot.

FAQ

Emails are not being sent/received

Conference Scheduler uses the default WordPress mail function which works well on most servers. Some email programs will classify these emails as spam, so make sure to check your spam folder. Some servers are configured in a way that creates issues with the default WordPress email function. If you are having issues with sending emails, try using a SMTP mail plugin like WP Mail SMTP.

Conference Scheduler Pro Features

Import/Export

With Conference Scheduler Pro, you can import workshop and session data from Excel (.xlsx) files. Choose Conference -> Import/Export from the WordPress admin and follow instructions.

Update Mode

If Update mode is active (box checked), the workshop will be matched to existing workshops by the Workshop ID field (and language if WPML is active). All fields are overwritten with the data from the import row – even if you only want to update certain fields, make sure you have the correct information for all fields present in the file.

Column Mapping

After uploading an Excel file to import, you can select which columns to use for which data fields. Conference Scheduler will attempt to automatically match columns based on the column title, but you can change the mapping on this screen before the import occurs. It’s best to first export sessions/workshops and use that file as a template so you make sure you get all the necessary columns, but you can use your own. If there are extra columns in your data, choose “Skip column” to prevent importing too excessive or duplicate information, while keeping your Excel file the way you want it.

Column Formats – Workshop Import

Enter the information into the cell as you want it to appear on the website. The Workshop description and Presenter Bio fields support HTML.

  • Workshop ID: This field can contain letters and/or numbers, but should be unique to each workshop. This field is not displayed by default, but is required if you want to be able to import updates from Excel or use the WPML translations feature.
  • Workshop Description: This field supports HTML. To create a new paragraph, use two line break characters (In Excel type ALT-Enter on Windows, Option-Return on Mac).
  • Presenter Bio: This field supports HTML. To create a new paragraph, use two line break characters (In Excel type ALT-Enter on Windows, Option-Return on Mac).
  • Participant Limit: If registration is allowed, enter the maximum number of participants allowed. Leave blank to indicate no limit.
  • Session: The Session ID or title of the session the workshop is in. The importer first checks for a session with a matching Session ID, if none is found, it searches for a matching title. If a session with this Session ID/title already exists in the system, the workshop will be added to that session and the values of the Start and Length fields will be ignored. If the session title is not found, a new session will be created.
  • Start: The start date/time of the session. This can either be an Excel time field, or a string formatted as ‘yyyy-mm-dd hh:mm’.
  • Length: Length of the session in minutes. Ignored if the session already exists.
  • Themes: Comma separated list of themes to tag the workshop with. If a theme name contains a comma, enclose the name in double quotes (e.g. Theme 1, Theme 2, “Theme, with comma”, Theme 4).
  • Keywords: Comma separated list of keywords to tag the workshop with. Commas in keywords are not recommended as they are not well supported by WordPress, but if required can be entered by enclosing the keyword in double quotes.
  • Files: Comma separated list of URLs to be attached as to the workshop as Files. Currently only supports items already present in the WordPress Media Gallery.
  • Registered Participants: Comma separated list of users who are registered for the workshop. When importing, users must already have an account on your website, and will be matched by email address only.
  • Waitlist Participants: Comma separated list of users who are on the waitlist for the workshop. When importing, users must already have an account on your website, and will be matched by email address only.

Column Formats – Session Import

Enter the information into the cell as you want it to appear on the website. The description field supports HTML.

  • Session ID: This field can contain letters and/or numbers, but should be unique to each session. This field is not displayed by default, but is required if you want to be able to import updates from Excel.
  • Name: The name of the session.
  • Parent: The name of the session that this session is a child of.
  • Description: This field supports HTML. To create a new paragraph, use two line break characters (In Excel type ALT-Enter on Windows, Option-Return on Mac).
  • Start: The start date/time of the session. This can either be an Excel time field, or a string formatted as ‘yyyy-mm-dd hh:mm’.
  • Length: Length of the session in minutes.
  • Group by Location: Group workshops in this session together by location. Enter “yes”, or 1 to group by location.
  • Collapse: Merge together workshops from child sessions and show them as groups, with each group having 1 workshop from each child session. Enter “collapse”, “yes”, or 1 to collapse sub-sessions.
  • Hide Time: Hide the session time in the session name on the schedule. Enter “yes”, or 1 to hide the time.
  • Hide Title: Hide the session title in the session name on the schedule. Enter “yes”, or 1 to hide the title.

Language Codes

When WPML is enabled on your site, you can import/export workshop data in all languages in one file. Two additional fields are added to the Import/Export template: Language and Source Language.

  • Language: The 2 character code for the language of this data (e.g. en for English, fr for French, es for Spanish). Find the codes for your languages by going to WPML -> Languages and clicking the Edit Languages link in the Site Languages section.
  • Source Language: The 2 character code for the master language for this workshop.

Import/Export Permission

By default, only Administrators can import or export workshops on a site, however this can be customized using the conf_scheduler_ie_cap filter. This filter must return a WordPress capability to be tested to check if the user should be allowed to import/export. To enable Editors to also import/export, add the following code to your theme’s functions.php file:

add_filter('conf_scheduler_ie_cap', function(){return 'edit_pages';})

Registration

Conference Scheduler Pro allows users with an account on your website to register for workshops. A Register button will be shown for each workshop, and if the user is logged in, they can click it to register. The button will always reflect the current status of the user’s registration. Unlike picks which are stored as a device cookie, logged-in users registration status is stored on the server and will show correctly on any device where the user is logged in.

Waitlists

If enabled in Settings, a waitlist will be maintained for each workshop once it reaches capacity, and the waitlist number will be shown on the register button. If a registered user unregisters for the workshop, the first user on the waitlist will be automatically moved to the registered list.

Disable Registration for Individual Workshops

You can disable registration for individual workshops by checking the “Disable Registration” checkbox in the Workshop Info sidebar of the Edit Workshop screen. Any existing registrations will be saved, but no changes will be allowed and the registration button will not show on the schedule.

Prevent Overlap

If enabled, users will not be allowed to register for workshops that overlap in time with ones that they are already registered for. Users will be allowed to sign up for waitlists on overlapping workshops, but if a space becomes available for them, it will be held for them for a limited time (Hold Duration) during which they can unregister from conflicting workshops and then accept the hold. If they do not accept the hold before the Hold duration passes, they will be unregistered from the workshop and the space will be made to the next person on the waitlist.

You should enable the “Email User on Space Held” notification so that the user gets notified of the hold and can act accordingly.

Hold Duration

The number of hours that a confirmed space will be held for a user when they have a conflict that prevents them from registering for the workshop.

Control Who Can Register

The “Restrict Registration” setting controls which users are allowed to register for workshops. Select which mode you want:

  • No restriction – all logged in users can register for workshops.
  • Restrict by Role – only users with the specified role(s) can register. Core roles are ‘subscriber’, ‘contributor’, ‘author’, ‘editor’ and ‘administrator’. User roles are assigned in the User section of the WordPress Admin.
  • Eventbrite attendeesintegrate with Eventbrite to automatically create accounts on your site for everyone who purchases a ticket on Eventbrite for the specified event.
  • Restrict by Product (WooCommerce) – only users who have purchase the selected WooCommerce product(s) can register.

Eventbrite Integration

Conference Scheduler Pro con integrate with Eventbrite, allowing you to sell tickets on Eventbrite and then have users come to your site to register for workshops using Conference Scheduler.

To setup the integration, login to your Eventbrite account and go to App Management under Developer Settings of your account. Click the “Create A New App” button at the top right of the screen. Fill out the simple form that appears with your contact information. For Application Details use:

  • Application URL: Use your website address (https://www.mysite.com/ for example)
  • OAuth Redirect URL: Leave this field blank
  • Application Name: Conference Scheduler
  • Description: Something to help you remember what this is for – it can be anything.

Read the terms and conditions and check the checkbox, and then click “Create Key”. You will be taken back to the Apps listing. Find the Conference Scheduler App you just created and click “Show Client Secret and OAuth Token”. Find and copy your personal OAuth token, and paste it into the “Eventbrite App Personal Token” field in the Conference -> Settings page on your website admin. Click the Login to Eventbrite button.

Once you are logged into Eventbrite on your Conference -> Settings admin screen, you have to select the Eventbrite Organization and then Event you want to integrate with using the dropdown menus. Once you’ve selected an event, click the “Pull Attendees from Eventbrite” button to complete the integration.

If you want to remove an Eventbrite integration, simply click the “Unlink from MYEVENT” button in the Conference -> Settings screen of your website admin.

WooCommerce Settings

Conference Scheduler registration requires the user to have an account on your website. By default, WooCommerce allows guest checkout (no account), but you can also have it automatically create an account for each customer if you change a couple settings in the WooCommerce -> Settings -> Accounts & Privacy admin page as follows:

  • Uncheck “Allow customers to place orders without an account” – requires an account to make a purchase.
  • Check “Allow customers to create an account during checkout” – coupled with the above, this automatically creates an account for the customer.
  • (optional) Check “When creating an account, automatically generate a username from the customer’s email address”  if you want the system to automatically generate a username for the account. This means one less field to fill in on checkout.
  • (optional) Check “When creating an account, automatically generate an account password” if you want the system to automatically generate a secure password for the user. This will be automatically emailed to the customer after purchase.

My Schedule

Conference Scheduler Pro provides a shortcode that will display a schedule showing the workshops the user has registered for, along with a button that allows the user to have the schedule sent to their user email address as a “ticket”. To display a users schedule, use:

[conf_scheduler_ticket]

Google Calendar Integration

Conference Scheduler can integrate with Google Calendar to allow users to simply click a button and have their registered workshops added to their calendar automatically. To enable this feature, you must create a “Client ID” and “Client Secret” with Google. There are several steps, but the process is simple and should only take about 5 minutes. See the captioned screenshots below or follow the text instructions.

Instructions to get your Google Client ID and Client Secret codes:
  1. Go to the Google Developers Console. You will have to sign in with a Google Account (or create one using your email address).
  2. Create a new project by clicking the “Create” button in the notice or clicking “Select a project” in the top left corner and then “New Project” in the modal window.
  3. Give your project a name (your conference title is a good choice) and click “Create”.
  4. Enable Google Calendar API if it is not already enabled by clicking on the “Enable APIs and services” button.
  5. Search for “Calendar” on the APIs page.
  6. Click on “Google Calendar API”, and then click on the “Enable” button.
  7. Click the “Create Credentials” button in the notice. If it’s not there, you can find it on the the “Credentials” page linked in the left menubar.
  8. At the first wizard step select “Google Calendar API” from the “Which API are you using?” dropdown, “Web browser (Javascript)” from “Where will you be calling the API from?” dropdown and “User data” from “What data will you be accessing?” option. After that click on the “What credentials do I need?” button.
  9. A “Set up OAuth consent screen” window may appear. If so, click “Set up consent screen”. Fill out the following fields and click “Save”:
    • Application name: Your conference title
    • Application logo: Your conference logo
    • Authorised domains: The domain of your website (eg. “mycomference.com” for a homepage URL of “https://www.myconference.com/”)
    • Application Homepage link: The URL of website (something like “https://www.myconference.com/”.
    • Application Privacy Policy link: The URL of the page that has your privacy policy.
  10. Go back to the initial window with the “Add credentials to your project” Wizard, which should now be on Step 2. Enter the “Name” of your OAuth client ID (“Conference Scheduler” is a good choice) and in the “Authorized Javascript origins” field, enter your website homepage URL (eg. “https://www.myconference.com/”). After that click on “Create OAuth client ID” button (you may have to click the “Refresh” button first.
  11. At the third step click on “Done” button. After that, click on your newly created OAuth client ID in the credentials list.
  12. Copy and paste “Client ID” and “Client Secret” into the respective fields on the Conference Scheduler Registration Settings page on your website and click “Save changes” at the bottom of the page.

Now you are all set up. An “Add to Google Calendar” button will appear on the Conference Ticket where ever it is show. When a user clicks it, they will be asked to login to their Google account and give permission for your website to access their calendar. If they agree, then their registered workshops will be added automatically to their calendar.

Email Notifications

Conference Scheduler Pro has a comprehensive email notification system that can be enabled to automatically send emails to users and/or admins when various registration events happen. Each notification can be enabled/disabled independently, and the subject and content of the message can be customized on the Settings page.

Advanced Customization – coding required

For people with basic familiarity with WordPress coding (editing CSS, theme function.php files), Conference Scheduler Pro has several hooks and filters to allow for detailed customization. If you’re not comfortable with doing this yourself, I can do it for you for a small fee if you get in touch.

Workshop Template

The HTML of the workshop block can be customized creating a ‘conference-scheduler’ folder in your theme and copying the ‘templates/workshop.php’ file from the plugin folder. Workshop data is passed to the template as a PHP object called $data, with properties named for each field.

Advanced Custom Fields Integration

Conference Scheduler supports Advanced Custom Fields (ACF) for workshops. Setup your custom fields using ACF and set the Location rule to be Post Type equals Workshop. ACF text, textarea, and wysiwyg types are automatically supported during import and export. Other field types can be added but require custom code to handle their import/export.

To display values from ACF fields on the workshop, just use the normal ACF functions in the workshop template. For example, to display a text field simply add:

<h2><?php the_field('text_field', $data->post_id); ?></h2>

To add an image field to the workshop:

<?php $image = get_field('image', $data->post_id);
$size = 'full'; // (thumbnail, medium, large, full or custom size)
if( $image ) {
	echo wp_get_attachment_image( $image, $size );
}
?>

When displaying ACF fields, make sure you specify the second Post ID parameter (with the value $data->post_id). Otherwise, the data will be taken from the page/post the schedule is being displayed on rather than the workshop being displayed.

Customizing Front-end Searching

By default, the search box displayed with the workshops only searches the Title and Presenter fields for each workshop. Additional fields can be searched by calling the ‘conf_scheduler_searchable’ filter and adding CSS selectors to be searched. Selectors will only be matched within the .workshop block, so you don’t have to give full selectors. For example, to set the description as searchable, add this code to your functions.php file:

add_filter('conf_scheduler_searchable', 'searchable_selectors');
function searchable_selectors($selectors) {
  $selectors[] = '.description';
  return $selectors;
}

Warning: Adding additional search fields can make searching less responsive with large numbers of workshops.