Custom CalDAV Server Development
Budget: $30 – $250 CAD
Objective:
Develop a standalone CalDAV server that runs on a simple LAMP stack (or a lightweight Python setup) and allows users to subscribe to their schedules via unique links. The calendar will be read-only, displaying employee shifts and location events while syncing with standard calendar apps (Apple, Google, Outlook, etc.).
Subscription URLs:
Each user will have access to three types of subscription links:
Personal Schedule: https://[MY DOMAIN]/subscribe/[UNIQUE KEY]/[USER ID]/personal/
Location-Wide Schedule: https://[MY DOMAIN]/subscribe/[UNIQUE KEY]/[USER ID]/location/
Location Events: https://[MY DOMAIN]/subscribe/[UNIQUE KEY]/[USER ID]/events/
These links will be generated and managed by our main system. The freelancer does not need to implement authentication—just handle requests using predefined example keys and user IDs.
Calendar Data Structure:
The script should return valid CalDAV XML with the following hardcoded examples from a sample configuration file:
1. Employee Shifts:
Each shift should include:
Start & End Time
Role Title (e.g., "Bartender")
Employee Name
2. Location Events:
Each event should include:
Start & End Time
Event Title (e.g., "Open Mic Night")
Our software will eventually provide real data—this is just for initial development and testing.
Technical Requirements:
Handle PROPFIND, REPORT, and GET requests from calendar clients.
Generate iCalendar (ICS) format in XML for compatibility.
Read-Only Access: Clients must not be able to modify, add, or delete events.
Implement ETag and Last-Modified headers to optimize sync requests.
Ensure proper timezone handling for shifts and events.
Support standard CalDAV sync intervals (Apple, Google, Outlook, etc.).
Security Considerations:
Sanitize all input parameters (e.g., UNIQUE KEY, USER ID).
Prevent unauthorized modifications (strict read-only mode).
Log all access attempts for monitoring potential abuse.
Debugging & Logging:
Implement a debug/logging endpoint that records all sync requests.
Store request logs with timestamps, client user agents, and response times.
Allow logs to be enabled/disabled via a simple configuration setting.
Server Compatibility:
Should run on a LAMP stack (PHP) or a lightweight Python setup.
No reliance on full WebDAV/CalDAV server packages—must be self-contained.
Minimal external dependencies for ease of deployment.
Deliverables:
CalDAV Server Script – A functional script handling requests and returning calendar data.
Configuration File – Allowing easy modification of hardcoded test data (shifts, events, users).
Debug/Logging Endpoint – Recording sync requests for monitoring.
Basic Documentation – Include comments in the code for readability, expected request/response formats, and troubleshooting steps.
Next Steps:
If interested, please provide:
Your preferred programming language (PHP or Python)
Looking forward to working with you!
Develop a standalone CalDAV server that runs on a simple LAMP stack (or a lightweight Python setup) and allows users to subscribe to their schedules via unique links. The calendar will be read-only, displaying employee shifts and location events while syncing with standard calendar apps (Apple, Google, Outlook, etc.).
Subscription URLs:
Each user will have access to three types of subscription links:
Personal Schedule: https://[MY DOMAIN]/subscribe/[UNIQUE KEY]/[USER ID]/personal/
Location-Wide Schedule: https://[MY DOMAIN]/subscribe/[UNIQUE KEY]/[USER ID]/location/
Location Events: https://[MY DOMAIN]/subscribe/[UNIQUE KEY]/[USER ID]/events/
These links will be generated and managed by our main system. The freelancer does not need to implement authentication—just handle requests using predefined example keys and user IDs.
Calendar Data Structure:
The script should return valid CalDAV XML with the following hardcoded examples from a sample configuration file:
1. Employee Shifts:
Each shift should include:
Start & End Time
Role Title (e.g., "Bartender")
Employee Name
2. Location Events:
Each event should include:
Start & End Time
Event Title (e.g., "Open Mic Night")
Our software will eventually provide real data—this is just for initial development and testing.
Technical Requirements:
Handle PROPFIND, REPORT, and GET requests from calendar clients.
Generate iCalendar (ICS) format in XML for compatibility.
Read-Only Access: Clients must not be able to modify, add, or delete events.
Implement ETag and Last-Modified headers to optimize sync requests.
Ensure proper timezone handling for shifts and events.
Support standard CalDAV sync intervals (Apple, Google, Outlook, etc.).
Security Considerations:
Sanitize all input parameters (e.g., UNIQUE KEY, USER ID).
Prevent unauthorized modifications (strict read-only mode).
Log all access attempts for monitoring potential abuse.
Debugging & Logging:
Implement a debug/logging endpoint that records all sync requests.
Store request logs with timestamps, client user agents, and response times.
Allow logs to be enabled/disabled via a simple configuration setting.
Server Compatibility:
Should run on a LAMP stack (PHP) or a lightweight Python setup.
No reliance on full WebDAV/CalDAV server packages—must be self-contained.
Minimal external dependencies for ease of deployment.
Deliverables:
CalDAV Server Script – A functional script handling requests and returning calendar data.
Configuration File – Allowing easy modification of hardcoded test data (shifts, events, users).
Debug/Logging Endpoint – Recording sync requests for monitoring.
Basic Documentation – Include comments in the code for readability, expected request/response formats, and troubleshooting steps.
Next Steps:
If interested, please provide:
Your preferred programming language (PHP or Python)
Looking forward to working with you!