Your Columbia courses, in your calendar.

Turn your Columbia Vergil course schedule into an Apple, Google, or Outlook calendar subscription. Update courses on demand; university tokens are never stored.

From Vergil to Apple, Google, or Outlook

Sign in to Vergil, copy your Access Token and, optionally, a Refresh Token, and select your term here. The service reads your registered course schedule and creates an ICS subscription link. Subscribe from URL in your calendar app to see class dates, times, and locations.

One subscription link, updated when you choose

Each verified UNI has one calendar. Keep your private management link. When your courses change, submit a fresh Access Token and an optional Refresh Token to update the chosen term; other imported terms remain in the same feed. Past terms are not fetched automatically. Ordinary updates keep the subscription URL; only explicitly replacing it changes it. You can exclude holidays or canceled class dates and revoke the subscription when you no longer need it.

Open existing calendar

On the homepage, enter a fresh Access Token and an optional Refresh Token, then choose “Open existing calendar.” The server verifies your UNI with the university and matches its hash to your unique calendar. If found, it opens automatically; lookup alone changes no saved courses. Both token fields clear after lookup, so enter fresh credentials again to update or replace the subscription URL. Ordinary updates preserve both links; replacing the subscription URL keeps the management link. Lookup returns zero or one normalized snapshot and its imported term history, never school tokens or management keys. No plaintext UNI or school tokens are retained. The original management key cannot be recovered from its hash; lookup provides an alternative for finding and updating your calendar or replacing its subscription URL if you lose it, but revocation still requires the saved management key.

Replace a subscription URL

If your subscription URL is exposed or you want a new one, replace it using the private management key or a fresh Access Token and optional Refresh Token. Confirm the warning: the old feed immediately returns 404, and you must subscribe again in your calendar app with the new URL. Courses, imported semesters, and the management link remain unchanged. Replacement does not erase cached copies or invalidate a leaked management key; revocation still requires that key and deletes the calendar.

Refresh timing and privacy

Access Token is required; Refresh Token is optional and is only used for at most one refresh after an upstream HTTP 401 during the same request. An expired Access Token without a Refresh Token returns 401; obtain a fresh Access Token and submit again. This service does not persist your university tokens, including refreshed tokens, or sync courses in the background. Tokens pass through the server for each requested update, so use a deployment you trust. Your calendar app controls refresh timing; updates may not appear immediately. Anyone with the subscription link can read your schedule, and the private management link grants update and revocation access. Protect both links and your tokens.

Read the full setup guide

Enable JavaScript to create or manage a subscription.