Contest calendars for Google Calendar
Subscribe links for CodeChef, Codeforces and LeetCode contests. The CodeChef feed is mine, rebuilt hourly from CodeChef's API — because every public one I could find had been dead for years. The others aren't mine, but this page checks hourly that they still work.
Subscribe
Click Add to Google Calendar and confirm — that's the whole thing. No signup, and nothing to install.
CodeChef — rated contests
Starters, Cook-Off, Lunchtime, Long Challenge and anything marked
(Rated). No Placement Prep or practice filler.
https://asilkhalifa.com/codechef-calendar/codechef-rated.ics
CodeChef — every contest
Everything CodeChef lists, including Placement Prep Weekends and practice events. Filter it yourself.
https://asilkhalifa.com/codechef-calendar/codechef-all.ics
Codeforces
Maintained by clist.by. Comprehensive and well kept — no reason to duplicate it.
br1o1n70iqgrrbc875vcehacjg@group.calendar.google.com
LeetCode
Community-maintained. Weekly and biweekly contests. LeetCode only schedules about two weeks out, so it's normally a short feed.
tuppslu7fl1gbkcgsuohodopfle7euv4@import.calendar.google.com
The button opens Google Calendar in a new tab and asks you to confirm — you'll need to be signed in, and it has to be a browser, not the mobile app. Prefer to do it by hand, or using Apple Calendar or Outlook? Copy the value instead: the two CodeChef entries are feed URLs, for Other calendars → + → From URL; the Codeforces and LeetCode ones are calendar IDs, for Subscribe to calendar.
Why your CodeChef calendar stopped updating
It probably didn't break. The feed you subscribed to was almost certainly abandoned years ago, and a dead calendar feed looks exactly like a working one with no upcoming contests. Nothing errors. It just quietly stops.
I checked every public CodeChef calendar I could find. All of them are dead, including CodeChef's own:
| Feed | Platform | Events | Last event | State |
|---|---|---|---|---|
| Codechef Contest Calendar — the most linked one | CodeChef | 198 | 30 Jan 2021 | dead |
| CodeChef Events — official | CodeChef | 702 | 31 Dec 2025 | dead |
| CodeChef YouTube Events | CodeChef | 116 | 5 Dec 2021 | dead |
| Daily Learning By CodeChef | CodeChef | 0 | — | empty |
| codeforces.com — clist.by | Codeforces | 1964 | 17 Oct 2026 | live |
| LeetCode Contests | LeetCode | 10 | 12 Sep 2026 | live |
Measured on 4 September 2026 by fetching each
calendar's public .ics. The same check runs hourly in CI — if a
feed recommended above goes stale, the build fails and I get an email.
The fix isn't to find a better feed. There isn't one. It's to generate the data from CodeChef's own contests API, which is public, unauthenticated and perfectly healthy. That's all this project does.
How to subscribe
Google Calendar
- Open Google Calendar on desktop — this can't be done from the mobile app.
- In the left sidebar, next to Other calendars, click +.
- Choose From URL, paste a feed URL, and click Add calendar.
- It syncs to your phone automatically within a few minutes.
Apple Calendar / Outlook
Both accept the same URL: in Apple Calendar use File → New Calendar Subscription; in Outlook use Add calendar → Subscribe from web. Both honour the feed's hourly refresh hint, which Google largely ignores.
Google re-polls external calendar feeds on its own schedule — often every 12–24 hours, sometimes slower. That's fine for contests announced days ahead. If you want changes within minutes, use the push method below.
Want it instant instead?
Subscribing is read-only and refreshes at Google's pace. If you'd rather
have contests pushed into a calendar you own — appearing within minutes,
with your own reminders, and with renamed or cancelled contests corrected
automatically — the repo includes sync.py, which writes
directly to the Google Calendar API using a service account. It's a small
Python script; I run it hourly from a Raspberry Pi.
github.com/asil-khalifa/codechef-calendar — MIT licensed.
How this one avoids dying the same way
There'd be something absurd about publishing a fix for abandoned calendar feeds that quietly becomes one. The failure mode is always the same — silence — so the design targets that specifically:
- Empty never overwrites good. If CodeChef's API fails or returns nothing, the generator exits with an error instead of publishing an empty calendar. A broken upstream can't blank your calendar.
- Failure is loud. A bad run turns CI red and sends email. That includes a third-party feed on this page going stale, so the recommendations can't rot unnoticed.
- Feeds change only when contests change, so the commit history is a genuine changelog rather than hourly noise — making it obvious at a glance when updates actually stopped.
- Events are keyed on contest code, not name. CodeChef ships duplicate names occasionally — START257 went out titled "Starters 255" — which would otherwise merge two contests into one.
One caveat I can't fully engineer away: GitHub disables scheduled workflows after 60 days without repository activity. If this page ever goes stale, that's the first thing I'd check.
Questions
Why aren't CodeChef contests showing in my Google Calendar?
Almost certainly because the calendar you subscribed to is no longer updated. Every public CodeChef feed I tested — including CodeChef's own — stopped years ago. A dead feed is indistinguishable from a working one with nothing scheduled, which is why it's so easy to miss. Subscribe to a maintained feed instead.
Is this official?
No. It's an unofficial project and isn't affiliated with CodeChef, Codeforces or LeetCode. It reads CodeChef's public contests API and reformats it as iCalendar.
How often does it update?
The feeds are rebuilt hourly. How fast that reaches you depends on your client: Apple Calendar and Outlook honour the feed's hourly refresh hint, while Google re-polls external feeds on its own schedule, often every 12–24 hours.
What's the difference between the rated and all feeds?
The rated feed covers Starters, Cook-Off, Lunchtime, Long Challenge and anything marked "(Rated)". The all feed adds everything else CodeChef lists, including Placement Prep Weekends and practice contests.
Can I use this for Codeforces or LeetCode too?
Those two already have good community-maintained calendars, linked above, so duplicating them would be pointless. This project checks hourly that they're still alive and flags them here if that changes.
Does subscribing give you access to my calendar?
No. Subscribing to an .ics URL is read-only and one-directional — your client fetches a public file. I can't see your calendar, and there's nothing to sign in to.
Unofficial project · not affiliated with CodeChef, Codeforces or LeetCode.
Source and issues: github.com/asil-khalifa/codechef-calendar · MIT licensed.
Built by Asil Khalifa.