Auto-invoice clients the moment a calendar meeting ends. Zero manual work.
Billable is a Python automation system for freelancers and agencies that eliminates manual invoicing by automatically generating and sending invoices when a billable Google Calendar event ends.
Freelancers lose revenue due to:
- Delayed invoicing
- Forgotten billing
- Manual time tracking
- Multi-step payment workflows
Billable solves this by fully automating the post-meeting billing pipeline.
Once a [BILLABLE] tagged calendar event ends, the system:
- Calculates billable duration
- Generates a PayPal invoice
- Sends the invoice to the client
- Posts a receipt in Slack
- Sends a payment link via SMS
- Triggers a follow-up reminder if unpaid
- Python 3
- Flask
- Google Calendar API
- PayPal Invoicing REST API v2
- Slack Incoming Webhooks (Block Kit)
- Twilio Programmable SMS
- threading
- python-dotenv
billable/ ├── .env ├── .env.example ├── requirements.txt ├── config.py ├── app.py └── services/
Google Calendar → Detect event → Calculate amount → PayPal invoice → Slack → SMS → Follow-up
GOOGLE_CALENDAR_ID=primary
PAYPAL_CLIENT_ID=
PAYPAL_CLIENT_SECRET=
PAYPAL_MODE=sandbox
SLACK_WEBHOOK_URL=
TWILIO_ACCOUNT_SID=
TWILIO_AUTH_TOKEN=
TWILIO_FROM_NUMBER=+1XXXXXXXXXX
HOURLY_RATE=150
DEMO_MODE=true
python app.py
POST /trigger
{ "event_id": "demo-001", "title": "[BILLABLE] Strategy Session", "client_email": "client@example.com", "client_name": "Alex", "client_phone": "+923001234567", "duration_minutes": 45 }
- Automated invoicing pipeline
- Slack + SMS notifications
- PayPal invoice generation
- Failure-safe execution
- Event deduplication
- Demo mode support
- Stripe integration
- AI-based meeting tagging
- Web dashboard
- Persistent database