Nettu scheduler
is a self-hosted calendar and scheduler server that aims to provide the building blocks for building calendar / booking apps with ease. It has a simple REST API and also a JavaScript SDK and Rust SDK.
It supports authentication through api keys for server - server communication and JSON Web Tokens for browser - server communication.
Service
and register User
s on it to make them bookable.Calendar Event
s.User
s are free and when they are busy.Account
s.Calendar Event
reminders.The server is using PostgreSQL for persistence, so we will need to spin up that first:
cd scheduler
docker-compose -f integrations/docker-compose.yml up -d
Now we are ready to start the nettu-scheduler
server with cargo
cd scheduler
export ACCOUNT_API_KEY="REPLACE_ME"
export DATABASE_URL="postgresql://postgres:postgres@localhost:5432/nettuscheduler"
export PORT="3000"
cargo run
The ACCOUNT_API_KEY
environment variable is going to create an Account
(if it does not already exist) during
server startup with the given key. Account
s act as tenants in the server, and it is possible to create multiple Account
s by using the CREATE_ACCOUNT_SECRET_CODE
which you can provide as an environment variable.
Quick example of how to create and query a user
export SECRET_API_KEY="REPLACE ME WITH YOUR API KEY"
# Create a user with metadata
curl -X POST -H "Content-Type: application/json" -H "x-api-key: $SECRET_API_KEY" -d '{"metadata": { "groupId": "123" }}' http://localhost:5000/api/v1/user
# Get users by metadata
curl -H "x-api-key: $SECRET_API_KEY" "http://localhost:5000/api/v1/user/meta?key=groupId&value=123"
Please see below for links to more examples.
Contributions are welcome and are greatly appreciated!