3.0.0-beta.4 • Published 6 months ago
payload-appointments-plugin v3.0.0-beta.4
!Warning This plugin is a WIP and doesn't fully function yet.
Payload plugin to add appointment scheduling to your Payload app.
This plugin allows you to add appointment scheduling capabilities to your payload app. It provides:
- Services and Appointments collections.
- An Appointment schedule calendar view.
- Opening times global.
Appointments Schedule View For Everyone
Appointments Schedule View For Logged In User
Dashboard View
Installation
1. install
npm i payload-appointments-plugin
2. add fields to users collection
const Users: CollectionConfig = {
// ...
fields: [
{
name: "firstName",
type: "text",
label: "First name",
},
{
name: "lastName",
type: "text",
label: "Last name",
},
{
name: "roles",
type: "select",
options: [
{
value: "admin",
label: "Admin",
},
{
value: "customer",
label: "Customer",
},
],
},
{
name: "takingAppointments",
type: "checkbox",
admin: {
condition: (siblingData) =>
["admin"].includes(siblingData.roles),
description: "Whether this user takes appointments or not.",
},
label: "Taking appointments?",
defaultValue: false,
},
{
name: "preferredNameAppointments",
type: "text",
label: "Preferred name",
required: true,
admin: {
condition: (siblingData) =>
Boolean(siblingData.takingAppointments),
description:
"Name to show in appointment schedule calendar and to customers when booking.",
},
},
],
};
export default Users;
3. add to config
import appointments from "payload-appointments-plugin";
export default buildConfig({
/* ... */
plugins: [appointments()],
/* ... */
});
4. add email config
follow instructions on PayloadCMS Email Docs
todo?
- Appointments collection
- Appointment type, Host, Customer, Services, Title, Start date/time, End date/time
- Appointment type is appointment or blockout (lunch, break, interview, meeting, day off? etc.)
- Endpoint for getting available time slots
- Add new properties/attributes to default auth collection
- Taking appointments checkbox
- Preffered name
- Calendar subscription
- Services collection for ...services
- Title
- Description
- Duration
- Cost/Price
- Variable cost (per hour... etc.)
- Emails
- Email config (Will need to be added by the dev)
- React email templates
- Appointment created email
- Add iCal link/file to email
- Appointment updated email
- Add iCal link/file to email
- Customer signed up email
- Forgot password email
- Appointment created email
- Custom payload views
- Appointments schedule view /appointments/schedule
- Appointments schedule view for loggined in user /appointments/schedule/me
- Charts /appointments/charts
- Marketing Campaigns /appointments/marketing-campaigns
- ...more to come
- Endpoints
- Get available timeslots for given date, services, host
- Calendar schedule view
- Ability to update appointment from calendar view
- Ability to add appointments by clicking/tapping slot in calendar
- Get start date and time from clicked slot
- Get host from clicked slot
- Opening times global
- Monday...Sunday
- Set times for different days of week
- Define if closed on that day
- Add properties for showing/hiding navItems and beforeDashboard
- Add overrides for collections
A lot more I want to add. But may need some help.
testing?
I'm new to testing...
3.0.0-beta.1
6 months ago
3.0.0-beta.3
6 months ago
3.0.0-beta.2
6 months ago
3.0.0-beta.4
6 months ago
0.0.4-beta-3
1 year ago
0.0.4-beta-2
1 year ago
0.0.4-beta-1
1 year ago
0.0.4-beta
1 year ago
0.0.3-beta
1 year ago
0.0.2-beta
1 year ago
0.0.1-beta
1 year ago
0.0.4
1 year ago
0.0.3
1 year ago
0.0.2
1 year ago
0.0.1
1 year ago