Page MenuHomePhabricator

Import and export ICS from Calendar
Closed, ResolvedPublic

Assigned To
Authored By
epriestley
Apr 7 2016, 9:44 PM
Referenced Files
F1890560: Screen Shot 2016-10-30 at 8.41.45 AM.png
Oct 30 2016, 3:45 PM
F1889682: Screen Shot 2016-10-28 at 3.50.51 PM.png
Oct 28 2016, 10:51 PM
F1832249: Screen Shot 2016-09-15 at 6.53.08 AM.png
Sep 15 2016, 1:58 PM
Tokens
"Party Time" token, awarded by ftdysa."Mountain of Wealth" token, awarded by jayvdb."Mountain of Wealth" token, awarded by hach-que."Haypence" token, awarded by chad.

Description

It is a thing for events:

Excellent news: we can make events play custom sounds from arbitrary URLs! But will clients respect them? I can only hope.


Done:

  • SearchEngine / view all for import logs.
  • Delete all events from a source.
  • ICS errors probably throw instead of hitting the log?
  • Drag-and-droping an ICS file should import it.
  • Silence mail/feed for imports.
  • Show that imported events were imported on detail screen.
    • Link back to source.
    • Better messaging for explaining why you can't edit them?
  • Engine properties on import details.
  • When stubs/instances (can instances be generated?) are generated from an imported event, carry over the import source.
  • URL-based ICS imports.
  • Reload imports action.
  • Missing (int) cast on interval/COUNT.
  • Actually support COUNT.
  • Triggers for periodic imports (URL/Google).
  • Import attendees.
  • Try that GMail header stuff from @20after4.
  • Export host/organizer.

Still to be done:

  • Rules for collapsing duplicate instances of imported events for a viewer while querying, so they don't all show up on views.

Revisions and Commits

Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
epriestley added a revision: Restricted Differential Revision.Oct 6 2016, 7:52 PM
epriestley added a revision: Restricted Differential Revision.Oct 6 2016, 8:14 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 6 2016, 9:07 PM
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a revision: Restricted Differential Revision.Oct 6 2016, 9:48 PM
epriestley added a revision: Restricted Differential Revision.Oct 6 2016, 10:01 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 6 2016, 10:33 PM
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a revision: Restricted Differential Revision.Oct 12 2016, 4:48 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 12 2016, 5:45 PM
epriestley added a revision: Restricted Differential Revision.Oct 12 2016, 8:43 PM
epriestley added a revision: Restricted Differential Revision.Oct 12 2016, 8:46 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 12 2016, 10:28 PM
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a revision: Restricted Differential Revision.Oct 13 2016, 3:04 PM
epriestley added a revision: Restricted Differential Revision.Oct 13 2016, 3:33 PM
epriestley added a revision: Restricted Differential Revision.Oct 13 2016, 3:52 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 13 2016, 4:05 PM
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a revision: Restricted Differential Revision.Oct 13 2016, 7:02 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 14 2016, 2:57 PM
epriestley added a revision: Restricted Differential Revision.Oct 18 2016, 5:07 PM
epriestley added a revision: Restricted Differential Revision.Oct 18 2016, 5:11 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 18 2016, 5:48 PM
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a revision: Restricted Differential Revision.Oct 18 2016, 8:26 PM
epriestley added a revision: Restricted Differential Revision.Oct 18 2016, 8:40 PM
epriestley added a revision: Restricted Differential Revision.Oct 18 2016, 8:54 PM
epriestley added a revision: Restricted Differential Revision.Oct 18 2016, 9:30 PM
epriestley added a revision: Restricted Differential Revision.Oct 18 2016, 9:36 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 18 2016, 10:23 PM
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a commit: Restricted Diffusion Commit.Oct 18 2016, 10:26 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 18 2016, 11:01 PM
epriestley added a revision: Restricted Differential Revision.Oct 19 2016, 3:35 PM
epriestley added a revision: Restricted Differential Revision.Oct 19 2016, 4:02 PM
epriestley added a revision: Restricted Differential Revision.Oct 19 2016, 4:20 PM
epriestley added a revision: Restricted Differential Revision.Oct 19 2016, 4:55 PM
epriestley added a revision: Restricted Differential Revision.
epriestley added a commit: Restricted Diffusion Commit.Oct 19 2016, 4:58 PM
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a commit: Restricted Diffusion Commit.Oct 19 2016, 5:55 PM
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a revision: Restricted Differential Revision.Oct 25 2016, 5:02 PM
epriestley added a revision: Restricted Differential Revision.Oct 25 2016, 5:18 PM
epriestley added a revision: Restricted Differential Revision.Oct 25 2016, 5:32 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 25 2016, 5:33 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 25 2016, 5:38 PM
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a revision: Restricted Differential Revision.Oct 26 2016, 6:51 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 26 2016, 7:19 PM
epriestley added a revision: Restricted Differential Revision.Oct 27 2016, 6:32 PM
epriestley added a revision: Restricted Differential Revision.
epriestley added a revision: Restricted Differential Revision.Oct 27 2016, 8:08 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 27 2016, 8:27 PM
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a revision: Restricted Differential Revision.Oct 28 2016, 10:15 PM
epriestley added a revision: Restricted Differential Revision.Oct 28 2016, 10:44 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 28 2016, 10:45 PM

OK I imported some real great events:

Screen Shot 2016-10-28 at 3.50.51 PM.png (972×1 px, 138 KB)

No one can see them but they're great.

epriestley added a revision: Restricted Differential Revision.Oct 28 2016, 11:00 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 29 2016, 1:14 AM
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a revision: Restricted Differential Revision.Oct 30 2016, 3:14 PM
epriestley added a revision: Restricted Differential Revision.Oct 30 2016, 3:22 PM

The Gmail/ICS integration seems to actually work OK in practice, here's an event from this install working (modulo some stuff like us not exporting a host/organizer yet):

Screen Shot 2016-10-30 at 8.41.45 AM.png (1×1 px, 197 KB)

I think it doesn't show this UI when it thinks the sender is "bad", for some definition of "bad". In the case of my non-working test cases, they came from a complex series of mailbox aliases because my mail test setup does a lot of weird magic, so I think we're OK on the header stuff as-is. We can revisit this if users are having issues in the wild, but seems to be working OK for me.

epriestley added a revision: Restricted Differential Revision.Oct 30 2016, 4:13 PM
epriestley added a commit: Restricted Diffusion Commit.Oct 30 2016, 4:20 PM
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a commit: Restricted Diffusion Commit.

(Google API integration is covered by T2334 -- you can already interact with Google Calendar via ICS files, but that will add support for using the API instead.)

I'm going to file the duplicate import thing as a separate task since it probably won't come up for a while and close this out.

Duplicate thing filed in T11800.

timor removed a subscriber: timor.