Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Fix Proton Calendar with ICS #15454

Merged
merged 6 commits into from
Jul 16, 2024

Conversation

sekaiking
Copy link
Contributor

What does this PR do?

Adds an option to skip writing to calendar in the ics-feed app (#13337). This allows it to integrate with calendar services that can't be written to, like Proton Calendar.

/claim #14300

Mandatory Tasks (DO NOT REMOVE)

  • I have self-reviewed the code (A decent size PR without self-review might be rejected)
  • I have added a Docs issue here if this PR makes changes that would require a documentation change
  • I have added or modified automated tests that prove my fix is effective or that my feature works (PRs might be rejected if logical changes are not properly tested)

How should this be tested?

  • "ICS Feed" can still be installed from the App Store.
  • Setup screen with "skip writing to calendar" works.
  • Booking an event for a user using the app with the option enabled, works as expected.

Copy link

vercel bot commented Jun 17, 2024

@sekaiking is attempting to deploy a commit to the cal Team on Vercel.

A member of the Team first needs to authorize it.

@graphite-app graphite-app bot added the community Created by Linear-GitHub Sync label Jun 17, 2024
@graphite-app graphite-app bot requested a review from a team June 17, 2024 09:27
Copy link

algora-pbc bot commented Jun 17, 2024

💵 To receive payouts, sign up on Algora, link your Github account and connect with Stripe/Alipay.

@github-actions github-actions bot added booking-page area: booking page, public booking page, booker caldav area: caldav, fastmail, Baïkal, Kerio, mailbox, nextcloud Medium priority Created by Linear-GitHub Sync ✨ feature New feature or request 💎 Bounty A bounty on Algora.io labels Jun 17, 2024
Copy link
Contributor

Hey there and thank you for opening this pull request! 👋🏼

We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted.

Details:

Unknown release type "Feat" found in pull request title "Feat: Fix Proton Calendar with ICS". 

Available types:
 - feat: A new feature
 - fix: A bug fix
 - docs: Documentation only changes
 - style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
 - refactor: A code change that neither fixes a bug nor adds a feature
 - perf: A code change that improves performance
 - test: Adding missing tests or correcting existing tests
 - build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
 - ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
 - chore: Other changes that don't modify src or test files
 - revert: Reverts a previous commit

@CLAassistant
Copy link

CLAassistant commented Jun 17, 2024

CLA assistant check
All committers have signed the CLA.

@dosubot dosubot bot added the app-store area: app store, apps, calendar integrations, google calendar, outlook, lark, apple calendar label Jun 17, 2024
@dosubot dosubot bot added this to the v4.4 milestone Jun 17, 2024
Copy link

graphite-app bot commented Jun 17, 2024

Graphite Automations

"Add community label" took an action on this PR • (06/17/24)

1 label was added to this PR based on Keith Williams's automation.

"Add consumer team as reviewer" took an action on this PR • (06/17/24)

1 reviewer was added to this PR based on Keith Williams's automation.

@sekaiking sekaiking changed the title Feat: Fix Proton Calendar with ICS feat: Fix Proton Calendar with ICS Jun 17, 2024
@warengonzaga
Copy link

Nice one! Good job! That should work!

Copy link
Contributor

@Amit91848 Amit91848 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR @sekaiking 🙌! Approach looks good but I am not able to save the ics. Also maybe add a tooltip or note for the checkbox with short description of what it does, it would be really helpful for users

Recording.2024-07-09.163004.mp4

@warengonzaga
Copy link

Amazing update here so far. ✨

@sekaiking
Copy link
Contributor Author

Thanks for the review @Amit91848!
You can't save it because you used an email, you are supposed to use the ICS link like the placeholder.
This is how you get in Proton but it's only available if you have a payed Proton subscription https://proton.me/support/share-calendar-via-link

@warengonzaga
Copy link

Thanks for the review @Amit91848!
You can't save it because you used an email, you are supposed to use the ICS link like the placeholder.
This is how you get in Proton but it's only available if you have a payed Proton subscription https://proton.me/support/share-calendar-via-link

That is perfect; I can see from the update you mentioned "read-only," which specifies the Proton Mail that supports read-only ICS URLs. Since you are sending to email, the Proton Mail will still send the calendar update and will appear on the Proton Calendar. Which I explained in detail here: #14300 (comment)

Copy link
Contributor

@Amit91848 Amit91848 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the review @Amit91848! You can't save it because you used an email, you are supposed to use the ICS link like the placeholder. This is how you get in Proton but it's only available if you have a payed Proton subscription https://proton.me/support/share-calendar-via-link

Yeah my bad. I don't have proton paid plan so used it with google calendar ics. Works like a charm!

A small issue tho. Left a comment.

packages/app-store/ics-feedcalendar/pages/setup/index.tsx Outdated Show resolved Hide resolved
@sekaiking
Copy link
Contributor Author

I've fixed the add button, used Alert component instead, and updated the note message:
image

Copy link
Contributor

@Amit91848 Amit91848 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!
Thanks @sekaiking!

@warengonzaga
Copy link

Let's gooo! Let's ship it!

Copy link
Contributor

📦 Next.js Bundle Analysis for @calcom/web

This analysis was generated by the Next.js Bundle Analysis action. 🤖

Eighty Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load % of Budget (350 KB)
/apps 276.93 KB 504.58 KB 144.17% (🟢 -2.08%)
/apps/[slug] 294.49 KB 522.14 KB 149.18% (🟢 -2.08%)
/apps/[slug]/[...pages] 586.73 KB 814.38 KB 232.68% (🟢 -1.69%)
/apps/categories 254.24 KB 481.89 KB 137.68% (🟢 -1.80%)
/apps/categories/[category] 259.05 KB 486.71 KB 139.06% (🟢 -2.07%)
/apps/installation/[[...step]] 466.93 KB 694.58 KB 198.45% (🔴 +85.50%)
/apps/installed/[category] 278.17 KB 505.83 KB 144.52% (🟢 -1.83%)
/auth/saml-idp 12.22 KB 239.88 KB 68.54% (🟢 -20.80%)
/availability 426.34 KB 654 KB 186.86% (🟢 -1.74%)
/availability/[schedule] 410.25 KB 637.9 KB 182.26% (🟢 -1.74%)
/bookings/[status] 324.23 KB 551.89 KB 157.68% (🟢 -1.70%)
/enterprise 254.29 KB 481.95 KB 137.70% (🟢 -1.80%)
/event-types 559.39 KB 787.04 KB 224.87% (🟢 -1.71%)
/event-types/[type] 435.76 KB 663.41 KB 189.55% (🟢 -1.65%)
/getting-started/[[...step]] 447.92 KB 675.58 KB 193.02% (🟡 +10.66%)
/insights 474.24 KB 701.89 KB 200.54% (🟢 -1.80%)
/more 253.8 KB 481.46 KB 137.56% (🟢 -1.80%)
/settings/admin 260.24 KB 487.89 KB 139.40% (🟢 -1.79%)
/settings/admin/apps 273.6 KB 501.26 KB 143.22% (🟢 -1.78%)
/settings/admin/apps/[category] 273.59 KB 501.25 KB 143.21% (🟢 -1.78%)
/settings/admin/flags 264.07 KB 491.72 KB 140.49% (🟢 -1.79%)
/settings/admin/impersonation 260.63 KB 488.29 KB 139.51% (🟢 -1.79%)
/settings/admin/lockedSMS 281.72 KB 509.38 KB 145.54% (🟢 -1.76%)
/settings/admin/oAuth 272.35 KB 500 KB 142.86% (🟢 -1.78%)
/settings/admin/orgMigrations/_OrgMigrationLayout 249.17 KB 476.82 KB 136.23% (🟢 -1.78%)
/settings/admin/orgMigrations/moveTeamToOrg 298.92 KB 526.58 KB 150.45% (🟢 -1.77%)
/settings/admin/orgMigrations/moveUserToOrg 318.75 KB 546.41 KB 156.12% (🟢 -1.74%)
/settings/admin/orgMigrations/removeTeamFromOrg 298.69 KB 526.34 KB 150.38% (🟢 -1.76%)
/settings/admin/orgMigrations/removeUserFromOrg 298.7 KB 526.35 KB 150.39% (🟢 -1.77%)
/settings/admin/organizations 262.12 KB 489.78 KB 139.94% (🟢 -1.79%)
/settings/admin/organizations/[id]/edit 260.79 KB 488.44 KB 139.55% (🟢 -1.78%)
/settings/admin/users 262.89 KB 490.55 KB 140.16% (🟢 -1.79%)
/settings/admin/users/[id]/edit 392.08 KB 619.74 KB 177.07% (🟢 -1.76%)
/settings/admin/users/add 391.75 KB 619.4 KB 176.97% (🟢 -1.75%)
/settings/billing 260.44 KB 488.1 KB 139.46% (🟢 -1.79%)
/settings/developer/api-keys 264.84 KB 492.49 KB 140.71% (🟢 -1.79%)
/settings/developer/webhooks 265.01 KB 492.67 KB 140.76% (🟢 -1.78%)
/settings/developer/webhooks/[id] 265.99 KB 493.65 KB 141.04% (🟢 -1.77%)
/settings/developer/webhooks/new 266.02 KB 493.67 KB 141.05% (🟢 -1.77%)
/settings/my-account/appearance 313.44 KB 541.09 KB 154.60% (🟢 -1.78%)
/settings/my-account/calendars 271.86 KB 499.52 KB 142.72% (🟢 -1.83%)
/settings/my-account/conferencing 272.77 KB 500.42 KB 142.98% (🟢 -1.82%)
/settings/my-account/general 375.94 KB 603.6 KB 172.46% (🟢 -1.79%)
/settings/my-account/out-of-office 265.47 KB 493.13 KB 140.89% (🟢 -1.78%)
/settings/my-account/profile 408.38 KB 636.03 KB 181.72% (🟢 -1.78%)
/settings/organizations/[id]/about 159.66 KB 387.32 KB 110.66% (🟡 +0.47%)
/settings/organizations/[id]/add-teams 159.65 KB 387.31 KB 110.66% (🟡 +0.47%)
/settings/organizations/admin-api 260.4 KB 488.05 KB 139.44% (🟢 -1.78%)
/settings/organizations/appearance 122.33 KB 349.98 KB 99.99% (🟢 -48.02%)
/settings/organizations/billing 260.48 KB 488.13 KB 139.47% (🟢 -1.79%)
/settings/organizations/dsync 293.1 KB 520.76 KB 148.79% (🟢 -1.79%)
/settings/organizations/general 348.79 KB 576.44 KB 164.70% (🟢 -1.78%)
/settings/organizations/members 399.96 KB 627.62 KB 179.32% (🟢 -1.77%)
/settings/organizations/new 159.66 KB 387.32 KB 110.66% (🟡 +0.47%)
/settings/organizations/privacy 265.99 KB 493.65 KB 141.04% (🟢 -1.79%)
/settings/organizations/profile 413.25 KB 640.91 KB 183.12% (🟡 +1.75%)
/settings/organizations/sso 271.07 KB 498.72 KB 142.49% (🟢 -1.78%)
/settings/organizations/teams/other 261.31 KB 488.96 KB 139.70% (🟢 -1.78%)
/settings/organizations/teams/other/[id]/appearance 273.21 KB 500.86 KB 143.10% (🟢 -1.73%)
/settings/organizations/teams/other/[id]/members 267.91 KB 495.56 KB 141.59% (🟢 -1.79%)
/settings/organizations/teams/other/[id]/profile 471.63 KB 699.28 KB 199.79% (🟢 -1.78%)
/settings/platform 258.9 KB 486.56 KB 139.02% (🟢 -1.80%)
/settings/platform/new 120.67 KB 348.33 KB 99.52% (🟡 +0.51%)
/settings/platform/oauth-clients/[clientId]/edit 257.21 KB 484.86 KB 138.53% (🟢 -1.80%)
/settings/platform/oauth-clients/create 256.35 KB 484 KB 138.29% (🟢 -1.80%)
/settings/security/impersonation 265.65 KB 493.3 KB 140.94% (🟢 -1.78%)
/settings/security/password 303.82 KB 531.47 KB 151.85% (🟢 -1.77%)
/settings/security/sso 270.52 KB 498.17 KB 142.34% (🟢 -1.79%)
/settings/security/two-factor-auth 269.13 KB 496.78 KB 141.94% (🟢 -1.79%)
/settings/teams 259.98 KB 487.63 KB 139.32% (🟢 -1.78%)
/settings/teams/[id]/appearance 273.2 KB 500.85 KB 143.10% (🟢 -1.74%)
/settings/teams/[id]/billing 260.48 KB 488.14 KB 139.47% (🟢 -1.79%)
/settings/teams/[id]/members 378.03 KB 605.68 KB 173.05% (🟢 -1.78%)
/settings/teams/[id]/profile 472.41 KB 700.06 KB 200.02% (🟢 -1.78%)
/settings/teams/new 193 KB 420.65 KB 120.19% (🟢 -1.83%)
/teams 254.03 KB 481.68 KB 137.62% (🟢 -1.80%)
/upgrade 254.15 KB 481.81 KB 137.66% (🟢 -1.80%)
/video/[uid] 291.18 KB 518.84 KB 148.24% (🟢 -0.18%)
/workflows 286.05 KB 513.71 KB 146.77% (🟢 -1.74%)
/workflows/[workflow] 414.32 KB 641.98 KB 183.42% (🟢 -1.52%)
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

The "Budget %" column shows what percentage of your performance budget the First Load total takes up. For example, if your budget was 100kb, and a given page's first load size was 10kb, it would be 10% of your budget. You can also see how much this has increased or decreased compared to the base branch of your PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this. If you see "+/- <0.01%" it means that there was a change in bundle size, but it is a trivial enough amount that it can be ignored.

@PeerRich PeerRich merged commit 7046f6f into calcom:main Jul 16, 2024
29 of 50 checks passed
@sekaiking sekaiking deleted the feat/ics-feed-skip-write branch July 16, 2024 10:36
@Zwordi
Copy link

Zwordi commented Jul 16, 2024

Well done. I can’t wait to use it daily with my Proton and to share it !

@warengonzaga
Copy link

Same here!

p6l-richard pushed a commit to p6l-richard/cal.com-fork that referenced this pull request Jul 22, 2024
* feat: fix proton calendar with ics

* ics-feed: add note & clarify checkbox

* fix review

---------

Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Amit Sharma <74371312+Amit91848@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
app-store area: app store, apps, calendar integrations, google calendar, outlook, lark, apple calendar booking-page area: booking page, public booking page, booker 🙋 Bounty claim 💎 Bounty A bounty on Algora.io caldav area: caldav, fastmail, Baïkal, Kerio, mailbox, nextcloud community Created by Linear-GitHub Sync ✨ feature New feature or request Medium priority Created by Linear-GitHub Sync ready-for-e2e
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[CAL-3738] Feat: Fix Proton Calendar with ICS
7 participants