Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Sked lets you solve the problem of "I have all these calendars and I want to share (some) of them with other people". It lets you take any combination of Google calendars and arbitrary other iCalendar feeds and make new feeds that you can then share with people. You can also only share the "I'm busy" data from a calendar, instead of it's full data if you want.

Once you've given someone one of these new feeds, you can always update their permissions afterwards - this means if you add new calendars, you don't need to tell anyone else. Also, if you gave someone too much/too little access, you can fix that.

Quick start

Most users should just be using the online version

Local development

  1. Install Docker and Docker Compose
  2. Make a new Google OAuth 2 web app. Javascript origin should be http://localhost:8000 and Authorised redirect URIs should be http://localhost:8000/oauth2callback.
  3. Enable "Google Calendar API" and "Google+ API" on the developer console
  4. Copy sked/ to sked/ and add your new OAuth secret/ID
  5. Run docker-compose up --build
  6. Goto http://localhost:8000

Docker-less local builds

The Docker build is the best option, but here's how to do it without

  1. Export needed environment variables
    • export DATABASE_URL=sqlite:///sked.db
  2. Do steps 2-4 of "Local development" to setup Google auth
  3. python migrate
  4. python runserver
  5. Goto http://localhost:8000