Calendar timezone proxy that just works.
Outlook exports calendars with Windows timezone names. Google Calendar expects IANA standard names. Calzone sits in between and translates—fixing the +1 hour offset issue.
- You subscribe to your Outlook calendar via Calzone URL
- Calzone fetches the calendar from Outlook
- Converts Windows timezone names (e.g.,
Romance Standard Time) to IANA (e.g.,Europe/Stockholm) - Returns the fixed calendar to Google
No data stored. No accounts required.
Replace outlook.office365.com with calzone.mooracle.io in your calendar URL:
# Before
https://outlook.office365.com/owa/calendar/.../calendar.ics
# After
https://calzone.mooracle.io/owa/calendar/.../calendar.ics
Then add to Google Calendar:
- Open Google Calendar
- Click + next to "Other calendars"
- Select From URL
- Paste your calzone URL
- Click Add calendar
- Node.js 18+
- Cloudflare account (free tier works)
# Clone the repository
git clone https://github.com/mooracle/calzone.git
cd calzone
# Install dependencies
npm install# Login to Cloudflare (opens browser)
npx wrangler login
# Deploy to Cloudflare Workers
npm run deployAfter deployment, you'll get a URL like:
https://calzone.<your-account>.workers.dev
To use your own domain (e.g., calzone.yourdomain.com):
- Go to Cloudflare Dashboard
- Navigate to Workers & Pages
- Click on calzone
- Go to Settings → Domains & Routes
- Click Add → Custom Domain
- Enter your subdomain (e.g.,
calzone.yourdomain.com) - Click Add Custom Domain
Cloudflare handles DNS automatically if your domain is on Cloudflare.
Edit wrangler.toml to change the target host:
[vars]
TARGET_HOST = "outlook.office365.com"Uses the official Unicode CLDR mapping—the same authoritative source used by operating systems worldwide. Supports 140+ Windows timezone identifiers.
MIT
Built by Mooracle